Fermat Numbers
From charlesreid1
Mathematical Constants
Irrational Numbers: Euler-Mascheroni Constant · Sqrt2 · Phi · Sqrt3 · e · Sqrt5 · Sqrt6 · Sqrt7 · Sqrt8 · Pi · Sqrt10 · Pi to the Pi Prime Numbers: Prime Numbers · Palindromic Primes · Prime Generating Polynomials · Belphegors Prime Sequences: Fibonacci Numbers · Lucas Numbers · General Fibonacci Numbers Number Forms: Fermat Numbers · Mersenne Primes · Counting and Combinatorics: Catalan Numbers · Shannon Number · Eddington Number Tetration and Knuth's Up Notation: Tetration Factoring and Number Theory: Divisibility · Totient Function Games: Four Fours · Five Fives
|
Fermat numbers are numbers of the form
Properties
Fermat Numbers obey the recursion:
This leads to the product:
So is divisible by all lower Fermat numbers.
are each prime
was factored by Euler in 1732
was factored by Dandry and Lasseur in 1880
was factored by Morrison and Brillhart in 1970
was factored by Brent and Pollard in 1980
was factored by Lenstra et al in 1990
was factored by Brent in 1995
was factored by Brent in 1989
is known to be composite but not factored
is known to be composite but not factored
is known to be composite but not factored
is known to be composite but not factored
All Fermat numbers from 5 - 24 are known to be composite nad are factored or partially factored
Open Problems
1. Are there infinitely many prime Fermat numbers?
2. Are there infinitely many composite Fermat numbers?
3. Is every Fermat number square-free?
First 20 Fermat Numbers
Here are the first 20 Fermat numbers:
F(0) = 3 F(1) = 5 F(2) = 17 F(3) = 257 F(4) = 65537 F(5) = 4294967297 F(6) = 18446744073709551617 F(7) = 340282366920938463463374607431768211457 F(8) = 115792089237316195423570985008687907853269984665640564039457584007913129639937 F(9) = 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084097 F(10) = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137217 F(11) = 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230657 F(12) = 1044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807908705803704071284048740118609114467977783598029006686938976881787785946905630190260940599579453432823469303026696443059025015972399867714215541693835559885291486318237914434496734087811872639496475100189041349008417061675093668333850551032972088269550769983616369411933015213796825837188091833656751221318492846368125550225998300412344784862595674492194617023806505913245610825731835380087608622102834270197698202313169017678006675195485079921636419370285375124784014907159135459982790513399611551794271106831134090584272884279791554849782954323534517065223269061394905987693002122963395687782878948440616007412945674919823050571642377154816321380631045902916136926708342856440730447899971901781465763473223850267253059899795996090799469201774624817718449867455659250178329070473119433165550807568221846571746373296884912819520317457002440926616910874148385078411929804522981857338977648103126085903001302413467189726673216491511131602920781738033436090243804708340403154190337 F(13) = 1090748135619415929462984244733782862448264161996232692431832786189721331849119295216264234525201987223957291796157025273109870820177184063610979765077554799078906298842192989538609825228048205159696851613591638196771886542609324560121290553901886301017900252535799917200010079600026535836800905297805880952350501630195475653911005312364560014847426035293551245843928918752768696279344088055617515694349945406677825140814900616105920256438504578013326493565836047242407382442812245131517757519164899226365743722432277368075027627883045206501792761700945699168497257879683851737049996900961120515655050115561271491492515342105748966629547032786321505730828430221664970324396138635251626409516168005427623435996308921691446181187406395310665404885739434832877428167407495370993511868756359970390117021823616749458620969857006263612082706715408157066575137281027022310927564910276759160520878304632411049364568754920967322982459184763427383790272448438018526977764941072715611580434690827459339991961414242741410599117426060556483763756314527611362658628383368621157993638020878537675545336789915694234433955666315070087213535470255670312004130725495834508357439653828936077080978550578912967907352780054935621561090795845172954115972927479877527738560008204118558930004777748727761853813510493840581861598652211605960308356405941821189714037868726219481498727603653616298856174822413033485438785324024751419417183012281078209729303537372804574372095228703622776363945290869806258422355148507571039619387449629866808188769662815778153079393179093143648340761738581819563002994422790754955061288818308430079648693232179158765918035565216157115402992120276155607873107937477466841528362987708699450152031231862594203085693838944657061346236704234026821102958954951197087076546186622796294536451620756509351018906023773821539532776208676978589731966330308893304665169436185078350641568336944530051437491311298834367265238595404904273455928723949525227184617404367854754610474377019768025576605881038077270707717942221977090385438585844095492116099852538903974655703943973086090930596963360767529964938414598185705963754561497355827813623833288906309004288017321424808663962671333528009232758350873059614118723781422101460198615747386855096896089189180441339558524822867541113212638793675567650340362970031930023397828465318547238244232028015189689660418822976000815437610652254270163595650875433851147123214227266605403581781469090806576468950587661997186505665475715792897 F(14) = 1189731495357231765085759326628007130763444687096510237472674821233261358180483686904488595472612039915115437484839309258897667381308687426274524698341565006080871634366004897522143251619531446845952345709482135847036647464830984784714280967845614138476044338404886122905286855313236158695999885790106357018120815363320780964323712757164290613406875202417365323950267880089067517372270610835647545755780793431622213451903817859630690311343850657539360649645193283178291767658965405285113556134369793281725888015908414675289832538063419234888599898980623114025121674472051872439321323198402942705341366951274739014593816898288994445173400364617928377138074411345791848573595077170437644191743889644885377684738322240608239079061399475675334739784016491742621485229014847672335977897158397334226349734811441653077758250988926030894789604676153104257260141806823027588003441951455327701598071281589597169413965608439504983171255062282026626200048042149808200002060993433681237623857880627479727072877482838438705048034164633337013385405998040701908662387301605018188262573723766279240798931717708807901740265407930976419648877869604017517691938687988088008944251258826969688364194133945780157844364946052713655454906327187428531895100278695119323496808703630436193927592692344820812834297364478686862064169042458555136532055050508189891866846863799917647547291371573500701015197559097453040033031520683518216494195636696077748110598284901343611469214274121810495077979275556645164983850062051066517084647369464036640569339464837172183352956873912042640003611618789278195710052094562761306703551840330110645101995435167626688669627763820604342480357906415354212732946756073006907088870496125050068156659252761297664065498347492661798824062312210409274584565587264846417650160123175874034726261957289081466197651553830744424709698634753627770356227126145052549125229448040149114795681359875968512808575244271871455454084894986155020794806980939215658055319165641681105966454159951476908583129721503298816585142073061480888021769818338417129396878371459575846052583142928447249703698548125295775920936450022651427249949580708203966082847550921891152133321048011973883636577825533325988852156325439335021315312134081390451021255363707903495916963125924201167877190108935255914539488216897117943269373608639074472792751116715127106396425081353553137213552890539802602978645319795100976432939091924660228878912900654210118287298298707382159717184569540515403029173307292454391789568674219640761451173600617752186991913366837033887201582071625868247133104513315097274713442728340606642890406496636104443217752811227470029162858093727701049646499540220983981932786613204254226464243689610107429923197638681545837561773535568984536053627234424277105760924864023781629665526314910906960488073475217005121136311870439925762508666032566213750416695719919674223210606724721373471234021613540712188239909701971943944347480314217903886317767779921539892177334344368907550318800833546852344370327089284147501640589448482001254237386680074457341910933774891959681016516069106149905572425810895586938833067490204900368624166301968553005687040285095450484840073528643826570403767157286512380255109954518857013476588189300004138849715883139866071547574816476727635116435462804401112711392529180570794193422686818353212799068972247697191474268157912195973794192807298886952361100880264258801320928040011928153970801130741339550003299015924978259936974358726286143980520112454369271114083747919007803406596321353417004068869443405472140675963640997405009225803505672726465095506267339268892424364561897661906898424186770491035344080399248327097911712881140170384182058601614758284200750183500329358499691864066590539660709069537381601887679046657759654588001937117771344698326428792622894338016112445533539447087462049763409147542099248815521395929388007711172017894897793706604273480985161028815458787911160979113422433557549170905442026397275695283207305331845419990749347810524006194197200591652147867193696254337864981603833146354201700628817947177518115217674352016511172347727727075220056177748218928597158346744541337107358427757919660562583883823262178961691787226118865632764934288772405859754877759869235530653929937901193611669007472354746360764601872442031379944139824366828698790212922996174192728625891720057612509349100482545964152046477925114446500732164109099345259799455690095576788686397487061948854749024863607921857834205793797188834779656273479112388585706424836379072355410286787018527401653934219888361061949671961055068686961468019035629749424086587195041004404915266476272761070511568387063401264136517237211409916458796347624949215904533937210937520465798300175408017538862312719042361037129338896586028150046596078872444365564480545689033575955702988396719744528212984142578483954005084264327730840985420021409069485412320805268520094146798876110414583170390473982488899228091818213934288295679717369943152460447027290669964066817 F(15) = 1415461031044954789001553027744951601348130711472388167234385748272366634240845253596025356476648415075475872961656126492389808579544737848881938296250873191743927793544913011050162651277957029846960211783242933521207545413484969856851851141288515163201482995389055097460622098635675003353929224278582935664416262572773308153277514346480313371988612629481483562438178928958867777850072198316174841251955590996672018645093640850803679630220367201383844866791449284737518262813123083439037243678440420897139923778278952770312318778329004894547065489077596835396017153603170050371302014762443872701111379554484309718662306883776010475348441493600491943479041271992920195331983064930106164727241438940877685164658948654886171641124473975626241632750150126655369981021293570066042305482486040883165635862835728637046058352403756085745691239473897891999085976345203704659967157427239535836507133656908815246080139195569461072006301590372954830738644391138016065344131131207604264053897440828904662047183234377547427287691941741535946510882990904477863185473798528388060457568927943633923928872681927502029572963130840854853739937076881035646179383055483433876051402037614424748902969018159186519811051545367967103767182819709135479019131683309330797374408197339831527239040715908112213095126770717606001288898889370710896248862361503869205214536908258196921765593065325392836332142594411134603475509366028145690306350601859295261296263331018682276317567749534571058772235567679556920240789109070521253987131031263902293034744367356932509952188828475362311316445284228640489421809263738423630931243024914587863928134719186104164660605356001591962778646378295413659770782646979236289062616442418071571039282551289348848274522893059561717860194034698241804887531275078109603637160495907579995366419636417028927573391670580796818526074226095014375189438579216071677540766085605604106123036669667434677723472675564458991671268414100801031453917736665947284956674884035306621286465183798693852599803324619865181856244422079233687294508536408521087418873908498202710597080474480249818858011490930518512713798803629101638716278578874145214429026186276602289012484526830076647356828764878327726719816428678904207944456894393185983090347045176886732326253912297649524439880403701430566761380359925558522718201954287517587367247510777678934664472548647787048306330770862370015525858005479756471499227244901142805749769564184753211967223226212964165678856604892416984915097422960534122333453876981279243565766391796311605149222628328255333061543877525846029404507128890053189442527544665141513571136187126874914601669750392486100507568442046831780631032540574077944274454228087639241736818505163759910365131990632947462993204585218122431992323864244947394390438656356424037471932484452186545692102503479070599953823165194211019696760575264426802848303031804305733532228050180286034175168918827460626042268658295140706915047189049492578996650494005882337071150004868956193406593184838633694068409823903437144417376039174235011053228846851424217955172902918651003610984108402650929359396305634313047088725113039076811940090109855578285937829164213576612822210347957745947331047482525346602542653176899809278808232796557531832150249769253600667902268029661700149632868541956266119528042486534014778779846981761033155007262730162675954520221887384710387051721829271917592295057169589539706361671082094809405871790468623234895914796464390019259167513771864832869036015645542195008456098615038348028400803005801944957156282746379539470250603755465358786281476086044567893715130635914946085361612372742732638037372287633897118303250036355897758209569010246051563429109255864938245524550200580218274314809738075022775651220374105227215906205292751918667060475328593225367793061070422108733800983855507591806413460964585595316359971179284283604731468668545484761381747591639736453419896449323486397030776397761202590467637505473390222249456724093238682557762781839530938233751281999608711356147835655195236666056355678841889862284014674059052995170220711404445012766642203314592371712594877968343265210232798135023299117318191770365123807086704381809759602260151612996896994294186084475619138121455294389585874237791634701296124550179672059485838256445846530599137662480841344376503989244633345016070887198120421435575726237189312161818021548006389501182393441712142044953072264016676799011624620312246468554654371544717355227740157629086739710675845209992133342035144038961065892653392182875622932670067798433934891709519877850794219491447988160171932331006495620280094149464379450153085406225081471879585894087916092141623752345112751067703166403681162331920291740847388957632311053342426152947324011627922225878539935022974616062774839110489080094174972841068102006645677499293769091362853719300958775222088670909723895414866464400756314470281962034276531512544009726174649399937581739718117982417360985958259468485436586733686659771030677664677905401522360041892481951454135360540917411098412286723830672712910603386748136348878056545746112142111116659985782398275627122449414307140749404884060753863706024281031485538666133332835597817514616331728118982180628823657668668099621799842011158020767772792912298768785614574416019320546196793486018677884550715870608004988829978148966980770136884353226949853654541655837029498017031085943660440466076019479435181045436897845351048788440102268677798257134774081674357195358847761226603653040273985441982221318087815835107317571211841215825606453348521097936413520295998260751040778703740366309871999114717441069182825782996299411623087415008910941303284182131584799816210728034255555687956785287887098941927737599159824398527573423117728252839768919145018117995597946282264946523741691180858441194373387098969530126834014923656627849129062189145572870212225909464530919531634090206371146321663797279805760028495288084848179380053931435604182517516600823936737919915974103591167638898871754018470172589234989397051893028574365288890303780239194622538215532212735555299397542845350629361560347195459286729561168235383428930828378887678197590624110372267338756668414899526138480866747114831414687579691636020586013635675559033488649721062244142787960404056961306176022981242840984825421797150393909713884990708008654327558025619074213270714252431515171638994505720144347502185848528129000055629703422695425047209518177577128511315492059613722366724615343968357332924191178041956753132941596322101250417068813977303498033940613791099720174786773844696734034010269139553878212387108508158622839733593634918975616613368243882808391509244806809337882965338701545504691589517650472239580754189547649790038026506707709763098148746524031013800531890876858227360501676161874661946431647929572555992967298553471152693471452480119897608173336753260124452510815333416409357029633265172614203663326409976153102467083379129588112837280711111346490898947808402062401228963194162711657422998429263579276515414000979053740662733816632981508535128518440258006782392288860903823207436820793041881907093791874917635829854808150640894907127600430185202301457398493533111918994100853753771956293430162566011361163168953462188010231819000213669780447856871248564377584509085888797883747538309181810700615032225563091016689474780253412571338625581817921061549352557588323659562675650563535186144754433556539747098322643609542486120512917463706713059064230762924353617972053492527119192658171851345957700772571841998176036269399889012480745075924980479390349332734102774400008120073461540540571051506971003904623484344762005126345905465893817895377928139596549936720100490013375956605889200767596688065961076003472005585890222594655010430123127351665316862663484785966446263740624564875351640780923703006868107440790271682936043304873579648989978571754898840789184480129570446991029504758616393106487523321312507454036808667210073602144290050619610614738139543285649346986393213102456863793665512533655931941790537619020604730601443181250662019687491711547360597117856977240817110039737153355212454745907787131179578656470567535050192702347739653312290522505871612897990429961857550031033665725647987982751868407294730437319505335782425290324427994308374960806684435416445907817107168298342945182985594111281499472495749501642418042734681158560450241309279063816746067016274795461832774699007774423895748677615395848493765672271957278664546343161609126810028254214659633625223934508931691728584028342356669332635458079957147833789501696835781748234884919093574276330354577841975249603899105407104895787598263630679206627796433754045597409176502438867600537016879169914474754840024311922169647388379952802523847080102439285112565751677726373201688403254466789070713575214256192452449029110040537994627424532403620179880056518721219108771374073638118719073211367295514376708596537294204544099903590754371656178656960170217675832153268164591674004500239073743502648099105624548587493544825479270589742494495181223722329693345468639306990523118995640567042531369577131113159027381808071346991604513906450398219426300899204662435492578485666553974492723173859777485412927016068341515517437115137050372750279278548332799193799400154166442801427310076537020119936073495221974791939759846168942055397357348278178050441024490005893818256958665388971201322931680573846084525016332224646866617490832496084991690171583029352609836490908113464668343829985351590552945284372573978295485097950893072423518605982085487154470155025269025854044646496572448495225343096261896378931482883286657508859228868487844184479087538453974144187004884366561256723404772190847586008543961349071131191708943295337664384184532774661503245910257451923515607711559705478132556040197663414911885143697985464807309297002910250505302287769412337441199360424519160716552890882816796378296881641827981453035207233752063518782778493743827708109913493162932182427627261046280168269958077541122668104633712377857 F(16) = 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156737 F(17) = 4014132182036063039166060606038876734377151027041418995582553806466901368729258341160522025816124993789993695822370688304664951507188547123423222707028462645744504495099771236039772731479526109211090004311794404240339124784547422345216014091269896242057728789320308388075464535693734707938810361158822889129810698160881991361391615727898487922111925954357866231992015566112008236187570239498407927683927919775842288663953197267327615522763990546974302225808428095414868354189887477547130070092514353241631780155439824875566969089406890190453301219401944755635782011004657947505574085800780957240830989405542027471697598070708223889360327246648360250590423193485405740024818660966396088809547901243541112991057294564493176030196570968415627054119386294217737236705829632322635830102002662416478438021760275473366229548390019965427781460843016919698486005106981924856484135189126309511355753691653992328843645226535251273257107207655144521985279194687670618137133365061767680692604326802596487142424879424052336554494321865741845750005414127789039482660494669119722147859831209117695710217533300873521325189619906400613838224465802145638763375814734209939839362619843254361854200935168819098750162527330741262315680533040564205957680744473526587521186729552763984974171967043329744088725132917968485124011517373906219196506452837501009780475231936674958303684325425540235711585231786086215390697180427689333406191129678187071298761090238199532583274628668255539551286659571639463666278761674873780891713295358304373630381316642367910442138797034280478845037624720681884127045266971966132114983342843060225291800998287388520216891035412250834037533732042360063710863391716379631799881707736609524346067431213693134871211594265410252790425524534272056805082763168832785380055839924774513993312872314696842207051788925531326197927999177991421171128255733182296142518727575876101593203121573373469932821398066544389206962941141912977252572232867135437096743144409526348896093972589490165188215640760729511639332407683269230949843736635138894075691687022126305813977840524433219874210358515920200231755056725620223215331388220131477362331119420435167846194881185458654851583930079821808678398456988892271572381964480265039471649297678899125791655447634896125360321191630695480343247812206582942215664613839158662648407403549691008421277331933733296802727847751289740183232533826912134138874411587537072148434489199610825499112354149659416715243020346182605006236549464809827596184003972133641052969706618571561687011704990178047065972378213930473698742510372763853852826260631953919612454996794566066156884728715668680906027006860236291939118231676592907769781022362456768586214151241004159221927524018370878848684658164187227120264996078166702143742949273872723291189478841760522549189798371468818876307021543260191247813116898406629847737387213350101952387350770822381283290336805039909429093246363236388892554180007123150803933422140214159097502754441156418937483080165530589247735955574364496286938362823593135322482901755392013176188071632369230705598053524807232330332244850755770773086552102546479856865241592742983108951587550272842151337427500985790733257446974778514717423322164753741064203343873911505959859894843401346764198084574888570021582049897987375412534723203744213413544913921005682952291246029696644695148625577845540165449161494518865963573605166219797587702952678929547091472170854505976772092211830161122361692991516152705668722970188580451007767844433986239967364518420942072166146801482167949547691800161112961158906423261625463823863487993193561114681790843138704920497219883815661976658831769131758793119824969001836745498182398838340648927301879152764226110118671378678796232654817311851742957558547201689875931549991515035340972187105911864648544236836260504847533198372681672129543186083369951735634161845926675644115399774010625408990786348280910523027081645203785639678961312201192456238696520344039542130839856702031559650739069883838674250667916543006817208656138057336626345130349434110433864479062478550035029469824739027938916240527879813120208815523515779675977148726193656755629019016267380677895569115426761646230900288879599082370222089623761745116821667630909113297053145987339042926308730773608693851954656779816437471443388320939306664827788631871296953668897075687483930099227986839760048957379131637875344314107802027446160539266234293408604986954900983474482565227972953603366716227879694033469601687058461710870334469254188547991362387356445617844755230507550536963112039082535792838287188699545369099960024542135080095877346531176357217501893061794845596185695372386978011683132185583747282044356978640614686144305148838937966059778731252315662517317356452764543529368758499128496173025949468596830641128630126982569680227673151994682929383128359400800730647033009742194969397867732106855292305985907659610050250864697979637508638430748544527754238950354389404571972113035427133452477480922100499433629582296479031248198113154187002474014136277395295167051445941127918696437363960957340926932413952086407326427815908876047942365777403903909229226252129092284179163733102953047969448532689603563619318243124090419945712029201139189832010659468563854681499997644274767030324988966550143346180490169487404817781232236796354488293240003979784459018374622874519797289160250924013077191644744667079831907446016014675047387387849879634538532924759700314058964008310063071179192227444805709827095742202129386405849272260737870769456295985734252291272707948263365184386038334687999156723323731035874348731014319014672359686757028278160882218782815645825735630974163177508691319192847566774051552945532503104644040097190905665204611410283248812046204637327671846235824873113373034123535851718551400885999338937594799593962005964839702111477601581045672064416926126176740128698981250198894737842534454809505075861201705184249049902802765451776105523827736706727962349617080352862427145533868638674647621635903522376531004186274084864319795690579816037144710982537578574501401964606734516938171383983632188696122779521156237080602734546665241462878930312520760735314268127853512114206413184372047800360825636519029106214813659202770513059287824118965441521216286434750082511096818238637831486072817169107328121066318430424141551101448255356027051112429885809472561769503290478901969977310426678486943015192324838295069433027716466240050601698187879827464980534758753486354416047446209361934916329537938495521099464116817873898064615746425334307993580485350546795688460002265981773421773567346574241551369109003764817123662223617694812212158169860165209587231204816186164040908062427057433374354333512098587837751590927585021517620279297240368736722183517705003024583189908598536152163526107431442854174391559901463745686622770317539213510723170810141972866483922634430545450911424091655970619224266853425281308205026202294271525889978948848786451889351657070521050683440519622278045532953343858160953573822408291017268710562303350845615817951524349026567175895021778929616302540029650084377784855751579600269157963675920313876164533388292536102158206357715729658280040433132612140272022103947915774047681394936859812993227042855516834600928710152852398138594784429182314097140687415536884945999890119934480542332095414567022677110183124088577034207184035223269746212524708320333384846963664614426420999338980357883890451385386203823384441967107049845111443729321714754258385305719682104264623984894166226966604533114583914334886768314527778332346443260144764225200780823816350140331007279882497628037111262945933483440250886848466844285259801201047044164028789036672797521410884417114481113064890410508926775148007503192306944872367174516769239565732199135780783025193750190215687733235002528390196251747313108762067901840785138565711849300657314346796967787701918147432435368880447718801737606561365196160911276454420767194347998793760385338214424990342842862610858256411298097379924586198393594857153193649535420869601733255913603748735108955767125860412798934582791136590805835437006214619180833467538076124961206622745210375182783108944606061279552864482480673711218660245187076021181567794358666390037640555141608240333854073338043534429832182940110490657817714431406115312869550131360990262744133923687718517425890292711139888287121121169572479514569137506538532660065609376222907442241190395156802180983994401113294687869686532511825311652162444723355095362226595495851115378621729550619060175934795677858252326354523788281947715246424141202934670245380209752183345079219497823320697779797568188823897392439665907151941584911252454491393065641220012500307075134569170546657950628513232706438968999472833971666066853821669755513289360283904818899339170381382830023193685137019576555367344397397500345907203142598676169121614999422779372579464626191089018971078076898761801244103195495210458801583769766231991406931405001468005925383399201077190857244032943731898662908108327191861690909470351138983031879129637914513608632467782348730881613284583111745366299071443307263549292599904843844855174554634025101202206924639936318383190055108648734604528810643754584159097664780111072742553271812943448210019770733791851140909523998843075407964209315192369659421520580000397483091476492606940468048281634901478780014425466903183012195313405040260181937874135100391211424280568522832217343218449566212577839857429517773391325234970123982710656842132962072713670531585628640580476302740569446074057129250670136192085185275185779311649428558491838627836713048047320570250150645544212994809623734780024674994219129671408354527116135589032292260877830511009195805857592537799609204241901732311725470142447799886353484515819626358794478314752255102283719737644618375299683266816023955504186817402439459985266551465059469043798811380521824185863846994738759453069525025684128069242698184909729161080931680706454988296074915640851308149520496483541940056350562485344038487968200442973606174886536585643269441491537565521167279510356916025121335081257328911536240083436352408573331163048584890056692764867498736724967285937871063837364337621755449191928472249494309408397935142908533639574359432700608342105925301578912251377855985573358344672634864198752515613452910223366635904982715715461770104747504089416677887790075318553635109801839887000776413486686719326133277853012682629220681412084427939358117833274566986711663155710308663779187708049545831766986000316809626987410586036153344353518702949856385414013504665443220335274655069539917576038076933068673399231542660016785346281934674190287133321393865039012585301516288471252445626727183613790287375264863440341382950289536738341081070823467072641662638160920689079423415565415544093523000909042459655499558347303116788318768790020786196449106937448960496335000065625994308769918218117532397756112154058514439232714731547625428029301926759401192751887850518150985316736590769370275349296845281095433853324460820026096959856238442741949740512644749005458158427886614712986993755017155932619085888623668510044429325611225280467072107378374969832028261176123924402988656792912890438942424881406263936739195642564927755818346129962830564952862008315127847743704432224501586614191621134121414084766616850004752855737790449381521488307878119389635677152517700443598625113019383248895522656924874676078083365846741835696039642087136059892798010612944067324441233534104611388434095357600417585086903206201518724858670506731668441063355877998945850297008155748109516501339708308398677435237718856664102366195317472530863499414804202191902618201135135419339881515962422512857025124530919065190851292486672103057931987171154027738347902521013817932635496408110387972031749255469418772947038989633740538053684839862500994756773716881213362483372906037927970516028503893249938370998090355966343379594543393857619439969073876416575475031357342100897959643626247141091139113346430912218421332426397617431021590033646367648111866473215333561424765576016929343958665819514782393467237369306387879965393961506126345841089840597707284135690717573248058222433716097790974306041013186967353434100413872393337984581403537366546678381981115735252874653295049715936996306827362887519103246761552934739345207395509749551977003395029962758237343028420333856980432072114541711649988833361686311038725610601607452260800276604537588086629832393662151908732471530331390503598243861105289349754646633675165958622507210044676919618551144191211291948005031985175482748170959930115956149816059343618725964259144545635518370891105083518566650346326164332880670949594501221008865226782171403017037306385834766757756908497060699036637472403967682742063471456284052859300793318493890600834155472228151930479075648450763095792020687833295869010571410169415467895893923766234397059568374301410196033568385224669534494422044604529886447812303243369815606920089024378304637233100419682131167147683138237103836396146863068481497571075313218664281831894773101811973809037521256466043980717523127265465567042185267821091598837152282635562943239683700658828560977961472165705594943816999433425426766733718476472367893845215684320740612582945401570535852174911754718954037420050461252619221549665725031769139664740112317369998809909948202566349256451101570496666251245369829370047942181073261802638686307812145729359707078844999721963284844362680955941477223282704692602722551714620971927977590786466216404705670985017117826604611455959782225613566586016236155091134079620941423490044733734944396550570831455615770556197519856885379072617046894057442615170419480314764677588198245805514991110708278940489929815984675675250952479312601790676807548216870577371326887521518616329453883171165575520660362288398780799764281234277833869649816926108430437360963685319738454724877162529834153355494976546785024962619724067057664631770594248598642761728500729576216980475739090008569984843050074693176669966849426076793075347697354084406617389968364623754360445986017960849084658844161935174736658188484708144038671414964986538071697177283348104836430965020294109632015437996877591862615018792846939194762191455847664016969317280909644729562757288803470163283362836582801704682422551223524506336412190781232068031185091769869744931436653174905514147761661795615257091424626870921426153772807334619515077604027952734976964435745649982854244359572650204443485611522379011929767598037111863487441562070878839417195534319655201269956226091676001307080771515175957150512405356532822536302497166554993412071224143949961699966003179640440528339832860296716347191119277100624886651043402734594260451659728157939427399723866960225757348939016841178417724932792842710235644959285595810814178897596521733762549230792922096541997316437207126341990215143563343225996579081761345505417456543760556902238498414192686706350887441417030898964773106560825204937573907394584813121610631479220095886125576521265559115853565408661656648710665753742826354099309715810718586688386166739695360105153732730810856363115705196930450948164992978356889200164509197423055011582422464983146526410945082677782335972739021354538247235307628778236390018163762505814714880859010783891710645715508502642865818878885105510899076614850325368534907284181813661027044834773040190276150126054961895874190384311374655847147296725596621786811776219607455852197837077254961182259087277750214673688771038775480187275571252382373713598978744791329047432403983932004244483211652502611752940211118201058337234584034864574227810200730590127781709506138200593936779546014630761206017320716612138785694203059538064755958660196119388582888366460140254991004358012838108699804776204688584225575662975980043946364442061016378143365057147725242731478437916914945007628740732858651528582124707039037955659921200984589653967290356671822766500551504147096062559238712097470401466568328488127128944142333691791644053321208072117162615223122987279758153437976713979494564324839309455758207968141493094108989459309112061797912505115997599779734316634642787662861730837554573462339745191748434848718212564814399088890050558563286079628077673083829772294639480998765110246644620219192425600828996562323995526174157897858707146118489491816556359795756236851923837194287030905959361479970840400143320428366606885025067331691738040202055787012703056951782823888375506208988341157408228503942543079543770940443923976231093230318814331402474723753800935580269149469917368514574090096348578363321547574189770258467807477633852131070551000640054998215176863242889754758529656993218524750841275204785416446508661614647568979170309980255454798241426276915609241289998999441374750551762499989889776202922935559056865380485853520295522188744880920554250457015419395009003698380752089875202158738238319050876794599845412793967035367858531763921137171562917168105470402413558860177750713812621593283779321401400233370444782744252825896616155710291863815870331853585385758668507067576817342453134743338486664001732164359176960876199706001844975434858293165037162767244454671714475115808657642963552747840387966052546961337581079959622912645265343467678764190406571477253426299736077244260618237119651858084687036618695794075478789311587417059711343431227303350973799387878820501939565505465074594025436036966165326241011378797146265125327338463869344259066761066708758833017239984197008948737740667243072361128617406867859023220628124060993563955305881007343422807152945373290736658535872277975738221441943388251274447917399816259299528136009365562772905944119535864755915645636481389721332489402998780438636631270258475271207701504449959513826917567118882270665697324654384539229093273515371145657367473351701477176058287971525132123630231302192818809015653271446364720664677553548552591939892622312036148679132676222630440973623016172572796318062245769564016065503400855132972119620506711200765168117939786675101936469765690013861859011813740916497238562803149602498800743366839594464102222803276025264020852530869628324622203235960629552097202049867177844618660210541628779338833715233540816837614040165594121213747804550323106645804853319343703095281130779452288398474053206030303124075718699502769043354788987366303158458622216238559388852586287397244823587628905287478185055937738386553460517964970178405297818574001552698590403422567780250925573684712440051738280186677970204727172629630250807588480950618513205146384314670376008562962889264152845320978121184751157549620353870769614740394880734501759269207166413065178816343866013426191134590442802370423292149028056236608844109615255164543338823924604724010260098700884832237411150539327434122637626938602730735567837232664475826678490431572548909373831937962691028377457710962109223347737888551476979770134673578428196780307228525530719932119728519681020056415065579357762138062341940715505658351032187943326481465363443863803288110372057213933086575266979834114281470948733317432538033803753683322267351759794373856980502790076050489035615460200962483659715876640167205197093480143268848588887523572869448200676376187943746855377974486709054344584706188400881524241541391111150657380625806644492114953522924820276748689110132199293929664946288230813053178306354648926761437335954106994213287933139740635598749442553854302259023579655742203516047488166774689447569867936622820611204174605992950298769916077128982710510288196427378103368565164358036180004462488782696183306161348948232055760805161621292732118579698583726535923141524929496406363413864269242809640344703501492582452690207020817139987977758629694318006602700285855738200063021223919333172965177631394627287558397039465292625282839307496623059783681956962283709629525150084752829826413171823267961454311822679808362195466731957355942359238281197674840013554610317457007073447347555573247289794213606244753195388483334301123060067869123641067367400662684880401594438208468350024707708829070222659764366228295547652120614526659158515804151065386675507811098963031107165735090412267764271530335591618530735740446073375852583244380837916461995678501069928298475649775376625135157948147430845819708807270087123568447382546399604201642056708879576050534869014874330086255052538159839286402227545108717169973795449513568196146492612661017844433986693504400636793705628179607690520396302365359326058011744993452664586783672366992937395096218263188368979803013281224849637296442141604562461162491487916232984232571386163189599947711025232461545410107189286669897464249267488386815630421031187491074169125825170807382257645180821743080058968318717203308067308430306008719215999449549275186652855329514480288672236238137561214814466389304839692226820467175658389499720385721411105875447062795842543723282133190827930422906881951079517628186936042926475582499991844669144045926786553864972953423185548601733151216289576168751452442756075554834451826997459883888370003537652029989534356334645187913576065296792644524200824584132664698775130541572175057149540461321494098316209986410309373087546472581337568958627121819007771825027522508287259305852577876388306401427150201948576417401656477372167355512124351307696967324497195496192739279215969258543281938589966654331010867898501990694317165024492189477378166203114027287886864811921598100732112244472230470554383307370299418471731149022017754359690346403013127778918768231606030509998499642148046196935810238064412531126176156308402893998480786811137872744116447605557524431862992124455086194694346958998213418949062771097472347167350139668646981167262664987259407795730228841737389025744020061321542917633986016330050107026361576525861361343063325677323542710062288653622008100246365528887395634280352106633520268540358179909328076856361340557918726583703265608526215873247374438128953980193021781235856634443870531703734512403790773617204413172216046274108987822929386890747041850246872279320141016139210667033177852792102956417783343165185457063261014219019520235689446075505595529429106951281454091113243566908586495716555268930016123745659467401133529140474108004345232048212474448247768159489601013130975476694099832314918715403248611252016649922870384793692622229702610106986985893119003277409080679262329717165143031612328332615183711602787127836569009303906567838743875732384487702190656722551392684192185152900208659556329503223694369365936502102766611755792835591109286320654357979406231288936371342647544766199694127510725974843267121938848266208727537109341946427283767460259820749824899325101096764583474599804744627964518125872088655466147810233418924212562023675468901778045807940836323107298408868655304836421435151585464449138540150345465287526413345767386761993053273799594296798277380929249849357227606453580704529153148918715666037355647559732620792511746446385929050322349254324570411407740388768669446180113069843465434315221996105127890401599662006197214161055084961947355022344753536314097871510439160892202614670191975302380638766097843290952324948930552090545562940368121762216843274341603413427737554334409079094656810056060243733369584954911218729530084716394133205309124662246096755881559721492929181900212738251392916283098708192082807933814206925026586812173246109020886948080388323334532916853674293858738746575892137769457705381830230677106564567006150503545480458411511998028515408053429026809142780692764408220248254464937173642843127962447327355407015168381094802887654612384524560495973919708044119957466092904213848780764642494233732293224036130949318033995088929763380074431871523703593426236859383367085483569982629686960150819843615701884209216590737774519614344445579276002239274776296217803220678929087832467329479669456393936850538058021066265509788330120339443730684041783493433403368660115853967277552792249908020009855627048227361655544622682459131193333057521100975332158433023062932561369835916252724835530963063956451775313220617962849596175095470955736265891458562873902748194876719191960799278465072154943455540417890854465225477767693389605168449190478542196589501573826166025865606146645171339224009294572597815717484786765737153288478556654851482881403515032894695820372415060115302875192073646119765406141480092567413252348512968515582746901168207643774717589960607598404329437564395139994329635730111110633681700603685437336109634272210103033418054450224938083739879836153523722555040316183597103138650374921578649988715021842250779725214483676183162913274020607114407980836315188919652318618301784597885748980354018002765408849399964518595757380248305671577492554441816003221000192908285620784557292986217457457008937003087353143312855574041832420112317625519541622257673910321225464856548382355266230023024517109008815119619894335099424334371497881198051261886997463187492354570040820824145462052230431910145690364685647900970770134523462958114721686909957771284518586588615757296975240405197323461312166300837418411100951691362769269009598174972554545066600282223191709144658531113305195792079519199933519361197220534355669335573638622367318682415058083685744459089503504693694026138488909769903440659982352197168694607468610546527603693350254013923871222214907366013402318469821065219011342887014544279931938226403296808841138321268966015543190588816680865180553680311946308586320183367554216227804022237489563325384863487502698263215652914982484331951463332308738138198850029274360944596748910049423934828422357287796788094130695149200540222035121940850938877624298622532954796851896147160661437050220616565271922732552946446710677232516460729461776038659142224476257345847794450942373578079859499485126730131326576524516304890314331913177850990987024168111201230369088888814690398172882036590299111655540010027485735699714746027888996894491074636860280327147225823944248442261836656573904886459040779317311388300746153183682936598566496118810851117210155851497355418607451942417218342405303407466882340739425972867428295651119808720504249639132122862955038307890969493994195104113046524043749160794961436697257609684147927251684959704460610863296104831651532986040825318902300447440658625380101877503980395998227932398085723381177857528436566512859064891923925275343188259160781978747236009670847930228634801078413556144904608590374066578382162840734094704556882588766886646505226864738082307119224613333238133939596846371751338552884133868538305671501850677644701334294545522736725909403627900425428575515256280775226097449131464565340866109649126743632594122749398221333024430536383625578216179820036875258724363654014144693138078275083473221516269734620056229410319211192339379373705969871361716416377679106916388237216722287776659174301797860870108669335310887042573584964084549830853806105001556741627463785217549742961939001285500174633919141246947357557108556599045483102378087992187545103227928717679344616781130238768651483461192743956507585364231475371294215456739427454883014263789532061322035968793855933561987325692227761095404352330484826414411503719090531177372003299897016197626979927395457229994791267749526153303628872678038332800066583619933258004913183349079048604629414316357319191327195558231837077806252686775830347316627050885149851971577583062612869863587283067660531257911700069173571826354880947317637083284349872412544075913402708943189703819014885007669840239278005529613445594638832571533109906638102771308609778307918887972144572710048156727332459584973070036821333151613153819961560585678263712112030470268059876228517029425596227162809113710893297470852860095341562560503380819402738344574108370654720306234445795829592390942617361234054693439157976577350694947971977807804891223325574434005726664365864102644111316060149623095131182327136402417631294301589329195653465200427192696211199078526072648627433162854506513539229770773150234458156216226928518387866328495285429966654858464869353026956392941429258494349958271486167595912715257764828267182760461364253896726815111881010426744887647580456490504967345425456474016622973826347763934613338287211436182257186176588003701140172055173997504727844175707668889600207567306051631200903890130181471560130625198949120552559448558746812629141017684709710427004048742389198612176603676356004472896668928059680765558510094787743457924782484751630770082376667308234073330513906096857478178233683870995690359783554071103130624719949126370238910969540603249868402536861477476283095376112069159050062207820661304599450914308949364720434475443492964833264370780845446960946001797745772495904818876793482774452693415669479497667787475534772460122493492137810993808000151111691566207109773752171706281820506088282730034274961444848649370619977405543694383494372828173907950266259467252174774397940298169228566724046348868983056956512001432266855278032438198722850314961928002201732958195918019411712018092436685408928571063807663069906690683161055648082570690897534741031264692365697991501782530491220185233054814248544978607008450497309502054372363671000481526486566864005283493893364400968868076536108775865121526619434205088620757585531968138561890894217464218137576596629621478833379373398964800435850437577640968460377641335406648327717013081773794010794014952875540770031810880177389097917673211290120018726648863589367709501261388823514002523445274937813308340503316275556971834095957070311151685663096650735368840013991029460386047281639940987620333442175681255921413498908635648547978900644835092929548172477565064649311738623373240808627814703749594470924250253523961355950685704430632687972782682608805157573492086682988610293226161060994095786201637476231248277843213382720254902308399876150114954386985250400461709342977255489015322283778501777263653261611258177983369074785018325317279141863782640024236415716586455649381512343173971977193215178101228014653700412479738519336676622766507435407640526480204490442902692196646910526472471764603114393090554086553127756176783454160035662301219800609443889189639503729673575343707967975070419543470415317588945540317651342669175155501366866991136532252978456931698975357335541024815635056389334249470576140186655637589083443486141479466860843188722766352909711195732712796762394563304967709413436958934023108929991080515716005090622028689543836100237553062641924208312610445690723253952243872122829998636223014392769452303784254871986926656774292506382959408998515669855260604591417042824181753974969549598117789414318297442937172941430209155229749282461303079594444929813302739394766566525697098691402533281916843264333759399142217857657800583323560684781493900290697958129276960694733882334672163494056850950141579853354856735690088854960442960294027198017859950777639407901068888088712399238217925269809500311232705165587641320754998776731203952540771780852157239190565359903762414761448208478958513982081094679040994558395347872876020222383814294343590776799037308083155653657107998627712323242404749063269476117901423559246446246049043875239453357276008842608058146113940343526263311302027595586177944864081379933037042171087385719199524237547368354426768791245302511373540084062608180152747935881087224444118033523826554478381262051914523602485027600874489145801713632787713497584751472006327570249613430553152241216076230132010422320276409137336534770453910403780621671522392365990692185624618798127690726849905698065462190562548843867811239017679715179217870401334571969427022770776317456491630491922052986374561038895211523979527427416760633732814942980365064600870622485988343876070384800055371145004676234932204325781711685395163200160695744715969286104365799253691170283772945984214730340355595947699698099014443315017119481178618492015118130740993696491711908414895922891067254054340531857393960808153425278566229517436788370382552922294592734092702611580967299358770050314659048255709559925129488294676708030505260000072877607457539673939927320349188082988967058165417599841852725089899200883920793567706237354669531323071242303361987718500437774770836733074952878390038891081494672745424420160412738654295861782690124679189579057467108678949518611668443667084341533197526296153404267552816832061728386036482614796835743851679123120074530857086709990170706464291074762677725912366546486070021273493408424692371122397873634380087044920399569414776671962284365618374494404783009454907098151420965665235024860054584674458829994719840088578484926907349049795048661188990225467479501168878164556044747702179375760301749116431544796543423102855910576078960509904137472289682236128170228966241929030873619387884286498641050901436813025342891314442008308026895818520425411382325363996463203822969014960406971167617803490743246959796489176709522670239269012944596424741201659344241742588809441910058483052316791067695730906881611834731035613909961818300238959553674977192273324582263936445381352462640344317152685672375636106063538302866212782300594878262565506262507016585942350299700482594486537247614137407731144094911598703420964140653507907973000042395425123178245693161546538944817163474529961240214053746847925700387598211104540059955453332404207376202292184231507885591109535596794571000113817633180093490914619710272097789262841684102208298399555207745134500720393760778388467657647832652533774955213115034905031331170372907717242425891871787083064105096470470807217453134164901845190381303646624497955153487250601970472944597069341107901218626561752688823236509798434123508741666811161583229221522141134524591417586902457552653169145320821793704344419502972752134467994934869096407841923356492882008114296882064839353539886265242831143174995160762690880593232309324669792464735759361400066588228775630758091397420766422347053339669946408397898479748702174241725385759515809588332981191183232863126414025028855857625276026871740845329254485736651573547968942396001683261003382924583419836405578403022925041315498400193585323516044788132412164872883956764107603580761015608253210334039670084993337626961638658264147568821163860874793294101103518067608262144888951715539977598455880517499923088750685836655515716367990472782289753588289643252576984143053751695117510520372288167030240744170016627428431866080813209936498367200961001217572321533582911525242084857121897399133912838543725576002777205065137875354041868752613190374824508337624872736746075527919904054365009325447965772617868469787526900954662228938151701419250336137578079213918409114453283963284518704329695562584886018310263047577013189386033198634495681666587191729216364260315068566525433195460645621272540637136201750601801280350987654877503290379842996692304871979737361237005004450111017209863421434448142080922058731517285624486661835457169958250859601191760247804917587030250960118942516181532668642908379165546572246588236181452870059164059291834098650100893185050300749827811324812752780635973751170231793524648742605639519261065842348084780078197623044666908304947840322375238921647068490029703328925224630287711874385761906275853624862447995733481952579457361161723698658868601102154939831901682740902639859568215016543057699249042977532851613233475279198188446078303777764933793897598006364490095043111364019162853307148803445148714481253986183475235409501451199658719852163307602237212857517328324954494638744581412459025744214264604305408829548141050865942584202478886159597134834055563783789931764838601652428918764415643317948502222059711181053351828207618627913195923795822057302474405998878770616459666538646685572019993889307039142440734270135086457562108234055555913602152888317026235605805447403780314423093360140310738052221104158155449012986496338389532742495169987871687962131277199254025275976117059067166378905169772703115868726807285909921002990680153114176973572430721426455006622038399407192717389485597717430090700963070646135905401723517178560389162691795785833726826368236732660871254754437950905868026860040340401366364436635582586576320987349504904768756226289709224527496531073627879634192454883225759117756134433519663815666388742633604712659979989937746235144098665378461260105924345684318065367788517213904114086891434976034802130574195431083921990953774040907906287164994177909873401433541401406281055944976806366738199196301246628425039477700999584927413239653022006401820331668136835304320862451446420568841630605717804812802517138613388353327527224213450160244942641523828884896780006961744412491117507024662800007956065079359572506235985413451355939632323084876933410583780998867789105653437541591182243656510664393423174423513282895091974044604025713441956635265666081664340113582242832446270925321986436636522995921352610302765934147247681239731855805017623392487563837956337980740647643258859259625230968166051374546932818593962922126306950302112224088870480350891943437215741441855212365932127415525357096827287867943215371873982557655890505256276438799243174077765235070642189254085980721618799647345053650888725401936469806052224188055382756611213257843744940816681770265825784014212608576257356134558715010464453147873634657049530995900860251300368631097592822266898046690705758214212040260587867843995752972455054166387060338521223203534544057498013093445693457199722427763876742236301319402507069545999249384877104695916545027807772467657018619860020828516804627461416534256181881280343208607886177969725316473276995379689412004699194032637410762029497719056835213138650072080295239993255516147171615294023290810597837885201934456664948583259896437704235526839153177878227781877522693174171993336453452050588505768631373387093831751846908443618641574847737753198886730852451782615672785238559503699166184109989475413644759088959291864469293601685700989840873477790483712933516853540988879876691953083772843738010931900826214618175555453671792496843479184959158753655785508410179144331715650847643903821042480226896684782295815749440163147413334944594136460082846748144188409391473422207520617588508610707264101538667653966477921939715922123508830124397049331940593216432845859736931979042092526037821186592843691795635380307576664123718289563347610171048717452247269745322673025738183653056369137030817543511840883567616269178877715702684682190762738439841101367629049613105677104357025677819148511813743087943572307059694143041857016616090920629207137120293080951224799013902087430936964531424771387224605271712394656792951401368133375304662485933127812299850490866890006627921273025453571831182453606726322191198851514821830006179920236866719614945157540193073071059029243928716806066986661745930649013493720457426416759547001036479949983232186950068072545318925600134489641539080502465063196759686205863933348252226827948448786945594506227633824991438061606112010641705478589713365261833710839481822514036991180735281005731150240138695153195639379922197685245849723704580849473986791339573714845783220497423105067071787512857119523806835886839723435656244732180788098126274270975050350319628682405469001773598347856825372536550018928016247538635999112637584873671673810004186533820777439275174703078694582022014840957205857731786850095893923052384394230612850272582984531441037446961202447936669331101648380773106691320617177061861323519654225570263051930591865874337327543075655360160373622977305945734477519210788855269935472318112232779399101592519558252467149084114518621740613293716930129261051303165246811458541017379343302392231344541558403725830432995219203720573437678829112607567232912841276423846446917501077375612727454000827786281412121825259006542529277939897815231636500332847040481095233386397000667544071303013369884726442536693319934157425008544450572343068081204804361117582244301891415246895239142374977327742276519573650394798160420938696928927504422600899900578460921357302715960126670268613664406309255898668806195870578996366536709926807407399180325362544275565838974676261850665812318570934173697 F(18) = 16113257174857604736195721184520050106440238745496695174763712504960718342823532757033064753153854111107217980956972311094371313807551987645270427615679688389330444133499923357612295105472898569728180212454103335089943629049973591907780692062057296552903280552403216694239075203891327355460071271019202307459542499755131303645773654911843755650169520801985361294149607500956837794546801458249510087206015145950849590956971307083110865729968620669481023248557683622154370297881298560466161255588004643805849285632501063457275606556201834157077069866350431709941244149430340376804687891750978965251971591273251528666837509921501820059959278974772955137066499435490409471962069956797070262724882828175396608842375949253862079040514343986517421482079629239951733227576757861140019256666088017481676787816929626050753513514197997219880636635517074110811110090917718919814526080394093014634680319034280918429077805893913799277691975372698510166677624523615113420055448312509654324275129878416504650858425229867602462924196108810701050280869433809450437796353064226137994659354596448860467864613898876433352470791463814942785502343393473062938759017813105282015317357353936794982542364760489912329987944237397830950164269372928014639443070854650822815514356651960897669142478258221975915064919190375531839883496687104268095384564100781761981553851400836112905388609963306865737671824507168252726831850638694385083478775216005992042813943577935491651062098935775915832229588820317867889367035902796321364702417695064373176131935749829552011220191660916305138249322188182375990720523193993581101039054797188073579289719367633920101802417328162711625452959719023888275970325181461602877510137836219269753293290552689428123837471997147144676279554641219338382818600605281421478609887659834378915030776762175009582951300819040556136027426184867045130244663144953753637822529952539573899772230761617078236015566109248692819139423308222674016049972253136330137814775383241846559753843852858175253058610850847829770607304611716124700187691915857017825082140844518926052368333149254496169541987863381443150983371435049841095258420360369083090103295668638334162824653920097285055010378770414275994926509061040584889124837133768897043968307127952138470872615300450165518102683181254005665179713318415328532389713394405555327504617945823008727675119463672887489448804028948671392868411958445081586719122974263349688790928372140143387287713663300809089802349683864622705829708886636287744223635122172790989703032669329884394037058500143828581214950116716860528315076226477760817964144324748729943067269966484491920136287559912723443616218059824705057505221252584287772642059873903818958395542054498311855040504093132827278983759273901952743640374066833443129339180348794901720439121062595011815290536015800793598971588035725982691325656250421658993992750217769570407199156371342499713209335403268331926928188925916061040172477977503083591547036451896298938818110969658258921342134546078979813635214571553241776199842879454073915459154070443752256871790251807688080294183234647980216888629693731884483776952715044743111932510417226055752254983593141687746322886248817949397875616943177089463482273724996741914742471298389193274629178895751123671079093083823859862474218781527382088357620133485554026665741444384924962487491098346254831515003190218011693146521567017873913667600010316023793869684989408495246498043176139308009095514244188928518617472341476450718550585757427314736099010854358912574655409776135568224967205992618968276136929876717108452204609387075353849590890760173812701782860785041170295447608868245841325130970084833035387972625018732615336881865889102346618250302128107123931292918068737118344338313545322644116076475684035459816775808681366204773537518457467006185593938507894394275319133020246665548824289815220177922934028682011073709243695540220528797188216035063505220992550596941134052174060707304493901052826266164853364626816451469256847109850298847543378453288094059009149293012009178558874974148460461498624809990016284948394870890941344591524747761613600260225600426568174570070045347056341629382557166933434677222614214042092138757715890532132676913787639898243620223799361106862973768594284274043455832279049845160465092789220767646714112126942588742429095504819910231371604370996080060100553100946043950173081477095804496368756478770825917893792367184587264849049607501408296584301947812898746674446463661390110084018682359861055784278997703386598118473386824411884425900743923891632847704500432374995763635114514642211793321534245359832625617218907285949846958338171959464305088922422874915346835163452079196022399867597797151875270498642358977767549548630912843719329065442626372490328088854902525445385704617185212944852828890344516939681736013428678388093318717099393029176054922082896708075278499249327762753380790290331022167959046721733707106603767071755800178878035216340716251277802299688464456855269524478174569713858648568287605824625725224181933891729771334259789489866255517134580570061673257153156886259038274884109335731435506427977689573524134432895773467575553414576194129483412582388516519520272077075593453453309712391026933218291003752842366964826392346249973686284107809735832796709401614378658616463280761013417942978636282203203768333403742037291804901258207555712830451794416027875524272256905586115783507382582329090294154456685241393226382863194328140271376402662152619926621396091859827640193154615302600514682313044672676692772785579861546932337862203629144500485144214220920620504964274906403793380400759683806624256781626139736423909814831026013256846856732586450576393224614214184139324906423745800829875492653101863235542609771582492888109814529526633626102763297644073625487204227577620158078985084218756865575287350465291900491632578645150534642450631134519553694744183118306801392108677266438369422557597062553304608113117614574553892362663424648068025355016607192728787088941248719091144590764576296086737213349155511388871075453626679342507908498924421125135480705061389573563521574374588408724970911316664858091288764884218544916059184427168410036945535917998929621927004264578666500199086043729403586345112128718657515248368913071819431167132071087863595825163699832829880486628736325970480429825203771271646270144067855164136771945088863705208212338393890892339089043039622313258084119434970801031873990546488861948620686361636593121938334101829346708396663536095623553387705273038258582009950145521716721385433756599974426047141252426463813477065837402142547417568394251282485080521381636783698643044180238590302051740235382131516867839209321760950551092781040664950530906393659250310390577375443140554770765626200352591328118731507419233418008195259251202450519516278233172857112414456035849540457132279290528779704622758659983804569324757625808281249658694396781554316393777828373578209339939865847464428662506942945448243995933556838514100572270345840987535866122955269932208146609982766788167050411745972787651653016830080882640689084736114935616204292161454447315719447396478960552299510032150563495711998967213924924261204026578607397951827921171653388147547784366789196624634279261586879091209254605209668016874142841942044300834991040592909973350993633342914690979764928561803595111360263398245785164180812243072377098789529799839095692375445307278510309423391121075487096507316989382380761738773733743090629079470189911572246134970794415725705486860803608401970618647845484848405095069817751467957166796088955017941564110523693010872203757767024879518970026039482286777736274679858798696107948697965132605360449712694500763776264736131595747176257264378385555977015978818794653743451939227551940799300001934352848833919345758688837936939611845519565591621589084295505702543557086645415628615548218821988212723318533933604986615890456772824146420122586057681135080279024654828927716024728152813567431485547958876602767207539002416214122639446318806319412056639265073362903063172479681260716477067202620345532212559767329554760893005200949248589965677383129354497347728742647165682572570830498173141872137976455293717860729652965012971044610125868454358096653555176931556520771773929908690059517059679987457436987262273750125465393042661670626373191795950905579659840066947170524728018719322437663864972649660652137470599555666725142812915016465847178614075083593932991376427399472684942137512658720737576268521632975069656124582815035489601079449210318670149965079822501528403351161013574511977014405691468766512419504137272146292370380373892514366935480048430496357163782041581264343926465653205116056894985701820364874697437073617253179973102868355707947323913830472063964568410687731010929002697131294207196369741812326452371052844029770704542504800744176471756458557387995227003004056068123350592349849587206726996688593251553075952578822619000716568816542363735887809870302621493375113294539382060254211753861190579294066643035755863693886173098320164296643861308375363938474140779306576386862513978017021672012349400669793627412856034471490094553955169805529451669174298412950150850254478017871621041042877793040926570905903164946327555564732964165632731458678836786879470211438595161203901036913107683861647374778139311469037814816324300061989127809519904585473356398821301193866485955287121496624107719970626795200120612559172719663877136294462161209594384286352697882825627400553624338731938607743807283836524648520871728361188100583654791521748175350234812324308781244644236743805389248502737707917442558321040993437679132877756762600166714592838947363886750701164331035496359131715165127547014177732469198380246299456330112601395030069175646690896410971416061054996413437172166657367048279714069164791297818538002601798312594280154770925053182262415422985703712465529129799871565112736700493670503669629821964125203833106740860770221699714111237565303800775313708475720318625744021711808350507918559225700066888577325078229777176428642727359192085627266868386014920582364239766577915812515837243944733041783991166353117328810061472981278928493910380360774950642679147041223721830715711114326628526241728691111734569574696245111443633205635880837641007758654042286705647453479999072309460597885203327685021648811551182074145033328233201616359885504451416192056916527319522027737938591828249533719115542830306058565485211866949730442037319065066071188409576398902742104181290340140616670025082738059212514316121681002615690045127548530828647823304591628098751184492725043199694814145677783128539654189327014333783344975807331793174911313476525515914413508275735185947084418163235857253639989714502299800067382389222874573666120004840281905834903812928827507388499434728083133585286344082739738277228630707692330125653826106743658263598367244205547244387614444022112201170132642471027877617528525762191306557861756797917007678629902625642613170745673376693840513847761678572020301677291983585349974686542644198832714093326084038219973754116482309069016131785074659874280289235059026942725935819706701264935694618990246100418847293138592147165981983424047719116492694892235758328431720451252036781309472254377089996160754641336772142283555310193420129993736373981798185394494154194139886942349242884626627695145637944651910943603426272643785626820287153824743828680675054672201523835454936459420842216710840149966230539754111445212749302013658874747849766102631275922326141257253236652323420478625229355132520998054618429633390639603645105517752154225544172732952958578411368480162071005931282394982840379690668301921845417282761681137892533293546818211897208982306403321131455163634527922634152763973788064494818757730826876361111776378220459670837674335147607697923788944553603008514400693141822208370222302934755965208223389626362892852356434100402946973137876120906766964705251209501129944948274772756921857524766203657641947430633360270472652172204782577924887475034606642791115695067774174405268772117626165844023601108210166117197535320930606130805193178048851920401760657496337034998270148512837588042928028622232452754359801549386555345474344625618614094089096644783763800716806373447645421500142419998544123558509893246899097116566708377658077107507327035081904307991991804550468411665752604222917418632477529295669433166643468995557602151108168766247593811449013793031185360045458384923153541010492084351735063472929842302958211409368168642445907157133838642642050106728111930620127281883253759699201702830749729908587790210094767508520773344999474531150558975569804372813443859628142380952778669798006518295889883537870330971806443619576437084653576372046893840431410810467495063074899177549549765478392280872067262246060586960433199487292947701140059142402567666028387027031621158753180603384271166423681775122558262777830937328618753236095429230853812978176943468141241867925928254686687934543986925205764645522504900928622639777377394448744246991363914993688426260612772294511379613492269800764229636361194516354685142214078555837385692055399550422747160388448783164023242944736877692198867883877669349766312031505125342618158587210294291436922785517171028415724984971992733256660037585894691423027160168174776733210546671445905994571491511245722087019385561304668966565541797027372221594683858311680472505528784156180135135295163148128960053379321047428127200942639207331483131676808339277292350979841644863865262431367620729236393766911198365504690219264398643762805037959161005322767126589546436393494528280998155568520940615684411170898745949146339642462665245225875915483337523239846667738061865684234325478942262312888744735900989685455179980222685827919034227143955530808587837496136249094143183636735676511026650730664478561686206976693106435935328909596273665055251535911353011753557396394500483383650726181911969944305122311277206823917016603494044358500694045656404123315985364233665313930406742090854323516907820090276739560961781799613769742324750124257366617554771514704068720774975981354092705291779785573461627141290804137112211162778000875495473271506505948553224936749021250254200745669159231422325722591263257285960217792315983245785388316685918678332276256179389412608582512143643525027920388751702540281806469505098821104548696487939879098120753148180351040504232405186865870370945692747824515295495985348147056139382763254511400707577720875010160843109225374666599234135016877288629586849700550686964793318551903174420820697937866159134119533305676160673753057646067527696151320677761828558616835796317170118374144153627484133391835151755708064987669218505826732979913542865821890443424015012080550160589522217652796485347544336138700304614075911139873257197441021033462976008958444873245411245589106803355019013832898237929930955627502445932328063984227125923131561847625308482419414394443180601555767609711311087559198853606290167019685786823450056251079222395625169006309086118708033677325320203968586919924589922396898377885207461888541962337333694782816053864489692980813353048191466455298284215791571374747092387552370322210166900202993218652112193418570555180862819103676436529727333227276997148004931559155948050806990503660123335204883403362684526022568624337406217240436346330596308266093209060476400900501736461866833734721684113743098974014126545713298784200033212311046363906402437682722468862706147524520180612617517346471922273350966161722761120740476082741542044983423078444274728318013662953684403965367951809405919848230074632428438325015596151549239910119214080283697321324049390268426265222078512272478813187092360177680944815011008988016504613066344857982241662543766424957465151032435033534463426010594770563961281488267268706418995653918080411295807051697482712993395741124043554924346788670478671492757704038405330601520669980771391901776576185882543330315948219174420947487068531614185091707373599505760732217627065777133041579974407907125837267208533840797090136198805538070774030210878094190371249371981055588377353074995281634320002647054578003162225500029811960672186465007672830325748726949784333913664200225697626474535621483841413515083504956184266271390877306176727347330187484973333510980344690047872625386793499544875810821414768769738319399150839803968318470766231632066769327531130762627074644649130204786526005866060615281804824177101685018240184206997772524405532698271623424841611142284230900889020763447071101301954756708647611568216578737176223564135806223063683265381070325052445480230145258070042568105305065663020094945608606900973587424360221749554142756969249273715864071681578590887604607999042808968297707048268999904082324268495094010801466557042728178029022640042656810991230993139513842129055175128969653358917210438390434139581500910536274792698594317132875843870957016735530216907362394319532641556843104482934284778876656959548567764456783001879599562908635415898858311456240476773620585555344590807987152068127668034689956648669994206542664048016307836214901135295834613801153247643658100630582271741201570270808437105436504503782537814629870284465026158841615547423364048845500201014957454037204462955674604050862312104524203011680544045023525994623675686459359580261888128947840824378535198059322177257652535615624320463088199043094202026934409205713886851708201930462163612755000123066997643804232730216335291210029549280678608166384319463515639076481804131675284791777199019909696371867051271795266010914817358426119890461015898635574787165094043006162336604870524471371030174464620625751915194411249905503358242066953762631713700993178551080186525919789366321304271278658121485437460836319374638161490369536587323427553071630452891109544915285201702418157370604574958286027703724696369341853223943354718492097642593325444780743868682970310024765609342494739337628395429116030436220089921399103503716732260334940757373972466026379170046718770502699655978592143388941803817875573206584577577603892391126288150975341062435633328037381001802715313087203002468520135941520006398941857294348070151548835655640238493071426585614661812047850027350324883599555435147330551128542723022115461936064387066014087443730152420872248360256662077740235321589378801234643609372780257755415288985401052406609444416005122225069117331581393952818400980803060769874033536024289125951007264097707218662139987799114107904456207965031325490656774371474437202342939183047411473204076423028352099634365966445782122377780452520863519485660273948679885652203147136004430583530694582657742915805516220169326452255513822070023244436143824921724913303547015418964621126706036448073154025401300997767860171083779303498348861662171771299770713060016422703281719390757161516092714122653517584650372813692153497455758662296062679485058414842327320972418377941910931615029993490538826447984237212288016849023779243483629587494002312740123191551083737294496001489710037223907390326017200678242963390317536036900487922851084841071020445052673521569041849682094721554711885952823695333367457973451374071507965491842933431248116892356100677869900544469506155489044772623906721391011334771041849306813657556859289338043411410296431800234178209798153476408805616712392786919272431114217659988166354945717434473388793031586970236229449561923828149750160029515851499861560916475158670776410533410181557030008096663858289664193808670816065113813423016410165414766617058586516916789912325953004524732091073687411082706909950614219618351130273043299160671063108199868361774557412371658406616928625622725012299903278156664855803025238357295957200884782636823136854622027534983585287738898023386839841138896619944868698001451104719025046111282838758216645148438720171851110428013877174809618445155736491520745729904720523246556082724800657398928746839986438734915688453853039675042133490295145835386108884299321330650391655985424533914299037741683253428192908870925509652667658720126312233896557590053248026040311443618758685047355720712880590961516101607474539010722315420569807051586702456270515362309735232500200398034728604816704978661170296603654583138773523007460054065887516544434413978946601727159875210083810599676843227835932997285740075397993950267721847892905773590352149708586854711084070957541870896790448349675571527983600679021827411806196431508606605969536436343226414585771659800318665646821206734303194351407823299097340039654693057669905441536067495132192561427322039826304425550632355235766422944903543748768406311183323429859160263077281059067063248484091782775322273967164738287644688805953240905112974691226747087985799681406450161694403055589456505489259726361778091269407893861879115080331745633199046493657013524098669031832553860726864006228326588225290480484363676746575187810597009227047178615664399401875183734811954887981036159493353024161758214677966253334568190436415308366399849861034093873192270315844217201697813565209227337091759421552741838380721225606983843897755873943319444831582473784736220178233524448000663248800112782060451282188812640156154534166043185637728275224494656800145269147487405326240002454665000695350583164896744668898174403818052498491766451252091944255872679811481985535039482455050455114737962741723328374895244156421090398805091089776965119798256551260850589125447691956216152918842947655600441563954414760451586493780560358926857593880024662215889771865252165836560273970906476521950202528404602062371283000022934716165041128187914152610524896941707407221753994073228711011145256526889738814957168837416585906704837778090333197266280914917945945418229627397793786806002529254662841997250796048088450047647248782961895413432451577808479412730119918960143752820968994109839574774089984333382990160173005735275712968900714241583007704100702696114918567285391258373735580858083185400275043534067425514617729293065225083065016733022499743958009250880484226772853839405891976634374451593155524122914576700631711226175307934685061830339933940197781852436555195159952457463688337113591009088624615674787480267757603756882108927501376052642298370655244132134911337010635291718402515130463057503796408035756626618758229190034319667523278624054122493005440901330596622753645084644435916157179929071940972394533211845731003027323788864924307030660560273990663454776490353239452862217976344138514017237639777544435530340448465845330889676210760847933105703466837802583640868648626653518478370621469617789239366231059973418609304773802723978620069251384058928856015008671960380623315276332139257723382777916908967716057739042180059105533590805921459852181484932716837281748023189616105120850957219928671171047656045718333753333201081263487594704015652256666517609131276951943326706814998312986442880105780040222898275053679867299529606852364008146563759436214715122703952853062118924288988578673629523855435447039521741601387312606740279431319187009388258503892695013482280709270016346298923463764536962469408008329522396337912597075507853288017978606385728031731376637902345914248172233563526143889766575011501195896803301206934608655199652201051725601854881870016223767962783448614069323186962054616839865634102258722003082123534608119116978858510974144530914880517413209529977234247126418955499335670889797843516811173269701124266478072289144158172170058027436109228769666460024676518776942773638176257307346480441232216734116646862579436484792517463431685313507664324678092937414866101763842977508792047135407893725728770395624491987041705014209767472443715360218851354843938158665704027052484247158563405027573197855266010063522766245080868652696701033448085444727360587333217001015659602666871277068263875317549527758833818799437637194264268394294152028110178420332313740496374360793709716016025741446465222550498799198857458840421759849924646878725715009057083172419529990585268317917087338913277667223972661829336659946045031402992138450343238200083130633535502440052517958462675785379083211078960116239980319816558332556653640586541156610434903731793085155409104037836577371366643295531460320799726425627431413593554865877739847314988733197652277539707821953382657715634982270009019772973735652986835756612579095390433959508208464608403883513643367891308048407279059342412470690352746052804908198666619124905026626319823012548652133983376231411923140170876953043236297201274258025177427713744042675336219594821253250026610516838138758362337965377356843447590506268539901309408265380139979067746112527830734778056287470928537011125974065558816539178486412879081281222825773986147363150406559308622984068941751289876731549276217748046673546519980971212975819169420603754588373729989869776284783413505832742993334238580227141137574232396158336021212115635511232982413636078832197634529841968004383062171378533140721762021871096776116621898371554621322797737446997788605781451604598548724421764773857754599877311934510777240314723679522899957904387294804556219674841814846736380027905208188812013352249461619658053965880002012474740979288303265403133118708869080601517534459014292583491460903732740245714952518259444880880818851318235708285881799008716962687420026764312233140315452307628668248906073259243590974746867509063087656977613308082374548157016477776958582035446252836625359602247626889565913650781861401644522434466173284122311185023659568773339287105121482423021663597503239308989176568573904795888044635584325923678062519144755387462619489775957317974195520913033294091034350975673707620042205668975891921595816359950324644444581990161404780658892021549388832922106671632312197769637117429011132294851387723034376126907003843483646405998759538814052771466109729290657890275958776510633926455391818545131485492568531609949064791153985569842510448419351858051835125793688915203476242990681248673955896407167303955578392568786032616002407877588048711182183976026437504427746637662154033677569758091472328769042694220235681040477953950780207569724373104757230054952903127595433356180167988606726619460206922988502249405894222673342388306613098068804407343475831095303847205026390718476648561502801809297514393759346232143636534735151570427674949999408568792174522063283498623426197687985007338395089431714656156537042324932284618713440762708146569505542089566691646795549955942443965412195366260640765470463871746592338124169819121836392516582760089406364245822692935413677999189114050808508660078607838433788078035136979874346288501165533200267581565753564571576288365988708218183958333920668908740128382368454046726771824777517988623209605047285482962079847969483702776467096565438563647223490440649103288541673534346816535851354884831438539782862218809387337282430845353605022731569094938028229982123328582739462059037197660583120853858916012044881188595082236836147345560860288864977588966362403291015086171869155861949454628475344897593375423399657314856625652822735935026684788257703744431630037173209641928488322494726093996423373830544655277722884659356482525328646222066150881155665422619502958765262888120310375211613738970168308106868070201017352551665735043443610938605426902041410944403396602792591980181988675592160649987159949298138864644373475895736188369785621768061787916321908685230415943318360486991964484571480648913183219982821376086288833654283541529337173401961031487676949314448037642152051634193142900499024736312203614499423450223236752951075279932749410708038651938262017436268605551863691567016009440850649855698665556210575604663969880416797062717451726379280792416012425338297754311371869404126278929569165110116030788352539098738719623400802704990472695130598275763113885343971559709986758620040736055548866474046640816411952238404626496881447203273108623399094616035945119772337024355276436738693456888293165355826434926391271333729504044063445831448669036595540877908661132169676560299095476213215388737285738004972743688161677762349660411694287783856203941127059859312944850963364559361319469658052465582307435296549645813927762573630459036269077365748291824735094157064696066417157357687452756922422734618089537080483812020397880192888112739026738849852858927798810801173023649735126213215656863460596939102663432774567603731861529885289108985811134006723934675188624941786361815183784197684787009338249356171263739486981293216945696329972072143487114568702612488994452421322618785297950072405440191628778621761740455752432820192828723351439266880321392827729219342631011185615261908061235417092587695612425659629846624885146489663681517105394965523331030899408755061844651325180185154415355391058573671769603913366320966890717389936815997897891545530304828295132305363372828969357225783226685887270407465087032049336754441959752812086809279387739494677550499684763743269211201297872487477996121679168362371620047038998901780165524878700627775042977873789692447724149050374155120173035106881707523076203002299094957386603771469279512581695197476298287765043653450666623693268494765381940248336042797849155215927313578595859576229239549320528314495148277476557175508609059643130401797542196284968006361790409340734622800399759879808423268016226579741492649201559392842574755186542512660509177093789828541462005640222676558162948188709711872363603590001323278775655506961432310455985831926926161591654290867873686815250096601492847655802591440963339478017971156779042181997252271499320073210311769002562064035772958277566933192880926534275793171545734587055781576305143499648224402862501463233720739689004249011234741345403248171278102987789292540127007948647485858916625445299030715390189123191261854084073796009130586338070718068926955566033142472702507558624471361973654606927668165914780609749546167941341127080027658038886484545337200051540889065702764152362831234672751403716193538457512697070537301094445531979465701812190845825260146008237049458489019298079361626821557609625971976076456048763664229379402490111384453698080760559969998025364317619120903789556968006695211979237801443277816161870440177924236444506800394646699400032765399602751263018097599539443635394805185560013784503078004923858771074419280471801441164107307680405305043815633003437772322147886808773380069528050388798331285988651871763171927239902716799240581972257606807021547480133987817869861555401564376448432643374426830266532162759178167772704523004064442183592473355597913704317674684669166811344099154121249191783821932534110460569622673646939198182584460312380365855875249025167261890418507214673859199578857601210879250090503373475767074759127881029789555723990463670460830874180567393561079385355022940392600093120117575308160619399203025833248535585072637266792372564314595865996867915218927399721260533577078598445480682642448232529442658479791611110749667840570619840361603542460525128148359953045007952160663982580928747569674210151407749707912000147369434231594392099137345584025158026682891889386790762156538563945965678224934282497873798232603310545345600568899154417204081512224601146974945363474969502147623744166763353723437192642367340754629517465007382776482630057299130645835145359744168679110926189332917764869997549950702200119851569275361670303004870709801455058646752380730319824501961709057858208776676075920343284725825975459865094592442261759956067305329136799401375202438005556384222770257781221892006356331034697264382723071442572859702771747947123897262563463400118642092977260226800080125548801659233697128380536274880650286568935848152158363273468492345583610895254102221223913585813398097546588251514748212799285558170492401930024376999106167834448471893919415314638072855407892802697378859727076035214218314222359868836009010336867574666811528698196353683505618114897782586077112995682865073790515778942146602255142038486158192145656558116548768738658828177036634985629485867962418160411632255098526160400151956994694380086620365155803503021311520766402394013192722110718344588748306445977841813737792590050821609664191914661850253143648599819021733915985456138919433579597142748915425651772060468106657964238131856660986578439668355822813994345080227453658109104125581716218623345696804515629408477829791677717698610922738414386444311384119473908956508912064971476574526231628094998962690103884201649816495206161712055278940565704537264352800318345290041266171239768586071858227336937478586709470235168044422445603881353365753039629114917667176403032147108196885302800431529355968903007916746777321515025539695011225409506764671762835029837263893300157157333645553305238043634294485062503736735065995610398324058260791586605631299384582255720698183803251487120172461157348913330780378013252197377741653188380389943126879431066478528423159421665623028119477979077229955950946492586001459608516384505872266225612436289353841525845750263957105653137368265215097262988678027008801196270932267601761411006782162880982394894925055901427908573509194919541969395746737919766729089131639758092739919121314700980071802325359366163102200000272514413074525256877463800707830899507132296735232932426888755249857369258117795452438558511747719280093755921463732453461927845542823841885349194464214733027560215202389902651636739108367277613979791230639298590177071959745687251655270442323883810421329898174739926647462003082203957601420159212066277823404662773294144114657310089154215044884990087869185092142223850327774215635437418691830396166032977803192329225925876736304144029379203141939085202045519345591710729062885681507750119337444695916763040559613354016125836390129353287168715823255241535831215474783634061626022023950862411896848961833151593511444042184604354526917242811184934449761229533699096084448562333152495711884885973147029650996476623670827829319820803551559006280068813592993493680035437107702693544881508819730138894359666058987389493762511987292635875832498507768517138267468038487907169274233670952303100107204263410157800238207487350024298008748223304519969287151952624844621951684553357324979317860416175535818087686697316633750960237572138162387545687218691270287003842213349228813338862217345678985889870305172505932337802840561169601331878149715341622945195654387920807172042900775317677101919056106716783909574362145577191839023308952350574681913934728311927661917987713960687358680291484972281651198207659633987400754262830682668954435511455121727388019711727694048164247234122871545337674599205008048387227962747919786800719369538436285587662801217999760196555619272914490573910772761039585805866051478943136795024861067124316660052669155679117322987411984718926517816922176359811026741217430701022209405616337887755952644580226801972844111843543548504677056097373822234217214898859048537463160664405503973633797288384959241004580321766996681294299624662294270204987383789659086701847429832026767230048135590659175705348784757911930240558200229618495501402029339575903572758237507202546673704063207584833784803077201463704617955744596747132281163642735668198503639763459724772119553483895980562914816439356362959386228509691565297857787448008561687070331844707862506761344548290920600524522638471871683535647841286422235515692813343971890620905505261707674457790210127681215380234402191204155554614811085116922545837037385095033017992884253838015465339253268829976338935409543985718333270000888178749984982852672190680599651708960943790367467213760104019262197448592503641718895932487669135080288241957741881903553072178800320613863517571360520316224539256722127794531019951763881657930024865079712675770701383112095001918557385638774629771408431603264806680575619001853546569525571062230140159499745782694677141570187045275785077103770692064202599949527258525665594371179435504521935002034448674443948126749421960720434647116500204871990907321600238879901308357451626639454117133900049254046349060603252843130957471207171273557005104647246287206799335738425325309939970069290245444896845140504830337548997991664915468815751732733748587803164696447112476233845245764114983422483991682215726945729703862241915339957217115563530958820401034016326116971972696048808581541743861456127624589906997346760366094766902049973258807483070722571539040503275191424974522995868709944629298052514294061380477692552536825950444353753794388979003107516149046021533307351097727704482286501035988770951186121919366081418706982127097453682312272202393109238731395649062890670144847849051067861435801958410934699694534737200770467503963981568061271915024712172778894311060354811492339863524911611769346482128769059095661096339704546032450198336896156516684286178780923092400190904725229219634773503751436642973703772973706126053236404713797375017807223992548659549990832510530875292173097152666731536721347138096605575560163195020749322780936505574390949344506393666725066324268047726260993530332565380345689210667976918203284605219524076560268261667922609341588312348753324469620221291840493754464776609537905498124052931749528154865019973713935195108424214354476330948530385185889359477821191767117079624146577044446108741805443251245276292519698982880387726753657514408300532589916250583644213917483095627434929285443706158652953956963045084564742371463975517463788798389022272820031669775093771039248006980147125961374266265567029191922463125548586946146737596380532231994671632839957813159006266654106092851204656700406327435535605099144657132816916783241857417125459142053754027702519159966500878221656543810127474758157519897845269164632764259748411881256469322268852791554839998920121745805775436188136868162488357228897962196967373903876946010153890851106123060357168276533332029296583153179511687892012639566044546886135084021723033912387343029586707865032061634126963381060209001391135573100082066232122305559019854262000346057530020907053205493125314224720681493499427484565839252677401469979240258999379222716286115993598958371981150461365827236255467330356035412918452471562119957989135636514041163383733274411056403058814996219632263685944320693897230455825840502435826665055057813711287208051599256674561876638082178596585913164749487905320168768921599080819779482459876913816737071117186645768598250315766366313046075989693932206832946859104425826492403668099968523570152747234459353533063967646254944748730445159563303723988867041749370168230285150413841047058917161531356446751027454169090985707464252249267138605130250475544647871602306024951603897855380278332579583991912595437523742581460415363924240006244532936838163852927106140905860773078462428380028991951957312411082228584131993038676994733707765690760543212988792899274548857395062190813058631178647348515268393935704298068002101226931093316388729908843100173280001842519815301249107407296506147874152254816123053250872967416805629953194331710904277351350572440832584586652655380493202734183799553576602382985038408856215516583361614787488061574445701500788376868905522451835596730161970580312314510825885184528859100983160758389139916428035681723568665819046588232253953648310183926389241321427539603337522236206982481837231825079551720155142012096372390378529335435963262717094079500192749505742564665704113757438481659987288903197462085131530022276972382561010640062500458681995623937998538150642745981592453854426762250370557819327627103126605944111198642296935623120442045332172214028282416626649684486123713903692057605856740527804342653586677114253931425814505438794883846728994584201263458149032148101752533446610832563503011066461300221332769162685304465234634647730470145171653447215376691388791986616628429166572346461781720635028044672440513337428949074052204756193915709747578709056368614790044629013529911646796485010051955746524070186997212587359085975232793463666254211333132962554088429930686869913510621313247707948361880059027765582418911247402157580466303678515179938255395112865718569477868794159566712289089590672040385513549930663362283899132302666335083039761567001085147884115449449209592081776993967186413721178719604679671410896390827143014340534781822537840557366423118836589695339011956069599114399248671706946173215901291402082217249058481393149180850001695762849737640405191453021641178581735518463134755263680874060194929247342765852007433618568515422077535971058655431912685128718726266708031977556238893266046168015350273559635428925393880123486455724762099615363582185886504358563754054523384162297213966550453957415900964069337712235484320463105899303396219238002385327913444747436175312019938235691920235872405835652612989186969627327847392552710049457799923484043606176477217039145216149691534241624074377916740088041038994971078287468213179031338919123512131288069387945995937838409862529045742402399666772625910250152039684812577241582493982224237359506638352401364246479057710331976659975343134761046220525981107343060432974228647211279574038798747011559085863842870891936004946918991292389567573310455822006799748528405843610248651522870427262501707886244325625347561638201284400671795683538825198931606761426398928665926447401643342672122800721360996836198003169008636690279309065756658668702169070679822708915041233949124477147372040953403088475891237919916256197587641307507519468506688159237263839382134782588304846527775724433043653745856715252996284057386273568276147178672162628443434032383838463301373402816434806954359179155589932623794654326396074257539914789017247021466351958629003708577499551491804349629756524143190860737377620885715933762899814906407514835619445559994569893971511359133574530824855869724760307136573379017511362058720612056022000204507230052779044361624973260071504261016233944884290857486724921551658178815230490384824663837943991239139467820687154685578467368204010988778022841121526354941839247012819773217058573582801506358636123338629207375718768278273806045050869811005234481252729295649725618306963935065993235305388582389503576079089983112733132250430793475051157115017292521436689993220520881824783656938696858341723743726298085726930703812688620125494883073722654502945991862766651917880005315659670590695523676858235597726166307190029856953078356933148516302271041969125576456863658908248173612720894653472074192580775470888030917372422015442846829110905440386233178080143443799897537625085221053713334560984417745731930368579661785693531892708546181657001311921450313341529444392017221528860696592260632590979809353309870928080069505302055858695262666487217096137100671493181834671589177420642531234204009714174640931039129666175308492307316176557830592797155518896517590303408929673067747011026047132234679280646478272739419924963732822676891776959915071138967851412528239808392043203471374185013703935850775256796384432568429188702758435447130979360882290342298772254793928322894132620793740540716387131173261486578188219772109763445626361160878747405249873114743769988904687074092210449066703180940848156401703453401177717698754388382129341660449617934634706985007016661558218532120190291565284039520140134288963718230454196274306111970524102654580004605822299369603851957077921165417342759372699686089205888774732349894550064556463362462708487795741043210675330136469301509820571208337619369824048205747532487237780868387424120351377131636999407847242918098463324069882501562498942688380764685616480179312098222767578553495612397464313114063810378117541216125723617568929947972789595933724643270879842337581270272752670073059837241773030410006243989075683417654542746873324192820227793790761157483854410602778612779681404247266755174274322298105020796113643818299547265770406137004374721379198835263610195944145332172436339775352612462944623853498661607475464672546856711436807319427498270678217278152218888931455155071175858332307476379415733912122317739369813403211487906788463125371346644870222866646959907031291609372320354086226775529076780450448636303033616185733252638683393587229904005780732936675333085045501806679961195860589975745560507473279119629726886708609381304965276123381054238794311547182607760149278982390110600429988492039125015312885980683066195748361653945966532445778806358730871322629656024533199628313157197997684466319316741457914276897520486199495520643579106235798378921202558746850497277996964535514446034982179043095136685599360539282267308534336275351981368311591965318223587400140845829901671240954413780319904565107240143555388408463012801588172340481985673722204371357650242870082794659739029388792082300950238519098495212570155165239867470189909113718691860524432896548998567458928897978651533251515494444517953593328065524548994385447678923927981612032495805525688065556768984011986579777787790608084116787055780449812367582973543799505983903053748660555862987577131665651847817885530701363255343301543692552704443669681659181290553039394780984796279307805159405367781254724983406751038719066211290735600915924838623666444636322042978055573634645494869670237985186313637573106176323913315980693374486115328697547259818297806639329207176267148703238588559569020488483984299015651083527147655051202466430549105913942767726655893699658476689326167694177152379571544854749101806304838169179259217995627774518113404449739183495647951266088160481203738399072340689673293049414378265842639924094677844441781225875793849215103708975724813971846876139483276675698026104149766179881572200688013081611801005802615053565900295602079773973835927994398119059827714517092576239396499509684627211508850404592585188479606106926222459195988607863986961716180606270666451652695611765053076881418583881455989013879645746623504924159162797704180300210563496189442733911744352586551504321938717866407028700139242721425982555186456738375236034781488220687561840275378623738710354954386665899726768309859811525416344180702049233144402840906617089529411297064585361796989231049123424938755060999696975985515675159659442503694194995313165308680670671756951234475454305168080834793697693165913070280292639105387318288458773681380414830521693384475423754495681675815567882481573279416814119975855238958365392003350329301815289493890919197172008527278505423685129904600178036867805721983843555419142622527276668198739522612450812734021416572988453946625487323750465043879546439177821936468673216119047807552683923769153961379672946231041335441140122315712448121032399001776913511221502376643137059555341282512255302681198336570184545438872323751675754921805078240635475012203767172496882439513247663393302157214694933519253196609901946662608272734539353968936933403095091666554841385624555493139959971008819316677638341715690163673712887764385879589970763603888629080832475766570712580388760158626624629943646550637655873994929925598244797845350169483791545764893476328605458001136172290880756681220393832413575909211337386686201229433494377372788420275297127749406431284970696469792021977337523333910948062407426686089848058540756241818481445833597455397689893272633737406773745406874142823143889312372436458174651101060677198604108441896561831802986252408193273976638669465820339101701834118326400342126946135595515304331408850973160648940035008520892707195372421048071601099686357581429165048843101295516400641071583101195383882368011539853983271072569092643793195898607670965074448649049809417814833453955992940589274789533516277011076026869648457362628426908071588247985244174098166079431306230237319104107967951168331148755053804992116646451258520724232950778814535136683353824135745629635709138068042782295318122908402230705723741104710240705764284103215525758155483648029307444251387257134918029005615728026491268821017061113605728422275100623513213651906864073171676426371797431835954524605033748812516462701209172438179072704974436051361274225275771843152970224204368156078174165217807890394084748581074126131458212041248197901726023316960675820129904924604174656258641892793341842164735295566263211600699139050920771261383577588371428183925479822529058641168397382878035777351780312786885109003850787092176060285728742125432057845479606515156478051468822339852949643479075172310691040442714656743885471462142906480109869031192981576679460246310010262844036359285011053241199043322191375573548431730159745710350007197796142292461940070594571719001342886963741977837222196262822034738632330875177006446720331774902363858828945780953082049933863666511841644637044761181992365822428015637869083076032752089973271552979051503889095282126255830559697654446479394031629428853066241642864923069160882460324080053333947331757702929758522550903972474250614222477250899565911633438596807227436276339415629242482224259116569799104952521788175417134561624334063808818121525965737030491233785379464393888073679759122737961485257588784173286173918564366871472489728740023585659410401906339257680928624791796154338186433077083998927732403809685098979421149743341729040424731373155543095155200320388025028799011424045409138110801204440488872634516790077721029045133005455228806149855545926974180666285457130942348234641047934555776255887476957596659739722577806061665557190618998414132432757629301353096312291901273849473601482736467433729076571828399544830855900020618890291035531415572864457217393949463575378833427928191451381915929313364261624561088778574315325893328013393873078190223500665932516952844790798798337342286027458799883316157699080328558984652665576200490426301489389218335244987791204822933478173122724209341253991256396963779858207140454510660344153357892978749280164703166556384662602432800529586980439364314635086509366433853708930174778376447277507019818055358381315649867000546194532872414481939283939249054610259828178407079245832965980654691215679060083537644284916906588225060460963882395734393445636931980620165776119896672702429199134095467710833346229257728414618789143249730428897659504659820752847129566264529340495163716895226412439620396528751208379991661100308482909182985765025961528322833435564675863461434064006684909246335229220960197875877874423955697653658399014908158937028592249659954801700680842755228763922295182056772139856170403867160525732641990061303872081444488219241642733028634431932983768697488869399186635045507690311019378655215811533898108592299256817078329087005754540628623211232967412082795161552655487294257045053333061658565513482181149260470505229098943746448039951330219832820562582463536879928316931764839902628224781712845835969574363167375822407505864712364765012381459441527452029284145439120953961966995815879070750470233418257819930075695729403737255085204370561633009520765003956471588990477697233404253968330375412316261355256388688508082385745702537953273972070992506492848067330938989777725700336125455648413737474113668554865215940413528299577877594496689645536796172088692291279321372748873992702608127899853613313744480536713351645769645782122867277275707606833388412158554643584839639802565448635157061193774320330623934694370651616571452821618979375312730027270169830087117300380253803030121179339868905820689163514874230738838368075928354932849791071617862435874355742044866133742066738849435084355870277201755256078587765142099802075171396691186947224192079303883072365675633608506955414119653252950247821092055375314998137550519402422824928530914428093127117434601100896551782834085183567184056608856653480036730331104108629148761203384157351118411884824672192324107409050741539067370489973781743971063462643272771423021916057444072860452230903226294507879571089206387994256277101287217542823105014674564478191955544906423908893786526179878211556869306952561835029159838751738257123286394406704961437113279430641425630846052656503663568097366023482951861554068247827732559076582510507525847674665157596618526904002136910217579918917412256752451318312865159825507795331618730186001913662449974706936782766867399386487250034968267508838834323332380135087274522546889066185564975041734300365710764898220357163786019535837065855545125855017565690368746360664322016300631633872096285982124781977352059430451298178395495033310367016467980399528487197561187553600134242284143260159196557915131249188031598899481003401173655417171919206401903089542055595458199998167088187015488672167814959478294092832219884009609970033036343826692187135874051350558645501237426905964935739816508975227067283665577786650599594809964255658914186575776546417921261162545755966118499647282255805583571242438809854106436303762718615752019932549938835696826979817405088913561820067935145884375644396449226017661537801907417787716198921303681125894838521772515280260545587183003371332172031170600933341931325036892965155715945368272306039575574806505383201597336979861741584170535810466483748281048146772256322197406786135067643083214085478527905190742923453657293910422574159203434906454024891486405846728008618353898532827854737923026834459590176406523718385292854620550042543214693903526759748610081888534750715875679186164538434249508573145655512510602485781475867493584233680010980235324836672293520404985767104434131555909673691517549050313642070343908189090315612732585531181203470305009349390139393009312219358454673613323194470727377759823288381123950794834746746043152317250336056706312742820820634468280060720281444516327470308879951019058139242016896208495086163014988404619508578165637878281124639674780701578382741748333708964852273057803546312696387179297539395121991705667270417778056641651453616307012263291872304741307568605029098982856153889675401983328771319233748155488286316922102725747438537629551818099691391011862020093895210621544385228758706430896653140994936840335722068041307431587487455085885402461485007490759332125198120917088420414537684651581674949990832898728479935891377150776237137363393324601846582103801360655141911838900080724355966145873798929995646480867720102302929238023432265692692853800123119974104144562710920394321092715790831406768981112046919872994769419196743302418012060041022011526893927135872115614121987942060957108035430514039432169870414616572278651200605508847797748266350316280753975859462836109484196571976705645233068930619673984710686766399476588322651456958437191231563977435005899944324784168232310085753627659399288976264602480278855100016563938262563093670209708870098992890880822826303997756891187710934846739139708115379862353624288516989135601807613090874746974590672982135595152231531970543119909560083513912593656162058316521204648564520655593189716303735703443200324235560444794650396127204469964473065277635609551214888581223371736468029900323319361737380276033468985441202016098313762160946795076717717270172154618525190472795494229768001215786352684203236947372634478520586256998538066557156295754902262453588422016681016717554273959039761154934719259993311228604701786878817089405764894863249266428717149516476870075642487139623684600026344928488834569624953333671764015237481457969689971377229263874173541943556305595691941285384560982193674533615785553246628839325558001303001491509639758488305997111312198874791517212753991675078126102643458732872281475050424097334121930619737336789244282706402553026965061696823682583781641182736932429894663642900951361522634840736868754499281592500985367619698717469986296421225873123812301820316260337666292066497454535672185202629111300657868714232657921005464227218907362430474333792111525680909192224848751832863527243773491657078698757415619947648648791120515336984287493542502507467005610056763345418873745056497134890593280716569599184837594143208349459849360164805471841825440069805160666128236184843346969616224057273858390493337478116277168719579147981992850628366644801986410861643434793677484955497595618721454578915421183924106352000729258716304884474559953016788380585724333174865413456523963062687648290829557625447107931205441007065161322649056954507260948368478021792176306947397696662838145746914543454226219060286748561747965829249138884180100276280223156492882109177682407695372732329227452896573880556486830115072116949319490848415221331875988446386792223063287381885972345262799144026136688925717402045634643250982446852857787436400545348244774911893886171233649618037026932050286238291275212856885311282174490349803429898294517018466485892462561675375116352393900661499656289114371351462511241033469500857936799052360120232603318206789515597059112180307981276336255152800578419420505023079562586782268881742333563045412060700832435947787989589391079481587860562225849119280981107449436575581289460933760656707830922234801700365580712903964174389259979601697300038803776761347420971071412748976033826228688291071511290662101053204755261550516014033078054233734516131820450814435776752207954056596734378102382229725968767154537716444829064284235607865722259863864667989108312657323285810826133095367062818163030909814477867629836366804533512743838323258815952024151360611941263307450865911118553089635627175391745578720327388432456045415369175663291270851159654484849427885440662264998194038224711728311857007875930616604133588545231582391413261855886702563234642028729263296121121371556400184468648739630688217048702702725035881210884707483350975711465291697789027754342813806178725411408209645656061074178193510125415669733599029861825147625024626216138444358024177573141411161237818512529773222458008149856643930047612506758184170799774286956144169701235110566519233239716661311656151979636917474650199085543616379445936022309655167129873162697272142645131690338056439553884002466664875159571684303970220897596970815854036128775915903029641616221998325492540509056745253447497600240278599555236896638567702391153962376003679433632810423815606159058314759125595491041060404028009808962128863541928463293565915515550551887725254245893728273350867674307978288682053929131005953850884939288686905639656877050966934058594660795661246239609904689041430593334754721093749932185605583040422325139217538691185817250096543961037406899189196227562620148932853791925004500620854724027211220199908537045200538742836375701813089094802961091983029812393320875430744122061545312609265134697700941573776331344891193321348950726440228287253573796814714779427836565831663174826541336928701214140890915980409442241104197221806055702644113161010651048759833681946450285309719104721318855793266532472666671407645561958305766268427654941497838929905342043805957200656371695428098570069697714052648769105190671345947421563945617269224313172098483417367034037400542137425113283213202927890240800561130690070953278122904257346792393153351509310396852653674130181898961356707115110016372496303780310431540749975647572499583641375405384204153280672336589108804130821936756781341162212527760993913759946655433701423763799729717640688010103070450663903928968620852566797573497869648955629610925741314583244065954329981454661315841030329704037275872117082475843710394930126401216589590965467716227687525338121456604437471430988168627070436145502176645900532889183588880389086540704990517977404458803771968729631200528217786192113042906508309242203371069809966017178444269969716595395525425665848266293728391087583780859197554642032803692285974585543512663189271912067599995237330987334394628298377974777637074090509646193842897862362558822554105527610042881603866155580487980296468770088475285519884429350363631016391818482128700239917162325859905579523952121341021944994261352892240075162125280344304677084334650827924456434476636270642782169402335101985900340090373111961518392931684583570374059329704266428698605928137811185246277729925840251232747465416555420271059935184831102029774902908376309298375478470359112871466624208817930505281570494878559005035337750796131230657437387451465749419696616950203267250652525427502542637529317953042297115901233387322186747724449797804941763420498951173050579319780005464456019197008823037516660855765474777416100384260084713400025264166885583522161305294521162436317092637653457157437899950542631841908924776774656313548671767813274993117130364036112657400602724800981820459747261071941735483212603300722681619657284390355082878751899646765980354492042576407126571749250734150410247951920844723441591918207757981454828634588928662341639550360885848172008129012511302221351967722005710096804348473649589491950285626115731784846984049670310033117301848296319001943688166429719778331248881956475405698982163140285468448385122368356146233081694189681974607899181707332386490872693189094130145376614984202101207132461763214879256198729082113204734748362070967115381141814810715936656274732734968909213489752922286435336952351331687836392049318581080512171001941938085891743650669946745589289247782646817353014639390233246816767906750030700491356939729162407964812781179686737653872543570624659217109495787503545561765225888940756663158778646673839695349360953079891078665422250612371708708346285949571058394939852504213261701786075688102546218677159506278220710783899361491046177855469532991321006444283722305109971683052816028276090277453774572901281155219047977222352276991261152592525358115766871661990017791723870991620653139684866601057285507908407916561637935541336397370638168801838642280342517145368090270489701568782628447928982737559177904622744070282700322403217795661375243725630077067088312589444827635538618233290677935535750204922294466080191714927611642215348797490863948029682694730974647560389624342086411779884113146891964197909607996217084580329164687206186909029040110242890791159037952126315408912436479193661096015660237028635354224073925291383541330264142224467051089702421614983534432284268430306537296478319016469719193230687433305189109831273699575247590174727002404774665201413989271587253097211945015214136188550906747047045412618574459257376528867417433621946826019584001979169697294218026055574150997707459349227247008945623680996565545633999162323093917091981987337683926144449849309045689590384324317220655411419536067249787242316192743375646924489742685762654217540058023830922386802680449656452642643872737602489370508189022948692584363089967460446640006459663654283135634676973116276772653314189030520223157860751329763846379492363522435030376718837369109029513908493350487587917689607387804140874729990121666131730030092499419378571637143546095282365653098334199939083036904274690868642103868054165370614089325709199752466330865469993424328586775066153331460045555670628028156233446499344568677894244871054504622990880631905005679457547221648616817529907698258708124302601384869544516117374272755349155744463528505655019542421626961082887911952200827378136232918887211315352949296471318265488544021128764874637211378287645940604804997429385989328433983685269229621969883124789854610329870758923312504834614335219873081959066447168996503080589924718185736110636234708241040819259088949623593847206972894770356049744713263076076330389958983979886952137890020042037702645485260900662916027025361405845005910914870924682692260606773857138563047526946853183984433336342612810332003086131061587495297407500615029631283154533986826944627054524962023286096674239903750000760809248360953948247849013915273476890263515165677014897209319925759407886027412138666283309417342322911107973767578302144712593184863422480168530874862071684132713653868794435985015770060381831619074539185516290948899881381228578071853143070199528782323307621630460490380389354473765731988838953866724430538978250145515707137332666681125618396138859826790736549588126672493637365889025233307769219516592910980421557127639460829831913981839223302528331589893381411658553459391995527155652964528531027985033261070315282448538786861170984462075153308744160364364504143737251393398766452582379931160572069489038524992226029161214658409043547319499057496500110052504629390308665742173031893776010913637183431744104516042030421372408276499566060173353390456771925321495755247566573432418276013509170208490113230664562064089311249241176011208548858491923081528706608747050954359878631963867215938697019384196165672084371036585003853092265031087883899180229660827574456163517339676955625427000711619049223530311471528735720866441160486179727893908280144248345029280715007084334222312368056324026655415210116764532233772123746509573174694019418149015784440646903372454361716752853725991946028442951429027515305276524811697200073271405180159590906147412757022436359972447207889805909378531532705928842273911356566316200020886396526389060546675632811590590062202108845691975137732159650996024872105714325556701110261376264385285417858630300576770195825529144548853133381225186882539671753259689222989744528484544961060802253597372543602562858586139980205788382841571269789045631628256360814400632709593024378244350239751677874945301452021511684129245541074394346348017005819240045736794186406548653655047181878506210122249330373800411731580853978471330343870098050120718685556697317497354173913492205919902680830336326578533930986809230611735629868115947124064840614968352530515707988179105899165390727317884568390430701811115378595491225088114016381911983332310866436135047595308339901186634846596445509551905500594084503751152330734882711329611027275075656276650760147694074621456564641422040086733473610662910322377072991516046725643356671635434331980462151069736008589278571617727853479197797400851521814321014926049517697732087391523710071471539496532007321165321589137767026492118999105306307943367521653780396849078886363297737049287238800484995485369594332809267353448584747236690391721505746740984960453131493661361394010867924701049617040414772139254305096400885900325389867419275142655435005620029110571275080714144603435745568915626657190889642503096718823173773094816381573065455195415373830301497591399674528266720122140434826232718098683093541856597260649678795606874103072640291195044499765230581103357644980449460291038980252460307581149649376181346808736353135196618591434390882577741795884381659253572042051544687597168434786697393766539538537897425613981915416306385636657832811390820684513935230706389052243540666781949466494992208967452831339939636750912155634977622219647569275899391848869642742227370492280823645219973095563806341124477462624696702043104218958374942896009057395329186232009294554932120827012925525455437178200567874188561537098316103756403711314034464960093144705149930818753520620009463665797454176108391119870880771817816015071656385828911170107294638270451561603099681454972697075550288702114060243770814120365091445587355451898097681482300757747530778251897538230332556393922884938791570078773342173490178176118442447932443396278405281812764261885975154951079407032270818160391867919914514847930646406873857622459495973444074545074269402353922209089430317559014914174638145529991354159143765333754730233295179144089072382273905532348285075744348805188246497034789308796800937509967765542315905717585103796163184741412969340167416386957941114906255744015407072022864935728021461522052197109450341526309110417367662164133233379085236981614341374173889787429659973524300058370840327894471536330686870427626459586863348664811081566750745206970105669433074414666954021943745476139834700812393339681832873003536377295763707491625734812015286541137709718223574978107723141179286450807506522534098138048224081788092506127034467389807626466667469852655963712914474420929368841882009698623368017953445378549898817525848377220916668608899777258318020172530749861752204954875951105577500684971923209453366806419176631849578284614685673476128492742246344271434050268582330191509654291382301721518288594078166396303084722703293588578953459240898565319590435980726358347600342707123949654321040905733680820781015405425586227807091434080585327226040650324495511444407830841384586362137389188960784051621622538934137113396142579265144103902712108436238478162293249045939990611112723269291729977267475563922912210428604685314529896270098142151937576374137328147441401997970407522657417953944807364407594748604361321816894544090670079397376452382015603493816411619551420709366192228166812636507448466413296171938314285167945679747018177651398997480279847925039452289986033324396180741414564511351132876890278231851416617736889254930838155526374808370519320345870883131035587267829531760633533607427218976199621217384636959422816814729067547090527066091899063862792590250206610260742633409490649915752462159968964966946148771085587309647759583237054596701645413216396228583450966876408886586847976157182940396398356701755419467102149489603442245634573187243103869596931032115692033648372808373067799139385134115794618014794273342630300208487732167359060812729100574941554496718903135470408577904067397042005717535132541601235253289338978693042209047558505184048560273247200524525954380031766331260309210402442687358012003133331853067900340383351423237251108708828162351168720425898042070969185531111489927544981331461169951497456970114302935647016958157291153633601743599092529916252403699817346200659172702187378926252719301651336078019315115262695198003652938335207026026689986757124610126889186820156032549632120747054550198638011172545303402734648795284859783781497086450648917445069382779217452114120351149468818484973222425284518800115631444330260317564302841456939579934696340193375839423700409519947843050301152360629240004925667482439236160250470068226518725483768957945368621731325585404460423493992318465624869023685656001313936223534136780229671521863580408795519193743254050912140028593860213909641113947222477339527708342881823288940747372852107768414817028163056407132402640266090100496723934042312697828590429982051621485570922009109160940167121417335633249544546322894871002985662285806688190565423095002700790964145028601466870080616876220555669090527079783919450450330196955611564105364215162266456481080502445772631536648728780176538669411556846494142230202517088143339935465120166250495962069159007171387424030932595873075561873173885287689942011768378729646802181738316530418947812140936824695116226720386362661226031266981574594024376558439451900514088068233599598965741366293433766491033656162595466719317002902029318310866589481126381075360194743943459295890045648274300065742202095593744585849076538944499539089991045189463493757393672125199202123320155411938334173265634292837709780221453416313763996090676668656838482617860646133418142957581230100700872765767836596056279562222274686161048565210300907380802636790493471401976098091869538384171829811705296944904430676536725764908630904856273520519580738288510223043271189389024622612287335320784689283280440364895730984377452703387756321256028470514422959568599413862302269961172242095875563792955294086001932385166000220309707396477793092643205454263709192441135846095304377136624947649547056497693864818713202462728976032034452318283189100527668039113709858863396673872212454034967113493705197754117034635062379286674882217821483991129840397654110807020893008798925745164283670110996897711375021620138102891175734772561163182381763738526902773160578788954366980519037451852624320453573197868603529588311291154820669460521954911363838414859460819927644195729312064563594826954631558402419984962664690166607844694643951225244904128288427405283958140676584665974420758480358764097101094638311071033976411421032633377978464970552276876149304390224397712908718115962498337854763537337041424595338110745716125546190401425692333739033185912083060909825683462853511256012049060828772354093845797080667047381791957224487466679569426640595729278383071827604273920781417585884965781195747464591953109557172562679554189084451808807742596248945450159190841861396597947174442815820241187174595619776799322568661322148817172915221568731129105138099106661326066381638029078570993677641994753262597497503311693339173636625549784681787125106095848766983079303882089591139755108505853330378843099699739483749208340555860472392887564146780941182320541145468277398237458270951283529333475884757417966043443045104601775213420363268870063648065519256018776753196156743625385229372170066533622184454019905913928435079196463126999208047061857482161640345432525389224293314933957917802545453386017545917695788233677443116800617650956227142084505740146615555708869516114764358621928247205531632875021020125103764651138873407018768679311090560897923593534670358096536084463418834586945384933874887796802930698681958364321425822286621743609458585785968656112354995850470917703695886826990972196013065838494388768518963154570550984676499254799793460316407337591997304570623096449781567592983051599191713720769495528457915926642280595080117954445815527377382221714966716669165488735799843644682184142359338802550913277911664535102354510286723822211250445464990169739506906115915356803532834048881501000744566430043546070993994692943013773187386132932104390711557542054064548604514284607351919016381843444416643313069397068919866491354773222345204925237038901436463023602315802803610314178811597428124914919119736479608883679515507723766201474754871260233775443055787173514411284548418981913420388863580479580241109378905187438628652098131624091316432267383078491590319805106727379401350407412803047142090169063512613920806511403849867745335846521901247512891844469861283787651413486868610995162457214052249970297637742408112548598068903711496107889918242325131837064751665085339319931917901488924292503273830763353534339856142200294887742549795752938994601219858670779258091875228170394132261912300860984341806456729122753771635520976181473694842081650957692854943781215297552623457352800576323192604333140870706269833809505947490735748040860353955999327118958469044522217534687536860079167780651827798049896709184672018358908777045182582194405133233174527002719574295221715218104447000355466264145715593294545416779132191945573906369484244081204288776313162428114773790361703495345143854243967624640487564155096086322751487294738034934866266255021011496237480246668746608926710661556131581296097672298361222015661386393432232552236224105055992897538809271471500070555433579491379187067399633702431869060169378317937961262640774376916737190458013613821418942186135410522363852200290152251963967320521909527032810323612105910807677385639306954696617228512904079232186396076941266611766571596351325789663164813429715040394618564607845020528366779753679634975395040730411888884673298388430449225041091945857122218880400366793244036739630143863200506054793716068417460254102118175221818854383360129416175486349570191497744873810496346861293270644646178688762192053873004379568597300011175331334275011644418381191256399490700770030535038867964031815667328160462185257096688618082756120515614171161499280696389203259875578493870985118628107700681615210145880020814443512284339917427442169965731890676356775874864753885803213593435183275879295866811801595440322201708211861669752345481569176631699642762911059568718139425419562702900169612407242892094746225981552738553763924442457346875914432194556421698266643837404766067270958122447322726983656811158919101817483532877661943041601312315917829041511177135532563394843365281005322481636627461794934231416637800205740048277012866543702522701804274555874968316255594014675566424490346799655856833220095158058554832992111244378861402855077010588833985337871332581054407784945839206561474056977774485775694714143476360636390623852050916197660653346387715602946763117077239494031809154234314105763721869408797529528503124768626487882804949886619527575243080750332878080388687705534958569905311850508499615280208584271790435172392921225264680429245300833521394139272095160035170431496844830578005242146936737400802624851975938567386299202833586392710714197789704323667477185180888822688354102163598285412644144218252378436717173820965231211332752419552141604556731263315414146069758127701751130758657557682142079615263636581650430343313639827743435026071643280244602491537692982178288286941339726651286586899310064828400125362684772585569700689552239188272151623961083592971360468839153493958836686129200556069280103448711541576229087641339940378738264531928355180393746593185129446182746464124194982240920651774664456797241789690474557550098983595945624994050329237271719615624944968045664222469681940699887464326589035274940713414736552410289088334372960661824427263878155000891868069057790038413259531856854975647508602930224963343655199131794024644527636976805944159218541329495966384566258420223938828450819530573415182798906126856851999916205669706719682516516720397674922642501493226682184182670123167826898821311457214579392855073202129825356706318552711924320079613759974614577981502088477155333689696992142088946890545474155279376740953084675314856836871716356093652532572661581792310488714086403778451479727173987065132092679054532210415557362702796089495731629862071579532687380181749306395480631029941936341067656361547034371537659534706071826293844728612343576578613571782511280751326424492442096852157100146299694731189163404163904959911721784238979159191979929678409809710223091429420804517671127182309976094771022763155349812580570538031428231310626819216341111395713911085937633440811719611236527194011296921369121780925248764968579432632208035576609039336824794816805403298939259168606072524363971252867471817430171458829296330880687039296490939494275020002810992391083334873994685669635698301816697210321119314781904791803484900655521684897880987727148336976005671716586701860139573074356390153249917230498427764829449639863866037364941250672701747782342847511157647873888049073543206262742809426947999614383741822894901650787155662884935742945713661071391798298798227592838081178839540452934807378001800047769349050445721775765774647426217417646144344425672141752606281987480282829367080778770221419176008101496858674352656993462914400134654815349284538953305408100802161100434227470355317124401685295927923163954094789535592105449486064687251677372480266065861113658918755210048450207344916339043799535770722187626979166146756682066045250623334940941167515156504752147658954801555141771222184602726077359791427567956634212593223580972437891201565811000822797129865808865275324554879231368131275584185609420152054332273588208485600178142355325718273687206284306667710783381779755922926468821894900037314911123316641837772024296573187375408481165850664330220289433841835966445965942162213596642691960607357255067445445501033908809215511666112694388740887871017173632824703768275986719074077976356516470233502200559195290952210853183267643716527511627104922315050867652572043812616250182059581702891037212814920102239333611227357651186276379150673920680082014814259315417463213534787905670646512698208669821624707421720138997946148398548725110228081355882372762921119023616947735756059368894437424445248004153469058785265735620772349231137532854406367470905183065659680825784644875933271868518921119275689676301589640270906655865675362884522280052739870680194871827368595567412473579929749996735937934241057634316159800859435873214689908355167611770051320718150876673150469295532928666224223546231342868131373734926466118683030256466387722238035263580189766795317849800586034531873077479117047785935093238621142764664288120472045981262250762754551400119546043691248558995220054311954776982626670013756583807212030750931494460469813228407223235875683132121612573482375907407842286306608806954725886973013042452380797730220521165782096488927915309029566497211174750117424926892016747201896372809215145133448018760388598890742338506490021468573272636889957172086409151885265365626972205604952212149840532483781169450314075232499386029233943989419187432561794218826496877109273254597963236258281854816886684389335757483177626694737079518943920781885348018560630442020759995248521709107828661970735906712465820255475170515495501433083773513336093850749065680831534336354389742124869398405602308913985033056854898644583312535332524326499137387203650107299993809500432559730753862605349934298300417 F(19) = 259637056783100077612659649572688282774473437634845604635736548677546105245882050629129779494721489739558996237545975050957067545185957820675787609531508697262806961751931496377866583367890040412170536419385921982874094559407848309448774434742700361445386940083276493414672790976078222094991195175244539354863749247254884395485669955528784434885693168878773759331780159512055743163507482583236827832545266076497186559064268597975649162378289128290422017503430628960418712739822916011119310354124459651608613929243423890299162642948712892055641096585385018427120791498793114971081041311603281008177219949101127953118725921961290961038427464944808656508197111004915397231881698636846938820131268958361752403444922537305195717730684493889502154317681354879663705446721574586029462092766618931866792011781786607610491204207002430973613235296649269903040374822281042111654801223263781804697162402153467702241016472041994122490120877571910049055020635377338334828251648836402107699116140996292878064235450552928261971134809254109385976696306526539357852019370636270464627104738014131386500398479258499538313901517538042451382594905705581849613578999544998344655544969163657518927631715912620766366048513220360574101543434626865111002329740622102808365780190981564759126409139205580235272340319936688050909368792415367895080496814229597210819456192688593950351073920329908760369268602187854852605828870789773762221561145804328365644145288539672791744688072608893425207048485459212536493910384797840349382884276162090514351150450273835533838351250948551379429112272247480728897317232252704520000659283992254674724750859291330619954921196246469484222143068982263575175457606738932743566050797075126828845513588542812260425451444823826654517693427001641732763131032494906042893819876861614839604853130100450574013576700906993112115678281065698232858608452213039886155969025215412752073224790893769301783629003671049096327361360022456362485153705405824421483306964427118838123126539240299643167751396426387965382959466092247700230714324458401742263513781526849027184804605822038357190553500238209483962673401998123402570932153451898621853395376342062556853946342293985607051544395042188272862604444191155147593216048019343942119574798884229865779876050233071913387270911798653095650624312153007525316691602462902992570236443612764603865477209999012809384082033869070097875410955785023154928604374083002064216927004276323006052646446644667377096116932130271270940262811239824353335097747555513115646865036428505117494337785033401456332912204104848514141680405665446186097088499964110336628085690053687304195513172883468444172381575552408334370450623031076551188500719991865978397806293427844200746797865025144901070980301895847157947148530050870566224478840798369092572851753734637111683736282868429024636269488269573074361836266537117145075632004497900814454059338862674053436575241040180573801677502149621886644865143361815487354239944540364043436910109038691075908754140025547547960489610490435060419717096940907710597060729807711889848178845974810513143557584096849442937850568159399686733155715197615687647900370057717634270179843916476030026492649843177701411828686772563723891721410357118233392944427465203133014338127699058915514155432794234888606385750766433361145802652477162778524253496897985291823998251152582561000982205723549623774747207866626585159810782205521647181254627312799696197902134933144697342374393237865755346030805774743459621545661837619869662629836492679306089778230547998956387879233636126175572953920821630072597247092600670385420634436096412518396931629610824179436688357347408675585001718501631093292825800720432508461992264489790436140277279011655207558483543980620138331870759166282820647174370710785518074819590441149717414869391173923341990236234602953153450286812097910463525439268724253388596305784779946070081206970876214510929091827610835178848118927335305395158069593816854313851612478437130039017397936279832734959740493669556347966908654018629360621935681360524030376932691982039886584338086981875156577167582388977146127315779217886244077187610266746926404225609558276545170107119175321973704158160727265784997282498195514325303632848698241289984852965841773799599665879652408561908777396111569293696711729630303557402624237431961414621635868567326365542321128839148488458520539959827443773146204520720033909331163164046030901007645562548322822256975568241789423828780010970220177057040106188871493208280610750116885575745407875617136148458421893163364718080048407999813311958423814321195930893560116541487178119246141851170018752435942584763509707296959579812835013098228176044281658386771668003547597000073265118409579861671080299646899683396422088763125245380125023801922554594022441527587067650397772317756873498606319337898505046969149472990137230303012043113276711597435678625240211526251972520556024302987847410800542665920306249325747247892705376347703885595174430313350842108964498308267529652268051537762755928237525481742686705725944781309004932990806716215848201542267675347892709505737542650708450588586269975376764422936875843604582162002729350841538491694464558566548121369267692578268648740906719466795163798562314469591089301776707361468449718528308368511874524900617093557847811785077934710185652373668388625980250643630106791965789483266475421433959153987907075922668896773176307294514313095785132053924899939336488027896478789109630179094957372779827621370694954864631625702126372140529930728492494475497364564308124159675783237481441039411386011265761831060692597200021260866842799897111082936334805267008763359740167230270461525708807515006874496065609891841334784327750765245376101920416672605302182077793905625989592188850690473726017821479832534652389967693877272871475049815776856099468449615728740643268165162108149470774504555187547031988868252106568312747471216052819576366933653705658709592062753366883568602291978328743229727484533640476436410874563962341863279889504184821485658566605668558472439983529664347978636320916717420040276480218976133561263354852304835214805728769927646087388100382081823501818936634477756688378600766053150237391839359733126317699039407756487731633927432506499046320418483335790732615136022311249452724403237545476409777458792443911350360917221001316316644910706299346973601411948349057964338325092335424891343910631961436105831253463313995623932385437369467303234384970714011653582498640511349320156880364099533485713451882693211067098065473926320973381486892234826541777018198670164978481322589954310112373371734244882500760417840897209868844307255508755671065202923459183499581761325432142320727107288155743549076046770085161433649123880871530640931647173801531902771951849488163143581677529081321211123798829535732681938164132600675115709409671677426037566775164404406932167743510831704209027966448029459034264761288841434073672596468394119106466144797127881931372127593115229157248403137029423975190163334613784168094225537424526010881106504521549083339475279379736712044633685287786523463798786899071288790317010314146005939850143122417433676785884680029464237152098134240704551088110618991217207342037593840960271575141531471470697764582290251694048424039712366051604828510870970729378932462811280919320631595868900976624362241671024361450904935507916580082807433472539816486376501803419204706810556025827839795002262834470939947004093474540920616042126156382966515678597795500462843851629665209082333084819758905282164657875432911884165371469954977600996397974858545053487597159476446090342487559593999960935158624380040262554125774027655945097770942492396052684258751066350976287238452188434125012302350807623679527466852602077444174438472224037776083404855312792518811126617198495019534382650448105708505342929892177109921894591339784215531114546636676854542758286241184641211806155663138091936920367041333569679251164887724331518942382645449709521797170337180063854163880870432416211321083440499333965715683162078558779866278337248019553697122570580799541712132921893523885766174645963666963040560018233098417799382145894866449533848197389954268787966430981206944439373790358869654661492429141564167553456533059187201001866668769647020973181304300662327308297622817089584089759691473912028554986012007342044729736614690975277867687122457533633309328013606210828667732196981402399454189991422170484297698613477693243663844907608665360739273394705028544596746946531623691450594922897912031604413746440002347072111219879047002915295963729954100276755656320938581262541769331542843879615202369097976866724886698326712753432189432425577627330265305684310703671436445914913275527876747230125290369705175784270766141494659872548942587726399661373615224000555861588504608263378705122334648053854491528557615014319866963988437499897633118289641381385981703325350667976006258674587453086309824670047133814742948812537079693925512081253403962247454061125251090180445965235203479509968995168907315875681051868893603600516232031199301564237868465965536555879310707860571262458071159084887163963852510144562375030388520769529562127327206069149281630230338874760025459301104495705370611952120363128071877089606793197541306531645813064051738155680671561859233192089685479301670015297643776734992049928936135568584764258528583178415345412797737933047017608092253498555781093046322624879307963611840669478325102298739404053360224012072171588221387335977222613084951455962137216084050171591806817370548869300956200183339356217653042042481866119854645141237540506108830851939774743838030282929038413426812215388003329156420880123206744148732587782168592041343245106957551086072866338694162376499896175776088315146416134493088492232151126911718512950265871114499089237158695421718008455749199002917607738430741959480907748040878169816691316955522776302804213805044658390723968150800401430333881215348071781708536706835759649496142255263687722572483247549972090336579549825748244841342128669947188116165300470411688313926028511063052337420197204752282623577658483062490073148722060001451498495467052497836972227108575212083054003224019178325732888173282008836108910162497252210887072586575838582842480078344442650319345206756318341959409626296168743192429397305205363961797052187859537072521340227341405261624568919646394554643441595357070140915531566037499033383007653116064208101936634886687978918805825989144927888709332057542829526422540077329811493961008531373599948602857398544216934615620029343690943570954803035859515544540886794489743334324003525100003420048537449541979440092884164969730866739622869791697596136005924414768654860471431819070707905730227669941419412492460815868858300613004586450514932982766205073416909699030071847190375486870438375477996573642401782848767759530418288082227167497515228000449880608899967461738239272285040296647443116725885660844220683269677354636265386340251420787393036027199562823428512010825661145845504261331982984733655679961707239409332714993232741701063584415864608068673328898231756505325429434258955273518121756614590440987018908255808267765199227616355957956000567515575028722156892971153400394507340776233554934188048757542613027242976576672498203122646399706413999076438991345064973661824045546812667214085097277898405268981466457491496753818576837272594461582123040190535254325399310776333804089636163289780941688855736067966804908916608728635725027021832421235557516827086960634273370217849743407742379870826983624703770860621579678982216571947295310109372083589744046305649310871830591459459675583190580172971875211706103935826792730508151391267792076937068262317492592870462616773858199897210566499978827669052339550129828723704423414954747599146577145549602886715426250009574772439805864560207042289322583020712236592220478538869261862625465062895542056264053370571610984234745047246235166951711436838863476801223441833530596378179156325672406308007128557716438770319295773248105348341991593396914282004376565566714983662340733962188350974557123556509893038073578570795528697512831734685004838825052511748870104442825257821700449040016754554233301388095085910179996324954550115585717062694449089101418391250904239078948751980434393273517555865673112721462662740160851382252936996354123299705826930834960785389633132407304072211206293495250260959477085468138063991333914337753810081578677072477401958689620738206868493687362918677982382830170879086012510530061282561324715858158656634866343184309581218135869135672523496826006134194983523195997512145798523268703099008907571792877255710923769242618382075235533364786023642221868873397633219486333443840345767211977312301135019655795097614091228024045761647683231482491395685142316784646205543626030942336967828858083664140174581562672121129670857953214005682768433416234036920703879912916579673346576087001445701134340227773543133374100984122825081688735837279832171390015629190403843664064246638005481931661040713909510273025436523854360477165521676903911132390470842228461030656641335614631133292111023304393128015356369268517429843266870990096674338149844762779665678118899973874860477533657072853431658284228918980583978093265651755672789851608939647501521232287032725586151967546443693381840941697536531346490041927717167909234641472276912171467885065094679953637072842902184088337444461510655224648253189316265553937610649784710743855297343813620927626039995383663730223784747786287722278596969164885334317511803868032258186151394486521577096089803443549053486194796974110749927102682987377712673321373535682640640961195680492174157782870613187420423397720770159764564394220985856200206211487058858359514570809136668564446144312657920150436357076971469169020170036894165805104205731485390810171487642655119340895099329394561660122992585599135612792248096516751168907030761255472135242698519026698297679519560396100535370784111351993780494554391212432684691486752837966127392010229235584108224810610669959117941973512024462219961070796464491296422123369651754990969171749136903053519680722306366802089150482898931482257270190015705240494521956985341426172439573551812613136582214647907227379572583991479365445195868743023065285871684433857726210337921268809691572296798250649771826098627909638439949382683918057328839677560844616105502781130665218219565091617493115371986208741885341493929030101333393001430135038929370987880506403394316016334136114170152949245779714044274115335040248788138270089709347897765060067863555800950936189252059095412760152699377736669111347514291427872648384507338007818222078582211647578016009237259662095125266849225187908444991358164983865921789105690152816480655677593459012983998635927138164861488132395380059917895462500314473851538045275439139297113042657900725820524461361785592138775521431189978491371270592628536331106238985916771567893488139245666373246826128358953708710354229278855983136499728709706479071734456194261776602177416281642694614891191811716060645304829397579502435266550258086032790100353583108849277723176575184226441179064974266826502882534375329775257599902668422427476750316291445724607684794372047452774530497663817123727892427830873877960670868026652128624081166337834339678931308466610026358931199388909227846073837499370659351909922572651961909084839422982297913294911676059370224135571072857361052140038612584972617125436905036700289246564068881979242860896608553405097506041938788216118374614093073820179594487532650230319039061045475228055084557277490584644708994969075508096820794050201285289290192525815121676492328256118709850396599556207482171178606244298042658901730169103197429381898025734853966402401295157262986074864171545206662051983732406291361021768895611699476622676634808638917203441730651175103692428595095524944955366548168543510558997491892521225506972812143124248309678334761723027575519448454907753165224554589960301531891453775709145860238034012150683144463420150350055562810139780986970398985495344980827482118664163114224516936008911665292733374325817113784850873084367299848763547726335435454189761612217234228937177204856731032282982437506287937195097730916141280285684153637683681204200930451050667530035929269334334449431739022344407812394060620436321921274365576407988279415934960907192429361538595405118987723994460160238062661455409328263444927022211318347010236753260517491118282598488414511332884954188604160925522499840160085718838239016944489573013546670512790979791636876041829896089494855368286405423614581209815060869767387034431376069721279007628013259997770721592815926999355517723709704990593816031157253923741201384738673658292430460496144013786861757001405771312218522317068570454486080436714689238616408178535089549607859440065597158821702275609597731823957123779731885052868623680833706581678111810524714008591762975824153877104838254749103697363158263464373256667369929490768972226952634164251937133591230243273171228670827097562982089699406930038649434156216532461095887317196197090628503397755236620426449954958145985363288533540477753644177960776538360923671228433057778325571107429109702084971632006730762705265058141030828473137774148703128996956832767101121367826137888836639535604405850627694420297446713267169210807135827972726312997649484431433410043855608937882726171829674742127497854190815978098079029409546126892013029722437255549608959105121629365147724094753626446469198241408000007686338637358583166568940043270012153054062292443958069282581439681688761771372251045253722066424015604522694445606917337777695549349936984541871770916803740730188240316147033188233262351037545323660920938865401230957791723114094910178377534026719722090890914262810364982310732873362174122040166791487621273912442507048283062457376683274146419377872702779399406420834492053748038142844382077177287845915303079629248792044913333106590861224319195471306818819020534207925103168613136637464101860315360323604514269034597862899349058402034154214414295750209138851617830262864300595849519397074276450398617745914331422957113563344890897292633256992925677650415177572688093159216703816230055297250011928755026995069510988846150521222773068628610535193469648783384766802565011295920524021144785304582019840439702439367086062021105119020551081613195967335803043796906656216420475008070185114165257068796398730681068847404137233269929680721533154587114342056704565002335670128606609251658371336470251225565963610532294090554220009190670826589401424312233480713976713361926540869494937876919807442662339855484669853606104015236832283600942313548033123510653828776039622544070124589451292653267243288579786331335291686842143232492836997771231656263164586183806534168018979427277044407619457663764513880053062108658610611611024447086827455939408867091150772986763162957028388619711300939054713197582861673448751192610082363863592954859936372730455209634536019464395124256999518456801623694851383423113141697545947534187745937598974677832178207005643121914046596976583352094895367534275173841773269290418364360189553168593816178237845569457682608999124692296945639321916332625590256041554651659171138459350303724974807606050670468226371113446437538186168321728688824025287402945339351575479642259478488574084264118675980418440912137926825568463433088436507984469172985439279865134873201905960470936020789906678493901314840398844435145748272531769610640798947060170576388011215178199788711822812136743123903094554794780884698570717309243694697015730994810480417876847378074477917662697094658438934100799105026726040506829485400040966081575437424207853945763114105572708867118825197158973288038661925103708213400874434820658587652179388568366932340059690504520158204023517150021467528081486678698300573029543271294478100088677370765180286638151710356452489890738034356076993341928219695420392571156879707372905940954755309093006147056516011775564504305807883738669688160953990075269263343016549847805729832914490462561370832103801511042159275765800598301785365260724509445354268295048463773679863287812912780004926415108773150679496420661415492120870825720650815911280526380122825960461777771060491531218895745434230043042191317069391329939926489986467417814563257426826664420754027061940968243424076529301160993166290399988397659746044974667451322252258180009235417849337520606118275158894682025311984840587435986601642528892788945863130498888746542736540173787631225378550439795887726322678379604971980423380411919494447854258779415464127278443094374251251953116496685883590201352224782399714800604125599818481166903068006493104466435322547447766607551545525601727815458485213407686575360099064482662648326524050073863209207353350325717856488602921000128705149331166077855083340808247328982241724344121147466975360222475006976049905661012930746528844515462139753969145475311779692719893271620824054563855484882733353867667483433771018976442238693336903808927679345701722619598056385051849472201535547066185121211732409017223269548386700843879259141770510395147415053361994090535725199030056552067128385663780837237985287344087333324315887435743320066225687719507386004797152278021811882332719261161844146590126814058036734094618050900209092601523117790498350538461367016546640762177463606845884453597292137503989082477798593584284965786337731357237496087577124157579071606064570035784596132988874016463925224892618882186371334075323536643555560451503005026399698119019926742876524450619536273891419138472153300019989469031943832786495976872162970334059969279962441530618121630083514626154482125748592648389939932773161574610792842407337857787052789183379745339314825890756217107789347920123676588072444171511713332978001418761512122629706027407706432475376307486514749765827091089050032224582527304004995361159504292721344808330027784144079102563158954892718595113146826856205170375560244492801681707904656773904378724396533796057733199213761611771615181717646046841251033266715071886954877537414107265086943843735323119540696798917089596446762310552821533982639540438522398222421319560803435042386136633338680101541092909636547374373872708492013276946378879692317100606031960434184261031143012336512206044580070570716680628511827864007478471135545929415596845317332227541292719203444575187812289555757262243343438157573434552799681130059646130968093663233435648552418163002059508878357584813636000656264108040755257920959469616807392698505629078730816364661723941976610947921776846532385769301307426377354134178917728255285442905299140174406975931353054403227920597041032131163855010022680511306622131690287896383081656879705218935633584210557665581286874185033740214990793879783919601796899349943684473924234267407584547729220140317831852989881863867162489198220605323757447066665454071637813788225629220070625933731732750355738900699827446334681787073077889489586154671554461156679934602679212975677585032491590664841280548274861670458773498032538231254399683587889497086853807463066557240374500409180747951689479169048890433971702300584370062386124014744508367704505469292935596311084667538100569992183079493406515606751416436910470874860084225225258014190760811993542340185893437578284893785286663291692374693985961224497767621073894341408877276089851703043709445747364588880731704353275480509794546051827419438385279953712379811500580989384883782414338288211976686294534749719812189162976144766059007782587482423241687815654415098541073319431753351029315184258972562608899519597647577868536680069450810009149300620540557831993481694815036438488908195123837499902998728056806667594627321020481758963464308333546491287513400040256883556622480717850136037628025582552442157328858970527716736159017169371197433387362431227890719744633081672609571618326859899636460684031959207351441505701656450130597534816921168572727469626922872366027904685125223398975883671761084424957770732840621480567929188964443019504777574948799574729861455744626635002192274347231735278690751936073886407822464834099055423804431655729502680300504365024071712543477571291977552197791329161163756958289376368727187760770872849554872512612002058227936497558913096495723559779646619705929181448154804858469734737859272271292557758627897119146677706719560354667523435791746755570726612981367282736865692224907923751956744863273849978858495769008688231982854927924232216335041525376622356196345306535067612157698220610561052566801745441959089111199133340204491867410950272823829044630709915598054511587459952672002770800728655295958498079332203490694924501007124594371093021908673509241650265727507353076277558554703508859324752955612957877801419283849322814634970103408882169857144472076202937887010194256248328502733937607261211167082492299325195315549265237562520013875852456407015974225853644916577571345022921850292411534654770513163606487827126861583369020287694210257719840626733443202329936391565645215337043024783092966643300918637139371569489602278098726351809469921122076519574341569170174900243921523083755898775705360718696234810818370480087037240827466219107040218822632329597401270662342721799424215912313792826789311805777546657630456730191596294504203292035666371047174196399791316083130788103954274485165091010121542172524147131284772417443914708634003063920890066069978584605977120770973640144469518054060619239259080199734120172933471181068213731685002962151563422713835501543374561480783811225132838690747709360617921333454642640650718255908096909498888462245046421374495293654394450981165452938941237207506152233129537770277700157692492922904209094248081408550274796995368686899294495741300814035749445183592649061472241416637894050506261809800000819935807923231738280768663172439494085918193790170551582502499902465142002895899440060706724492859257641652742658205933256767718922485331808895714792777688753387071061403062410395270308339457712847754746590849877192534770597118173251661530675201871959126127338478119610034766604390450991219058359558403669746441783673649006022692044702434285029454821840917737831424666326619016678078308340532393324339215836079745119828486222378642083351287190665835217548193846205488674079704060014473320741376822421540335041187485744956394970924685857708731096027800115430686495193382096120502994689557829418968021810418312150965800207005359235604022733875065985700322333927779126976401043643401314162297686705828612688341236621141183143155603081530406790241684152954609325972983295643822967335010000228608162643260948897978263598102069978724230227402888949739786413312204889463111300694819239117694112595407194183067901625454069389007698232811558520226252299072486674469821117954360316497225817018982567626064203545526655110180584749809094661660437044272065715004570232173893419874097063788102651636629086560613912425851736733177899865567263673084198930608918653149122769034498496707135128937031718251878585544203467007036381371600726880516419904581298668779949780776316736096292448812160396906196942588293052244082478329346612120708266912660188633438460361650599975562132288238065189697414303689793499506663483335102138521727327617594888311298234369816689889768986178007746312733552185554704891874414711296954175131472133179381984043921240263843394944786036629233420348012743862648878879048152582896704334698662403863612829321919884813843086064822899095882022086406371355685600531128532185226406104649569650688337596533056828858061182373546533230808696332675973029858681741376996621089597160668703205617555632852940074478534662618672317415246958962173762879829548600363032922846786908374953772768897155725827996950074651708419936519093310256422807271453574687946290762237056014464940130668796149518039768115977080800223946302161822960718513980680340586670531902972371252167115190512487974080314170403091057170132664141940071741841793197212667648208939558028317223410890409970202708127175369416628158582791353402715559952332193770897616882939181715476576557214361489058827310435504375437543079232033114093938458627572359311132647639415098067408280174316190552907225164178514748901094068778094868167717672999716429921379519315397711890555095143887449727929067907636768795127350655003600324108474037926026606057067469161292255197111467579231553431046064634929775146523942227103415780585128847859444691151660604161504794811732164780840295798294664184023922985038598730848005686363135885442613829297414601054225327268217138326369026515126687977754474682018114179957941776053238623789977231572127315574158577997408894682008799851401852516590918373225084966178853922706320649498505243829833975154788348122059296102828626978180900490950027310761699387952283935105752819377675522373061246464344052595024756985059016971945013541495646606041193204488570844307366612645581079260124652216667145385047634987842945610448532004629038086310360218725744417467637063136033196386820659282654929174161272781209068496960171329701600935905643619746606048358734751074655366231085761981292095951856522863140556097707263908154242437726208277188309645250902463365964919720592249403317983937226054215773060896028668440137948660301166215256274681602905651156946474451246682724471712623018268862110287473570254759804663984323625604617413616004554043437599203956849267613445604530624114152814103329843556414925150215415520506299342688476513982769575523379992584425966907351411202473757948847414865538767778594386455920837860038370607350282169086638732253888229178269798114817189254409352692080790332782300654549982364940184616583830836402667449607379241308261929964032418447752034612053037705162220880047338313131791122399533465625339842353956821701778284115506042808796783914908834701940228974169128221565446294987830160266046340678367114718789163974778862087258842246971539658021159597083451304301835965764953456742117706094046965125912656566197868615066593235519122203535598347107190536363674529568521865223542143763393836704463476501302734968345024590816147866612350928230003574412192151699300672533205518174747770234087069971016359736376752435415286671130293360416583958467982180464751315414028235359809602830271623271223546475366972803178550041486241378870690988094312226532732371603737552846778689942118543916014702705977359409190123067739645602082978923274659202282283983535320843805784353048220400628652245913041350576524648795766481537182999017713309463692371391352225796464721553642122105250224389879148727549047437969130436190357499511163785253600556073271787909220324830893115502542834584937177848222152848388072785506436328478840541028420530106394228932983124993325808427769451135835894894651964738760328659631123503848832639530517347990314283461360140384856620929713136111614144739886452000140183221737408083973617804042779057380991976239548312955124691230724127499800841287367837652121870519126464188225948231191139920736045988975249193560219575338010839036978229930725348472849255246250992786261122726910606002489191799818345416102837242887094103067007249177053209432291229362377549097521040753424202140673500151361511213944520914721280333988960509366654081027900285365512839658092838818023983908512333508391477931441882418208336546873664510184786947323097547163355615556318449535402454003987821938292482759922860188897979240202510692874602554116651016732512000014473598745471503394385641362310381391044496521686253534842045227949383638177648254491285264305737887522165925619861857452270230052866276381941328393201675728480059595961643026756108200972737245359930329519928002778081116911595354069935722100273469426200106693964046435450503719348651405637037212079195450953820553949709159124131989629523816089555026537324866048217702689103874085273045700230237577417899280924501797967437951734155084220305899234864428444519479819170487469570207472946388967886794614281369249260164290752610410242196138400105835676132041594109433732236860260905258812612778271916005359869622729492886550811341425033115381295606844232470281116961370534397186448795037517656055585189092268596990271841453812370104918543909950896923592681657813537602033669991653161229888151661893688990652738670977135581817415292884231119461516072342333050399050108358699914562065915496792397312984274805719824302936133186969957576606774895521426251522695958138045517397797406313084138376051915444920756321493566328842409590258065088406482789617291208852401756492353611188614374852914065616726053465855953898971280527059265141627407334911471427232068503156399257996430077479049940103872739155042852968421917669277330355520795316561853215997137574096603034397559901904132202972227807716988648711857490718001065677924978621450140823908951640897549837043509879214759991598961837416550443278016494301280908363522567732764858225558713923772037746668712358664874980122250693766927130185407363547907609082765056885539384600269822027656071621903299528840525067713903642252307960689818040365883998680186977953557892746429273486408322170950065027894030374147223988320276302552848022328126819754312551146808239798320784038666341901601428367713736073146480682250626855029066606786208702890232515277897198999749331458399168867439007085928104576223302830925199264372122221308207110812240484527967705843652972069016041222647410103351379014022760033225449376485319514940999675447038794047250415406969896146224891221920495445017518609726759068951183270584367442713928122581871493095672382270650819799501918692981740849555056278789068132524935026824752122288018518968818773192379961197953494213791936547892863727257355818167053446130053219727594496161423471234313196659680739331777112551897692871504181382458603546204586696497587575765732639474285318103968221409997658702392243369948753453917110277327127748263034891072056279036804330613188509657673619550173451160715166674889394568110551275688471035418545488130031283148170010418036614815205487229051125315980805293103232355442867302374251496109447900154212169405443136909535134325512256106059651844793167480760521689527165903509989343588130682393224496363552962551165562735529439875332082224601078333655815291386912992456164398007301148388494188120150956667007624266528042613428752130917666594797567960990400171393268374079814674949311598937309036739894880131065018137948387069755092461272832710931088986564041652508212314192959592019354833867545533956849342574362537939222838438171188169023339894178034219597086644960253251585073390443146675415047114558688286957094660988756515991303054808316484326644954185412264198525022785934958876031123443661676420026176924296566082856662696409253324175275624306335700943569422768509048021332076481267252841864733367452603706597934589008696757111586862646213373190607671092221996485807084522312771873611229829169373918426405918221652894132765611892870005142479990579496713258233268900490154199040125478612624439319384019182319773508060472710907726152507943983991028922146455425697342402977737400217990624931963132449845163005194993112518398857875174975648716844630809440618017647007053253888535657733452739244985435909277856542486141803709549916441706422492642580240257969273858839810437879164866593170149445959867011223065350108087714693806659063796225942855723430517677633604405173198139543424232943896098046243091068319286973365617229214237973821015337980413953067913145173065438614162478783121963013853171721223466470201692426042368531928032237819097834054096506298627498208161231461485526329241668576574648289856217947387078999862002506901600612278112547167991117963454633354021743526591664470021027657243679073372404259550773567132933859052583475762702022428818927800634554140529149129381810897554436086082448428945414697473619200147167106450763112674494351571397918036139051931819011698397869827547709428712673443694762783726994328889422971901846713496198277783039766238487434269014508503251744111206893109868047805759593698849068812096030190650137800996371699049815365512588073080465655838483886233393769226745810236643704751002407927069057659195797817030643154848253748600172141590452136315731507982880481697546870683024305371834238377006331315086274535278058238686857339410083303375333759850042589629254800920447343571718799476137205872790024693958606013348766175970737435452040507600331308376178377775785890203177847413962350124569360956461681811903118100192149260995992886736249534445977678937681144677324479277444481266769262858042735226701413822054731861670877789799721537711741635229927867495784943025535105528090446738084589041928327212453905296030595521998955679636679111146312548675571600404091367318845793906587973015137819085069005445194809830801229672967645340430634440514146776640084599414530465510991997519681950172171918683916718367964256555188856426209132293226323786654476207765182240418994632709136577866100375325333789244378012458394140609765010290860807536584590531160668626303717413751487194866610964214015334944330643411007953882608551239929999375956852223202103343770440754511145144206808063788702905262117932515434447971852836746860640998806894432164096376640304658032958068148805797591027694175240637839523742690100420366728166957393823961848636730264046167503322112902543330346526124856891239236084142506765909487070225601138977840089557148960215320948973796061765178386385087620677968029121712400452080270569302240852033160649396622808765017445193180240255621405128017702854067649790247968641107613156560139973864268555634198506229214160325771656838416731231683181893336635845203938434650481809334198897480236793580051779290079041990378460786813376021435007180754657750504779808307262824582192212416913534636555847352633772742727569306906307683862611193880053164953790779384719481619322758212038395796335463375273919859379972522525291910720591327919871103033594050009984200331801539704927418601244090718605610714449960402721935161735952637326863757277176786245031825816024258116835490367124681418069363942170240674143005352537379544061970450776285763411539204770824824049740889392419309074237060304571799088271940392189876634293790515257437693537304254214851072518957154943808359792373893919275206109210552150511041094828817900580483676151783788103331958733709057185190299211829102913867551794370664990893126625106335745434251189884047164793009420208431497775419160390521185321202364310085963768946471294748752891637581995930545475027457449352481390971057355813757148314700048488119881646070618425368665186475218537616249559549418054206069681340098661873132995335741950565185154230420642232007914843892605671001143461978481077209304204368106765835238903999706419934706503607838142482070094373949332866542261032299968601833435715821101829438845463413925091583519292625342583721932297977876780970650400524042936757174059129565221367448103498116096194836816264212287371440345474113908924387871075105540050476968690727488724008048100216881986078226007556512298145709994826632791110006309578447140603596513504695829924512337821910994163567771431635592527637182057791584793959316198637814301768993523708056970787604213702637216343981023436151439812148218413298341444460464349761193207663348431650891288642783477619539705248700577996474198767348640357775303422513476818449855038706275161289114408399787406523941251122815190338475330243216995016064007680104990464488495130017678170594572452841395644506952164257593958064853372963672593934400404832008408717257219379486418349099585002011709131255000022895891988157965046631339482869555991528564681147003989175286720432166606695271542880467516336559714574503858352293598536067425325067587370266951627627781623340357123866950779701000335409444190781155162151266194475441570417500820870841516580780565680576937235233860182625065855473882572376120049934426017129283258652556450416781389621375918019784735966474227863579561564057272762570276543124265723350608065516310784145462573192586130608893380303677198526439315284135474369354104378117185862649579369508163524051064306508520839038657787087936778148162413807806823358750630294753839435309191458487903560606037813608471913742269932361587770355464324074357152250736006245265607096479809308738933313452549914658776574177482599854291271635697417037365422829414467087734117828167815059535657530554458072219969786417071489556927768462806840101938038344326784911785555695085868059092909561671115432122403566312611221425047880440497804799185065837611120360540002075129878160273907652501610246082847279885578574232925984918597678221176066081344856612369080048508831541474161978729606986179807885735702539347148250817969729226920980088754215543293857414187476988154458760722977822846256316336209418845762774041201811860856963633655990966424568597054709202625225438917192617173679165207235077910014250967116027812614218320370622183949526056657133383206233011866202867958803810236297812860973165390599991862115993058077477739918881345069466625053154395807871588253785019505221759956355614635996469470158526003013929920589800712346073583853069646959344376502277404422750005653852371797111216406733023380067745301762098232504325982498942232293965234075859198000948590627512379859692730555216748042460294038832018950288501700211748515428813874641000200176914504684763058756924608913152723262057454969639558701594680978573768458240425748734586447349920651859725438645240502496871058768857588333996690095987691780543487991298289291871385369322332312990339538472619640873624081868905263572279386216968911431796035948597842137194999474065442517724371852827491576782839993285819310240466256685496434443011729906885634988932218482938086597701062226657912223248176401343441300176400535531646985902320590255094307901028580899815632966493022730222572076574851363844186921790395476469317925079658072756099194274768716504560394729342888082348292100347304077436048357885151461112740657634831132904880675758851349942586524421642596796851303056256289976652390028888114845453851659252512282925037327847973752198059809672384222424597240460520214027244255296585658293259423253765853003434484914731401121097953539002630119883969832781658412093408534876140562051619928717173916306445484630160911352714015320433420973944263048483731553324736428319769232004543061346777879173684869368851565413772053423510604753000563828695652742428357239715641347463989274034363810812885039002821144932803001931488644255415238949645654750802488575218319147296144291262043554051928498252631700741194457614405514890718018384896015562360860849763216090204039960632618551141141947392604761485031450424040523846744374639548286586439065060198973048999814935892094170192410599488903321560127547144933267467762993114737173110468813360393626272981257782394215936648346020738562605944581327641626186635705981977475660879859607693819899075361153044429777448939773708114755092859099198999541473977146091197819230466231726272447633462882670246282796150547870595820064241574661488166202331206291318108289814921500392171936427531731734770630249570406454857786537314247053608435116756701571276789442937062348317343182033831652197318207903855311271118175268974149750345054679341441342964574741643816734019465930581573410686388988322734093305278244946135187723692732151471706386371342001725404665691061342817319560228550419703803560670182947263862374786794369193755375083809175618138737058817316056436037717943569778566970982934319410734676689000825456879906945828658474744392819251062872087840800509996501460519082308844440740689558696591931725098963380303990050373419638054442479170599408697839979230975492171858025235658751722132234758630729147580614807599041574646197290019841790388199658345271387517327421684362837839419386950396697732309770788737902386167324850344707913183277296570580224211532334720605353348006249170546320758114792807182633938300093348806027773967857734985610824205709832168810305222166074603542625722953071023690855549111111912423302942260902472392467046033968896725834117176543926434761357331045956592728417921182688741750208281576348578387646691523121246000478085454235284042253961470245428295887296392342638719785916123368780454044914704189107511821213521230715390037611793784510322377932908621103369029260567434705166324123067292240758407609762082054734734888693245993872954283265986328781482422807017426001978312549773303118786866018541448481096157597334630483197931695327674749612076864273610868366930834085683145759564715993824807675400156037942696229428527291045521727562420474232688669019310727710453398004758325891326585038315296425354126638938125601057895912548843137760684924282222386985080009647020283328930479667914957674992335629194782070177655836951544052332387154053149776232334221920567458311074518296225752246378683128079371645020970909197717242579732114055522456810271054836251754385136089570573007978638815191760968893216063434207924786219386227143753453644214484399347953120877914205156930387716181718580502066850296798914431176534789903677475958425167996595317386259905645329502052725283829770514308236764470771618514416200774628244165310647813249848091457414741772059159829181830896394133597771243526774374016046356778905213520681201498339806620060072129313187118164228927837808975851095950846423253030668956530819621635832819350076304856433773790758606936971046603869371920582397360052309402607082376348169028644366149102027844929122350853342365929463804304454350972692279644243607149986199174463024851856465209942820879066108975316533406296779000177431505145262658760800824032315627413329768468541512331393391183961671723122925322098606603077491407485657852887298912886748083104587748060814506576708645434619900615041395906082620218838320676264169139625192307565844010260322739069168395886355872938642981812212329526634193033333717373803890083763947260347128974507320734590432585044858066192828422704661893022591439345115288668399433136935371848353263010709938856141847061292211617493893359996891156733380338621835945638377371589092459994259603060898291887325059247443832239491214024407871267505093643906899661762092802862951989976331972284279091289309538093393733592410305464579438300509582418140018951199096184356787049742319119357737415508369379963190240703975664242997491204598449802165359502018375024129155319419201837753182565890839560698435075583395131687670514547875157343469365991910985608097716812415487734261576431922139568863076548943694924641013105772192436057953160829430264356801625342846923083597367693766211283887685602320401264841245024594529341613249677408950212958998333898382578900318378106049465644360677805464558425586993842155410665972240003163255089698642621243843824000494176530281942548945555745755881293899569503660227383832279157700693785994134374449820951056902078079085870053829293471367811914998138848526886521903035289654872492959209913914185289231834535728434116807006755155774054494844088932514590562788876826041850832341728572025862734781790767509613309575437079736080110476179167794136273170928321295005193635269328103117075921152937512265311026773222035476303641039615313761793567329238295149087176314062432442441554768309064553101244281420469251594296968455844072522341680588781356870590849755922811297980051731865723138049215729200134537274186908188320316738820216297401948902815064812251316580987609754785362622512320302699832575847434487395864945016071805070497107133184281294762791243099875605245565986367334870211249520969300600749170443284572307883557797022775902847852633008855882307222725943449261031718714224251641532502229008370865295728545310685517387099176754510237670895779104818543197565028854877425745422768460150805592784817795258154857531833200762783083902887904227206445274734046326251010584075156702224782740192971737275958282288605426272883295089337184731722167027577178953704469745923229262651006410305440898492253937182093297806756055583726019494265656085657856733001394287682485319175328267944603224342436088235376833665026569370933716418890623045299533739420808975756622337991571646199520951462485222140233345675659444999097798318749430401872946031586192448330889952047992454492420538123734114056411530827468439528138069970296446043851366747149021854961650114207190146191268785164395140693781002997507057139643238067009083506177400758955842182347864358934053694903090623703632112541178573076626362331284990213010484604650930886734844397632876516761382807463611285436059974549566415305150247915970577282805128738721054049505011635222952384506180026788879650452542095493364411085930576191959487599737810174957054635795396465261881641649327429334287320403428194640907572103601950441733382578110102708128616793498686524199869806279623843074115007168737501147771414133563340457549815605820710626796860263949447407457127755927225377736522533795642611250476938615139584271450319042994979194371000522062202933578009884739575521715011774914866649377174530308499001164400371383627480175522899108704850245478110433119276810531448888210687573706124407993047580521296244460282140951329018570602042841249928299309192160322389548930173298698949286179958113503699950114033933103607195247506295269053166088251191846860277561091559280275619310352163755471735155246142111212139298492450089223356602964553385918244297313118231450107872560184829351324781729102599759939906991672547413305794896888788267819884649575026397726924990926233277114576539898486093427725571689580416036730798286707085847110109924279439198329354334945205107555641017642629136976078131671099217638776248314046535149470658654429943754059415281224003239841148049150003905482216750472352813852607591267657671081995764651919492942243432136011268509523456129393724021817147338276182153608754703384992095457107195413063779694310262671166625755762560026784583408283575131078899529269092387025827112861135007972043295691923251000889002150214329376996796825735608013802885190133644777177834794844451629134804584138615104556702012004713443766089760488016655296541740715215827539749907807482618985896180882403497118552640899577950503810933496804583882236107513316576189492939020212866360101264380507118448891838048203459303190275670138599233441168144578089652626385263851644764053406841669554945846526148520827194504647455571735400527894589321798293519593801449340300962096355043020223358320200232170264064946331538264657594013537654416332017727975278775499398454774344441018191539713642631920544093595504139989652207164658002528446957035386104683748411096269970204443137272769474647122809212054717039025869056276852869636797157093881513240090654045064627964227954801542288500365592772148253450369415023307870358070670903438554570181352492319063691498643957180488737277168478920545056017297602070613808540774541881786171975734059910204137914094961583143452790443245277799139631329345151442403535113727944281995259339939143069563416625882878623724658049899796998091798890707197786942869507125361317422850317630567450528651062414338480120063482281119687612529547087778477672395467272195997471976394942147576501913105482874313279574114244060246616706114092787955803763922251684807661227048450112546199512755219426421702449609177140135696463881572610993846889598934555281156650561910689183138428645967810050373406827471039373191588373969458317791332532108246788680617605740079484732929560056513925109945933348091122741628998620492284135571962753646841262528942259246076101031946112333027957552328719955836909105038369024176976383258536497731962693590732506878997385137281076829612783813546839153718175677348914063575559892489237666423334223510728602745726368361774453997457612280546290102726279439226858855660293410840711022735505261100873685671121850962742523467611648025307187299428598029491055790411816585525023938929279423102703600748605374109604747130285649318627965322647879782222645047781011027884413518765422389365651258262824252745168872282747377812315447542702654351609787249774556488360603539446353112643284108033809856709670327637824888750996758326414505676782036849956075995712031247861931673412980852048761850440959604110127955696855217881733673954731603281707527239590659261023195269377948900526928070930821342436461134449368924860447440038179847025259998530751497057371683692651292252343517595113512891636500977527121606116610586882810091987709025341093996556401955484184090439030384697696391257626914099682264756012388404193170341805383201038435989263766730510207918584753372019398672315529601359728954649561189306742115291650343502284858078791269932757519520641049603844093007426814563200671723063637260704743255471456246352550046331700845230620340934376459124326417133712883736954316873240494328360578474676649559169813715808124678792177414201411225835917775159123835022756360074989226558040109296889184858143044795877445190368898083385644383704599709852112957394695028779915291058040364101795479971929723270729082274536196197863673364131169069810555998229153666307766519381208936101049197269212965004298992547810868975899836994714713300988329765061448425624688399403630963693327866374551066342216200564985592148194166119799156432834421117264615551494301106332791864266234052791757423946497898483420220841639415193143630844461150423275990924623856021727961962552466227651121313323937496361736221125811420062027673004709595168017102509340611754300737418682799513859088446194333888365250286025233764226958429634698845600260839344370549613644372763613300915224786973599619030412759836995435270034499481215139445360000682909179271231272470850887887270042285629544988701282947154710602205618935734718436430018113229505394083561697899746646976505096553982397876221999684692111483369356511393741604106686750301837243938738797727757068067756039180602777769704851902083429047891400787856645051264976354321747712556711545713533927327388400069044021944490135438702687145299007199882311128528831289350429723505806249422014966100884651643247548582964182951672400937969466818941203898156147121041539402706767977747242951001640590230517600367918508184096938727296860978253296696001243475966199111377551059638633909617902372222751713500105569284779042482800439318074982933558715661393840833622283886376538564621534912845300462407796006268976751808751874841266594496080933214868003547175873131069010166134543803400198032741545586026033789872777475539062725611289108867591713320369848381352846103422086209510664361337283026195817264492860528500067497833058438037880889732341705733186531430040132207876574453221876412347280132786483737896596069847908486080313459099297883504708957397846746168938272367995743188030382363549530836290778957456862508074263802489995454838047328521400556174271517814706030145372217504149428219020788975412927359013763602633995280195885370920369564909900897537946207092879284146961062266800779146001222680710713757008477351748331608028097108170867455029909803763991625220851108897583437614274804616931218678645644547316354721635880152628117317145577132037141751215714083984079110623539206228374497395129975372540237256214076428370740858359336048697036390478111953461515429160759680777255930333867307171361088944921087314257229985813086556852237546766437641241947918378840401871968384224895918507981309895912980969350471364820025759254997527595945249296792622079161183544260250986703062472620358174380514808194288216402445970060257500348390056129106006653636185507611931594188630646122109609600766531202997135989679881691886678611042514480701549807799338640312685101118372509267430856518591075454515313722667209759219102655788868543827708048484747476213348444020555673128103571787639415608677458438963142035168703983152974856726390938120806201419347349428544240037757431500790795285290944578675255881082616380787055270679331624106846982999321842098661354583061147541852983712539843229618176383576287137879651984828233803113299349724202192723982222574735721901948781570210585322808700462933598521934342986221220178790951672316181362778936366762331589813223072271841206222695838353013138927468079646901756429759171334226198553921031026946108650499101506739632126352106430344035340195726677540171532075116180134731606101996958828963340766853341602720121143447408030446965096003563728437432872440490718121472673988312732185419828839177900898913039774259809928755436533983536503185305200113333413451402965964619085444846172151881113600313308011577810456592523350132522388050191823552248382598771420894667012900613577833118125443872320902192519872897677830343400312394526079564734845882224885094428630890222322972873964602795755787106541696926100692968389067072992941431028973459498477204439799469194159526989254667107214767995949786556914969106131300187955792854479701776180821042677908688628643959113795919589926086221047388981559670975531407910607766204820027146381308712916498889718237046997412673504100860232252329738202784612477145667727637159895143010163759837101951834823031932164296742327290485769888989058788480078084961290969833996686738520801916875213715132358201656425637771587790161804108028574443238060574931550851180824797609804335476322227369625020068491697161846618744447237630996616193402256367245648259905372480102210076622124480440605128512638270924537127221972179366529090591425605167832637164465847527834184675358833744669078849839396790528377196869490672301553266286710608027138743882553467521062631214298272635043638201831389705129137828625352413681921512095437547785092405030626907557571887291775249565941629128032540109436583927818691401504893880372384232298291384427650790436252126107573707430042882175157826388027333965376296116200201742574871344400916615311291878296386549164523319830506559575361361290136325768994040382648192425913956168548490148541522115155040818501685283956729331363752513880463191378573600234308760874184978414725725573811366484235129958499753292064626195645712765246227208166428002258407935583526090341647217387866733615405131812476728526410537135001225639537605159653486533939003759770442548334163865035922535479977841317181743277531258782108532969374670911205613640326298266875263851747239126163797886282681094087961470605111848638239353173313990660914845675506822573398623088644950340775579596537252987385364473476913296309751989355497260438178508996298934430501370851842787397436723806466607751087311643753106739899266523770098212701741163792137315197160852339646367258200209779907948383386449941801929866031068051405003768878012007368206053436296703673310206687685782678472624892671067772550607391103850189206183019096193185085358251867583621840311471210803070753999591286728153387880196141249063503000829123243770417554668733882079109789651417035686946956589050824681206909478360497797514477629344761515929587271623542281116868372550021638003584887845548666870161326437179216111670164089127985933137789763255934422793736600622379547391846232476608443384528452361057274781921307983325000067384770123337325044479260993885302161053234647476815829179587871520249006546290902618376687626309545345254405998101712051165920969519305577786357658166362307317541039596123348768149050713975429102157615433396163947375507890820370673392902575753621909746299574674054633146570691620913088533811119755829948593117037168620601546561006055267625906426156955903948319571711514307171187775558376837236707585570467200834671544494244876686048795577555889804036940475672193408943004894789009668334137458673754033973557307741898983714899398189416440812862982382336461120669793833386154813397521855981966516275342736661740052444615376998314928932150510726759369056724152291196434976933979374313863597344854749248070501359754684775221131031129593652482367774088361037794216224876407235926896890250331647894256940367742216487174324712183810874123889990903350239592357724445985185311231357012014725544379248862990440956907354213713957216408890259758186072528297062152923111157080717508963697467883228745730886016977410023524792844868063929719472724185618708510531032473553353487435152733693238243333163500758689966115287312593518843019196797347627230876429403594926712384426789586220807221142814450217152788422109118322578870443387640577818848291504782206609036619588429083424232367331044957922162347458006946325624043683775498030874640484288498402898826050927694906212413767249754571171105264602119959046426478516206229724050989719995337577673989042998056721576200656175409612160824774754720788849852122338169128044085462944396925294373887997660232260516151246991234125885179122185712536794340618668168371382739092903689131485464080665023443238832405316996230609450345927651326026234439601377133658548800539125935201037051913742040983586489229605866554915487078679181644687094321360406961821594889895443182982874925728983660823009354888474140779176409599372846963779576403333810740917670283606870461060266595187330397039766622917212722016070004435611349689055524553790395958080166148431923840756961076172143577404464303776139479073786331675263478692081893647376826150978066814935329851046114037191940197391655735014965280810633483812414374984851214686302277391290984776249981514684593948597509222572113663446263347757438673516971492667054017332187563943307154930861590594255860214812861356704273626093181903828322777727788194226214974471051861809006032219051728232171776338984164153961915726948505563216158398985535658003713630982278417255696663133530483182407476663727704761538866806577669736520330858988752350486560362647205098758709623041957023547529135194640701888401505813563445903149728584404025458614586993575540521529737230078487739738688324231674095796850684514733356739445106357261193055041909383814684004633724273095472336058905300305561651452988339682377827103463698491275099922024523367976421106369992764979843490274622964063281418925015677110951486568881995656270102563671358255311665201473481903571511081378518618162816119803218506470531456507114811293074920516993623529586641778704664812225644621861024383744487537370657778409998694561535765669663277573342531279523512232101760560482222195735845203573487980448980501673415190550010941677267027492244292449679154622194104302083992676104437051337355892339470661668466134281224643873855026589951121786830462663120174562236493916076972803389191971297752405856037678385402573719422140222382126635723196406058782377110558314975710602544373972306722892777709227891693234511863951849967553860212757737621521021674473908554772787287632509424711927572688985344639574572066334123514200122737690130183240104133307011567534602195306574369846676410665363271212163517014668358598945018766087517438762155629772157349700124543572904769547341540632759079734877588134413482726319144515578314853376970520258632043638367469161843845202206492503822260611795015198493304323869667796202385828656116646539172725931551578899082996720503985163126773678522175913177462244130551799456338610427539325466148719185291290785307844512766478338391052880804816115303659824086946074450309695193825919482177945769150734858425912691716862759621831106096082651519754205887087297824034459791474629967737725828116311972770134596917705977646371465100300147560105235291863431839242830105079618929122223927755561799599228146662712151127516065806523127592418381652414046296165556705738329361772161602949416735463853926807102766839551526411508638551306900399863752158906328833204367104504102854457781981907200553936719130872636354705111597644352006569332906656742087010789045238840187920574207060573222899377435539043764046047157681259061854095237303890606881142340450297353240541012673108100105375959212957832966686663332876483951165064127036678101440129981323479050617900953468723287932485325314232026458503765362213778475080206111466919217217455980116228118292859727381970550793026364601666831355174586797138676687726332123874912017511219980470343657145344773172671874075799942413591104803859607053421075647382156447059417241808727225250638622710313351334006707404397463312614524934763765546550043545614886371385691462162546679212660628171917587637741499127550778733675040652677707467013055883265169083417919961915024361001014541351412145144308422005332982586744703373994758827429757872565901185929412274417566482585444920752646996959613551204034582539471356164825438016738615700814387252085640447958695025748654127509231233502424159512021810743204151708414957905741272663524699168006329339959286693311736703437302293388323922357313221552129989826223373612388208061805619566336955695276424756684540295806184722866641641282041639160439321939569989430760444552186052025438655882892428119112924871306079062108800735015627067449321400441633124649870156796716215543362554882714957389462448610175881143135352651832069699432080855424279102544832772503303762179627849059369313435047431070351684503421830307908431279345605783261019215929428314411845069081314867783096400695721447831925752253710077569366539087337976699049575809715078479671702678085435746090028312859504810225122316440749193665430653477819043895717080971842541326909044645527872786217890351457561429681035771780929544237613479356833828938925181008582023732321993818108771161033958257499580692670783418885185964141762290479780149511573472718376121538424806575387909676995024043591913403957074528381753455366711218010491239748467753568988506844572863128986106658499772707798476519913129792872764161309413095787496063664495356529057454642388677806679709487380461995108922126943772616959594313065203105702229475430985762860281931032923743714278931196030386252507716736919022780560362908284121323640424877260866875039179521369566855553370590708168053882970526077808402517673828664621660796466016580655454708544035135337986843891162519795883733694588793920237013394709145979853627690036328778601169256416011252335293625493827497686835514181669575736361119626021096111294228661464821052166721367390618521598833843475477191417070217376179110457212632194961036279611610310281790215342753199230460797103617648600188649117440352890658872060179045369187824307853116448276187986299733855427714530729941876444308495673205308493722403222705258495986742282486676177220947590427115993864604396612500757501153570813191176658635777737620721194008029117605280962584491768746596100809170503548330672609612928824664699084078650160319994656436663769839206734504943251646729923528563866303590859060050695646374801196184923370191985368546190868008906394918079256241057729754300313076499711027939131751133336429194211543370596718460563932969657289826432964403399308542798800217605674626130512310802586650977023163733081272556287385366884372694562525628862419734887124033247951103441493180150799798204268672080611282460404138533977565219469601608024199750019513897940403884355794416127074778045794154086807998570579025629952071788103474351861978711740187200689207449412213329027673419182473668933805160972710093190101074217727511804644745654947321420118735317321862903550979050906242293618014381744395434504970536148832175148852263740487474272322499219854808870611381738144592158971154073506033487848750281715965086177990667735444342753940286271159765534569191929401717126502793741234362069140647984073819636834640774871979114851241591348357306278377992734560582611211824421420999496876236139589239906983594359182892892141644410223703476617938450061180698476527560981815534526649656414201708260974055292389661353422715288324708203500629381258384351621994645448123958944301582102640175291940849599619070861430968206182315371409254791508620729489867548385280444098325999807442742539565487155884955377431964531141414092683788286019411404381134916386664572079459243242806540436074544716054924472233449539998626076222929853542117978450986907703645616951461329525747596649881008573111041852822822648117048751552478680315753339502313876867369479280758087894370358192790975096073502671718045650388380317176052823052427086439686025041041602262842907799563936100343755223317806521813849784758902262399049996578346385365155563471711437659245875363893298720561575731980420514660726571939672011300225184290703434516066687646776320163018847677130554493622349415949719062110651927823303180481219401251116687387751202337291944527005220804911789178694358067529932181392636133788515619437326119286836577463660487689433685866967865788587464733760771034557747478401754190156151478280722101644138357943276531438483321434827942485108275302672335386860973940601069275437106684922582467357318888673644755709545582872489649520872988932144985191432370730112273694762157320192918352243050861857764334094522771734607285042926783657685393516190338326609803147248381461150313452465143472879294146622131489505176759766903598238322315467431599790117030868488458294365549221007103736835272178749125568103768888703906845937413243087459783314830457241050285198426928300597403807938494242777370974634741931085037904775945333784135791087891364103687176667457617364085824852284850706738296753821519878020685037217731344698175014314276345253619458069879908413536229638380138351126903069075251092521262295328050240478754995863067316709076327620894468308383302803363217283764290778198002561129357268481004580277897122992242159611470194601185412915011255143888495542034840412689591617179006935520546693634081323409747336353346856848657924221425006225269280242340359917837747283787328334208083242753473692823489907554067649411238471881970953850848456666248007886878981695719801586334256357572998031705589205285242896194290504067912940391470965041536811879985855630270601383107057545030992811376881603938729939698503074971461240492891965107854190161079728827834629840706882675313790011370101387401960667593666364569514502555498529876786282158938082078177798505297133365371187030541817248337725330043657230021814993830759791474850747099506201662484543732837323602189300253269584101804758627871114765057202158025261770578236041014438348814869570570346287933957744097740926679326151241648221861768510429714315046596836025911157167955515468134435847990149963695845659719147446220703731440830480581986845831104014087527578978842257328838125944038764866114546813290383092131449819733891918373680327411675993981369516736117149480873045158488708170888270898964494818081077172615327231312147093250006837774892166749675333785451388185175711811849685301483506663535142262091760010901422451055169627074196531306989755588412418357041545803845279604851742107658233639371403252437679773329975409853498355871280380965456025435952948968522844957428845570173595117483238798931612741578839617282145098864188760835113652139868857351966560225896832631678987227190701420596125361721068220261449094560603422333167817043401051398296319199141008079265952736598923860212319815307407433387961642010238359397637374853042913332423430664406396905735490796771866466381634454517703761289430649404853870339100074457705830495793529354971166636112787043880146666543331860377694490966092017302845915157293871218584909601154991077588139003104040920354758280080557756691425583421774445163295927794869851554316593267534623810973195746048924581574879349778109393887275339575623076701838357796107800976060250528794319203175344673928910828147096243267847923462501103425636338771717872788959031486979523446465804561305274617092845426375009390853034007600115805008825514462741164154072274578146580506808441874045525875043519223363239723778453914824107618685916432145582709881827732536652145257971990080482376117057323411288646423151656137911483853279564279060270460868606268262626860754679511118403033875476616945388066576559441248211327711875276727341078346039937833802852078352286550467255103757919174051647617596115552002855201850572478076140714017358811987287980600001293139241147365919093785374761838398775982999209972133928604730088350157642839819434959892228767086014614496518813981901119882659806075823705019716500679750242264187204285738548782702847097477812704531225619137344086450103516780264339523406416264445790876243087899828445118965670837846887342498300677598798153022813933517655320113737417578039412854675395144194013831418147829989388264792559689187668759008946255136278411218431371575445306014119573703469893399182973071898247161165448776390335775114424351029252245426401061655760224417890150252981792869286890057229351857619961097529373946366873084540971328580626854968881535384716153863955847756698578128110028678543699838624312788115071422365249445506814880403046954920279482534805188430708953165998842012167405629444052871732136672152424844394976199033590240005189654352298103265393395559658297978348007659378076006637662524384695420003239646032959546048316385371675777021901048674016765272841535527481501497152470952905470485437243355072632657644100588713344117079302218830176491389407560620902458185922000000827744966376864925655438742870948556994325917272472688235406937958721604114738414430046608575391447434770744570225544323054458585812169063584986361147960175454310385109145545956661872175580228048675941052206227574971328947663413031561493546831049612216445182079388779829904185207163483647083075758318675314144605452793252665232530578700252940850005827734739993612965722903048986614067357551955129516810233286107875323292473729021897798345281162003088691294834343649588103793473923591580534688801390669323493587303576444933888405703794989868906804973173738704077965832833672571761779029813929380182526361461066951239845983157405964357824364827573935791414889316127250765690814467290975566327446389294750713866815213907152575780051154694193116601653449734285915831410913502005673777836049869710231927174689145874071110143985674024760079414111438178532837618029677181740108566095907487486073025659542753546525811780724762936954605360836880227813854658567083612710752294076472992502620879831818612248631822311664400627009797640404713589689380774686603230102519610870766931771302569603224559746044983295196812156311278314254017084748911060542894522407617456027819748425884647929093515738820642079387022306649390592615527973477292550854080495329860809635424133722021688689587533137374042074476499400448164592906040798398821848974800174503428018291867424979661154714151903119114756581163371595332387294722625381815755813250312188155959518903668172895163918792212609167441816258272668365504216193746531046794312569878915057583089930736737697715622928124977159494870515534091391854708506968344615755772538072526909663873427720065079143001659833451051328293789748639760161956860078113255143661591502369163360391250643682693495468510455975468789388367772449760671339707635243106738066623656375785587370070614108067035093568742852899782999731395316539934220259196778213434702165759313768168809972425479718163923508780894328180683955200301934162706546576505962895537207850998335687742947621958298916061214032454762553570541195527921278817669805704902299335122456372275185656444052302676067567986735901369494536098776972465223608505760700783261351010593695625775608566602384682917692205204392636834079625559718102765388127302180786698570557547347371477226452248084432213626582389005196832626865439466274114666240406525926412100583173448166855572551621948240620725545079641291153421161113647213178063216311148646258006313825601217148791111756352995545243834654525338256500216778626220967373190370167362215675279114410177321245173649503587672132379624683337466251022380262658154963630103499356871444654733280543674562316920930663649425891912113370964638596882532204387859440133271426569814080441571319316319372215660159475330504881487181498647180891744079096126123410246435170140634041919522614875950630216854191457555102262859913396400879737899795667042181249409777375517175983213113362428315774092352155326862851400251644829982223510906720194099863805395382936283410644712205882456638710411905034048615651467601114753763326788773490403910060370824901662004578327380490848754338087117669680937958582754918761289031034757867084859478394898619476293663033824003021830232648721476741091928528447337995378000996656053484045226124346715140504037176549948116443682436918521158129966688734243133651878660498950035445720359708272961484536738448861717674060417033275455456398365562742553949001284314013578969606555208232777412026242777611823575116151328561054656278290957136801357734166902730350688104659838135915083325208070937645563378888639704989326038129658457572986516538427449312279246911701827297239381225786439481811600671749519367322865905822429274690077145351444608842813023024411116138344203910218734353613268358033130405023380890722801328927028271764723326052677261269104268349784668611185860009278152992657246429035674201323882056914256168589447060132023680214696197475181534450117436894055717257201121190464066712755266336075170532494726987556796168607422676820698108832514107352006898580224276279422027431325095752003164956495722031769829342247520702413004702541913334179735817647652621283339639037580764226929696619736331238791773712880578960690903149675355503990019118428392794271931211010246303952275551487076288049595623487365218071379319988820635649643803597296937261899371421750741537442406870405004162132346916402935484133914974442268730039400055891643171569741687656915933665529937341965691536156901051711620961722767414881473005107945778402930931068624952035911598358645573924164982742072439219401708286263524472631999404467830436030421769841878311557501854260808519778953674356335886072721919794629988887869606606597164604622881309313431918941070907160847901373821048243827062665752762948495534920593148061533853243736745803798767568680318895477525848964606074887843233432866537638574152190413405678930189422441048684884517481936800814062880638577230732498181897038252379209290978582894229810950312769805659026924137080637498369910508509825599709605043325873594821764012182945057744732366775909039298222019339689920392004691881142889872807470231840620405216436618250183259106732447268276705560560024092197852317905195397932342400058303537057372989534453097047296879386917694846040903654468872107274173497090088734093762978352211202305077368044288952862709727570727703769276258782766475418439853552659026845714152704179099467490748290069577880386838132113302120295663208525961353622027943268224204953370140962865487170883918951212107365454946615232679870313320765329175255953425172395194547656335226062079027419507121852224891188100558977195718491864646517860069806063653771526467939924470496728682547267986974351123549258403153609258399575349001104090494234785073241294198962975604144289469968256100577766777204800017466222281142006249120550148647665479242624367388834833209854814365667865378534735098143370650866521260245312456254824339058506088690778822239364288431281505930913406224095759670548127094912584427144682741143808647805780644818710281395749569901589043979595453517844361123617924825097295269476939592033039601332074797766977872368514505357559485657339903463384039655195354927233588866197221850596495550119697216523947370790063268090988559532902397863010630521261750253603764638626992813371097747376930554821458472012302674037854126380683666487316070562454159720162057430685841395342585747705123894927561161607876809913483708400708483078944042902337363368802421034733543256741319231917633965750140416025492525445686602776784931477359209595985864223024299695589954756298948779279758297922761490643378042538965191808435442021967602863955689975954683023887871714902983222194840387328995926572027001490810759930591107058229766047338319640594232419959720626622591171555502384335065688310374121437625555550618476008544599360484402936736156221049913860638827613970107621927862578206956727856938510321203219648259497368094357473138272902433676793037479091796612151147833404204744217391224459110479884840441781803544582127667060206480387604182445395662259578400646265061154771243641500973490296162831669862744397513673013684944202533875656758912417631261156767966589206716163848874566687554638195528175593637226547463579569465374400334883227019597527646263172218179222004797361902579691395902097330620401548387461347310738135267283879957672265100382366268221613576460825025476032041531431825517522271570152840821228813085701147030332042898043782864611885082588687339083752273393587430989738377497218621337087935710324894537284184410730973991300067887876697285218179505430490467635122785626382269761721039144805406673508012270902844383502874758215572351588247774694623599075780211173446443927472477796952952892422270785806586314053705960371288002471889349818257168115359817214766966396907649038062016700169523518158218682711194423787152441808151140999299554266992690718762470252347726091320402318990087001760694438977703174007738877984560977809771206736835775465701420723901306064307479296918700630165468555394499142465739517207955829294166792820511946754556831169853997944977914357465709613572899196283693253541215914058044678921968189614919484404765806686274229522363293183203015991867103207684427292128925554820574994394318216965823104431717058072315018135716383800177991340036457507153347125813817904059970500923937611437775058813057007863287800856419206687786953201174340153831329935666856632673811324861875576094333361589649927078934785587442707353496333852537057746023506675745344464473204083161117555989112282338114355553844954309270066391190805794828247188611067110709866599554377436983242143429657878674560543089233145227839029105179415237389603903211067802763783207998668186187368092951402268142863033167494162060482804489116620327570385121466231527769975598789952225992434300827179654599539253340845863285713129952530156584660273250219194110356618562380339994724865357536136751241721834083556605033426120916469023213328898546623345565459476885687028239097829251321066292264710830646051195823852297487801414820310959976804955894424454272234256730011506627365456867247241441003305681604131648133927003804978907145722620955893911763204896518349848650188867482733499185591803512838598729047504580849720672217456626026489483442693953705434377775345537094291684554382089173566643379230153787119944166303218116550188280659093889269302607496519506925980131327159965577377358527857325591626407417528659312550708350548793373687699862197608706150795786486982821508637285363920401509475467977177916584361419312576257357263899377195861477671948641466938746597572286642980938075835227449761661098109569306086593577398766897667134094625088558509942876304672409449866333214275025885923274811584414611772359915389548590373600425144435468710098836768132356281893619221915367157741468725788336072633437576883759407564475200013297317094237907442321518469710265693497062173888512871619065579702388447844540486778898852396111990328989982777479429030396477644971578192191876190635318483418244691325889111021217332295158795752071561362899505226933976072608989527344543197965244361085991141307523027671959786205176735030110904762984377040612569071454126192855112567377691093587518193272077412671082550708359230476083105433390111325631770686396966133702900669733718092174539108187749202532908028591284061047090929227964964558581707703622709713461523627877997059071593151166699144872612122558731900030007039946513240421671776659501402589337555765261199940619785488440158091999641902727367051417119156931997153414264612119239750833901107380053534191129653400805761491357389002244270599437977846396075426314525732898733062552798375125492383502900918512488407514487283667203613249256856211669686703729655835280936243066220503730128788846983702825887165408937417845403725928292244479862899438111106712019402016303223777646626251997839767659724421551619543795155904593493941092660238197342889864673932181929511855352367491513259407393374003433379733871927714817220004800946641147818205075282971797486521324522551845152833237191670481389594004763548944970041644367510218353645868336398502787157456352614092646015842816712450960082887468171465907065209560336240355587762872742264783269197661306707165922482314218436170667949452419940718094650831167236886661131368899909200795922446269462161903053998872017286067021014841255404316606549996508009727726698880354705683690206242193368045625732084645212280858168959281531660565092782242586798079548567241906720189742717431085949537737133766638760486654450291222736841958557665017474132746921419413822298624559966996643886683552082796613415167150800884023235500401222180739097506736974471118220954751162947702665622898220661600845847758805086104572409092482285390935914202098973180697644442880964050076767604352581273794657207420257114394218140433348582388407483230882167502996924954394866186017570475369880291897646788295718644102648597516546560855907391303343183523791954918041857804116679980239123722326511710757072178603634495254335064977316482890038367433457138417438972341391117088355943199240373981063440163715244019074462676435216831865121894980983069802580147042644507376573784071129087342841274799697541940179684360487586002026376301679536423800625204567185472693139444598181458915450702861896202782550582214931269389350702311095458327782608103281717412718927481347023553053274403576425578111469698288901516827231666733631323217245075987361922938423575921179660872226695946170675884635467261130858427770646466343180380735045049780411054965462148567557963905813008309871248661689033140905950128680990170132693349193885125411687770176196616706535179676754860057170413296848547070871685564381664234126279584586068569599163802809673464533181029390318598559169864420279613352187150330581493442946769218270284741269257702975468715864169492418716650852062347176195546250561899694893577229813979791473434122283583764917437414549942083716168518930157919931053703937779753933243304275528596413300447080762000182191984135850847835858130105685024130034741794072754683925425743066613556272915334771103413930328942120039682239062761262239940855587805377268747383712880754817567461182325803419399152499303720601869528998557163325125742573371147970329160465405346005690427513546307195707178743021654588367046703557041085852721074427831002967171830485602532874312706769031235338822291359141811723959519084764820758154734519031141016758316411441300443519089357854577792055977590743105605022719066535694575144281065448003360475122996791368488399489189971923202280979528269123458229510490119471811544023082844923813186313580498718664306272514318718155254499535877170638064217146907713134216930616616196250572857008892368979297934029520047159915392106068158471725190495206936029983866073801131061821418447455779747237000033652110493285716260533543565632116143872087555570502231423600577934468413358885629753582630710337088217256993845781061982249043676967972579911543439893462909839028507520519989276844020009705377474500032493481858320388914501428362915434236728218243201393981200914323079224345988443970734678532890870556239072300529509149603114962526595256767316774727163541339732109106608535865200531407995759665961780680073443382796367503370907045858474847033899869334342693928252469654596579062196812780355963695002423458777605897492824358184709318393782520409720621255187075393723682916079822182367813311766573790286704930819522048559098786409604709716424562857889506264899104383382831442803845739530868533975847426355874977957676687600022311914747369752551064432307221368166075987298752623403531452672988074163629880727354439959633989937447262278967855896668312547701112030799608965094572990461073149987982113041251992649652759561869315582846282401100383501597297002366859908708775105444535006403090047681184688651868176876390052075287601098438425965481122495966477728056735467737393146750655798256788406538994473568511172357489595860221158256899705184252627645033414886531741814792454339473684105724298016851097910881861257594187226751384092159838551298653899108602164946390621060299964101419947566577671119463274021287081831911812986675420905221579966544473986736543402158449511276228293512966897470707627134483846417060810969889575893046958240483589893449601541839951881929326086027164177295211956328113913990096492587764377468250059027865123775377125816616212855936960326866999984020667033953857520112786999277565915070612059346772963670817204422711937558287371824081434816122076668183194437639196558097339687063611664501745546977171503270769590411120120495671081167451184832926033994974987227171923465091982592030016380421226578029359324062255519970945962998889067047274367074386756939760962095922926084698403639011062071079843036901905462474338730264281791524027057160217213746249956272539608400214290107605752768888070108961144165112485655810329528083984828890354571240145165628874159123740015685943079762139999366747804985961499681852386870811285136747412370880345444770677271722057441295051627091878322544677387141602115641672353199763663634433324641405683318057487396766434044661794626164153827204558516082184487704611177349351688844074180069330680744890070363811228654830162833939665104551264889477121911714853784909655101237220930532671996522793034365399069208977798289725362502838721752369362828188437381924321480383993366837704370941608525166015743811176681149785457154632400453783421527256974788630105543331648440213218586342921581890924605391998846945241375501842977783957280399538150695528187515192255647185798032346149353387589021036651755598410463054925162530037394229418617713879448346144413277320820784841678006678488443408433390423532313481560177792387336782037281182922363345816729922357741402588819048934290054187166179344413475187721049337288317881313623807490168588042869373783555439300731613009003742615457248279944899363578256514716782003171073518760886665024650591096549584407956364368509037333072943165673025340502550082547905480125134325230105378467127987444459893199283090940162555051934713185792994890556554409805082554120425758364857125610591516285371272962474928625278632910688230589200091238040097647917551427566231616788413686920504812553122383807186067547480639325940734489465353688077621692512752493714240446103768813114450731642899255491182718129350315719572799659886237142110621152355517793951294313077620878689277428687463117800746350757014958743848331463747449970098412195098963433125289972399636187963470860867049874039731579127648470240353521537129384518152832832204756995196187231921100239955510458193881806317357216879556050128334556936025329729744314906431989500566246233138565124316692423514801750324760844011448993142340050147179721694765525504595531561159624546257516532887580437871920504636694965507760255786149642706164280676917019307953553860222625293849439216175197820877418645106035696473126818515726791539877763191642839727821123905095361241518455329179337235677479067696746659342485785105897629835918421354627513007780114840035666672268571348413945072036409000571058327262527987399487206927626513192155040806538138961702968201961173374741167780612598181819173589194989963046060306962220839779013029569380166156885753417472862320516474233221274744848189285728886520882605638735962084009612604228752176788429971426982698667052901198546091159514441752633247125283386691995354152291553650423281152029218985242107556849697691264493072292972760298507190343933805282572697822635580593635390716516466387182226731577514613714089545114265978587513597399475686756661948651089439546886613864487076546468133130306793123966003711772448748455866813200422923156405175880528944949906398447217446576863622973723650189050456245613717489361841132402319791753810767032800267549229921380230528164095937495369359998021968427689233812068186077636884628745757996220888726183952289680349046738833239997125869312412639289596168586460589799624849929237515794384138967695993499438822766631248315330582594319320442228190523104271164687510217324507021314500428688345980336576642226117548877514262520472738192237632044599870846658416724341582366657065002057806544959938059704454948312353743821126019466162875855353207537448909438025784161278955872355475226328448492589490574202499096500817524794086821849852181498623302590845725305200722262005951113174747323035858690665215384284382429739576558206503889143430399510585855606299721347985456010127036897425811397055955133979577827747557813913562604724903894512646490561695009352889927265208455731195015284494371085318122908672545539653443921746420597787919931335669583117449911493351751864553298141875668097440507055681312587546846099340755188721606339984454051916793183268757851099423244675919988450746316782232938519508647455450300114162217453880941514693319907956507771661419342608044083627426737466556120570556611843535493856987842394540422243561773860248184265227936775608543834281748679522988926822151768925616562103432298061636807715470421669695447368694534056674932060463956986843768680759311054202583884772074383493973949601799886254413178225583404914179202976006183583450801143322308831192942562849936011956757191927779474117488795810588093714096728873431116090158097990138902071540740721517942101807894393011502002397350092481624154747987521053089931055835069409395572631515207607571278185574887785541861837682104858547960337971564271744229468108246268878239782283217000412913978491419244989131796013688081082558467892968391642787662422094724310711850036493921507831645878388566210322034705207701676611896574107604610600112133323931054216676263724781231467425260748136201073901930681036703214301010433666254348612655822730513313465569208199357416580792088225194683892300285253535934813286542798039387491995480116655593916391630576318342462952384573412048148846106931332670639718238360526676328834199739764740639674437643866712376072231193840167745384418354234128428029772867262058458858798812274780644847448320923084638749950426721729383449657570200504940797241464837972968011471121627657248265724779386806792558096411454499310286854632778513684080163554384127092376095606695689564064295994479881969712811284583774864463795971242904652778272278462378260053615889607240176746865863326320068164120452808664939762125932708418999139291349928000135831399644299361948188731323034908677823329630233077418326887383813135195088104919389576768334581798096757311357741865524108633911967159790383024791868621626358388468700426528463764527667888471802085562394411283588769564148518957835754037056334666891206575770816778372643878144958923346913890196949193912152658854623284645940155309136685679243805695294873039563373778191522071884802496731144082018642335708124190657067004517243572700581479943378974232973376698427466773762397354564784588189796716605722378723813613572601166902337450445922063177378865102108703061324723936740506675741221491080085302699332993377865324594657207572637744700427360780654737064401651353301778476780373903735277126916339591245131533753118293521906353735512814704319830706551789651191313019396287782577267223677128679175935804558179257695077153314573804566559840467194343088580478424018388999816573268465951942593763251055055651057427351819618730284954800326033716623316932219707687420048835961574157146709797327641347188933311268113833264248370066085494281837048076886378826427217321221906531260502909280334087024668682361091061260385010406424225485106660381654185565718908713316447144097942503883177022289935987280759377824593769088516975097406697681219327041037280946265519378584639518577811178916276944342908459313663535279188300686308188541674697030715059540588083595378375488499802217169748517982072622390774569933568564490179803767727867255509980280791743235678356021901096382184728838398573241539138155371086293354534929495204821389842410534291504637840339876620674308625436354293060065443097723443755878068878626531242881912962298106656045245116036601547544870580348271644455568808796018104781877813916643661997435350982812373178691722309086657631223253541780061870305645976762652830574880198157733811642083697510439654972869881759229701664741607087538436916675102457765320761523444265192545729000555686377782227551382123867589880496411709271560892282129831512300118503007723467530522452417789421838232885252090977570299591582313729566074285132238472490831867727252061258293777686122667816760250747154974207846454590934799949128792418001448408647801520134658235737138478301212403315948932033173815889399093864122174774889694146108851550916880676864714314779875119666896385135793475936513243919811887903040240766177663467504152050990611641511387937969569646087290692978918983824896059891900538979746202339320421407443826023023783889189573563417690042103195702659033600648008061938607060297658943265206970236230083850350505664391255517123111456061432374643563067460048589552956836242433654437806004413384968084822777616795870881960737566163859134131214836229019055135724995906882022168397491767822989797919738846914207171875969342096375097191922841311367957077709468334959916736942798979662540698167568267566847112120309080465315336503348856202296251830047998915770875969226643498113224375080498289129133027524651066790463956151203313976879381870642458791747825884891042391088840248098001803242589265217696631077694727799865698923389249857329404934656956079778843108625061378847453721147984974572444416767735348695419813384895794068615388937144128867837177063488569740843333510656783281073855198888603885162547217313103909166078194966691085614728018986532773652880246453532868312801270668253630543221597644991366869109477333622827582508573671096660151320934063147269196131223730652345750369036775735535195382684676659948860149051851734930698285837392720330394232287999246430806741440346558535653387008227243331181797248170356659246499335251448895493131372484039078120294479914150641834163537004804758538403845906818137993734661259038010542172347462438996571756611983931400621579018116128434366998882058505456864519840392144383534590830003201312071181626994844671943825258688762356177118935992547211340970354395371914948159894661678085578360756622097723301671724411286641928777578570688931731189355138080385255218928970048135213671235487045209973454409868516958110559713535789245466950642740586137511395715032234785534701411830812649013975161778189642175898573527423913242015973054501454368258710999631700626880477914492705424944835048180727600001883413420417956785727480187760946832218110863023965398668470054080207419969217769355531458531915815811539479593887252025282386472810128540886323837568528657659396532491400596713042844712166719050198988680818431450464579099916817056510315887636146778596704870905605168884813375424077819473132404776934431272550236923456709942671329840889693756550803005034749083386315425766877484484440671110491543956110019864234028943399927866839484402791851642083390471808320212535670182920059263523270378862525204565167585349146116355477952164114920116113651950772852475772238403598760845671202778002251729424734649856545698366842811260282546933344955142955797540825911415863866536326865030501804416432126432904470733829730362137735479251967829643422526257545087258591007752852689828277485869707563825932540038230593160799106670840436433109161137609584725315748876292235580954658925743594432697849482659050560484597915755150852774803333356257337223625485676958056407416263796923412953517656072639278853971608140650235221879020161912199655321871799445621437876681132441713635536674548197725937445482525910531609905766189005756936009838328987053560138169390222260690393734620617764314659955704910340718119115090590325823707163970403872871978372830942065287546707743526845556255272418463409079602251888687778711873548701463657848361800347765363459023019256477709143312053837208994437863234348241918368296766433810468515780927713088185061812074237896968627865423502774343922864532483088598391889021097222125536246598485045718791449646184487813422484761835959557174422199742754214307495279235965990728006301307848304726634156579368804012024830829376775404127978991296595996270820320414504641481721840268417194267308491031815244666915449421343746055750433402166754495087813331548078274971601701900641330588287839453331764305025812024061724227119636895873249058500916558967592845314816351713928688499650257191956996459426893675381259550404438752913458924975815565342852253914573688141910456731051738285635202633209383059362986891478331709952459674507627099935457874420470857022949673531026645935654586134890419188943775323155279083929527938289135813217447777666530005610698948296232820942799048385083661093740285056368540770646462935836898134457603029925575010625661837356170463920649074627658528844366062460366015778111446008564952159872298071586487608753698573173621212550312967868319242652509026848531340929693133430964610998595019423844362687802466374318398244284448335791911192788197023307139142042992067097155911030434499090329031767129908452447311366164199200456086131526779925284597195301346823084935790242502891495047017559630124446224227081342912486669821667806766110860714090565670194553973039747959266489841799439573287889337752292355631197208518370275079047612070823410075707435017152740322955468341449859219097689999313011565401239601840166138837524659095948277916456975770240176354995686471035065988341852042557979742346849162942356061724579688293552455077652526267770916114278348018221382300344162664618948047019822032086759012973283166914768002839325475904975688643558313859929809620110665994624180993492162580730689098937810793572665277428621002254399261739904391071661743022356652588573926414521258512964885506454169399396341388413494158945054685787958341881121092573354704545897758897333178277366281510764842891217160462544346895910115106241676639992243245925277213272258305319061454697523071642869784856493792303272785860937981255012119145599437943664978662082366570014175373410100360008305268358453854320430716671608529769862984493903366312354846320488353555320565138737728411538012290811661914374907831380664715682097312761690601341224494765394167176695801953261606795881402122411446492207576445619298824157949414944879938559884965234922397198418416444124672596167156208462320494445276818133535019411452444493302376351476597944362836457133824440735870645582311751336472273291923379635251637018202646478593395019255789984674296423315267166802658425782886569953217747122077287719706376844419806658970278826632676446591907221892934792397360097016822862018120438412995198388816394693392990232843140772556210991854785668379018939792450591263432175948054338266978255629488295753586947323175035222767416581133346510430790579958826496692176555966058487629925257415347291171389631782042039031511481490602365375807750009131606829095599233516229211436068050430775213991528409823718165232338823182734265462583420849023231831223918078426905257665897936019868876471862156530834725232074928157890140374098034645771972755155186375354184158164119583582953617896803366750489049806717787182116751608812951875826754484925588809824582984763646627848680195508376541011687678900029039420621660957837155399483932029765662578457775074736189768714384860542795534198723983757829047035108954177590142066178414569453945379661423974108370904510762912587217537113582781552354947882694552824569849184889801072912930461479829991557901028199326231504659627610760782325405977376216498177152112520020485074002675698931958770293548430346234570910092019947667998839894896222444388904901539044189219723075803656302275965932554549424453363076213709627207012321353344585548043670180173593318605481625138202326118619239871864025244073443439089271137806220821931369100070052203370743556234847961323765909070956171099973463399599071438736632056788617059183908214838660952163982310551008817873432861129888039921051522629785177559576581189417580008437878343648515766380639270645530546551933352284156152378104372402419138315723112366271168291451613743293056244028671268924013081735670966428233012542360182038866438537333895554888444821501394896387372847066148238453376040021601852091604329433147953333354371272363972417617190663323368519651771199715398182136954409948194075305191336928860151858950238529569955986761252932613091861357084543905224350599679182665435015144639131119816200615076834619196559635552460011070888517729107664588492779395315783690167512268661592430845702692841979960347662894128045928087812807197795949653452250698922861218200830703654268603741555974467235188101647738300511053957937952810899223714068597378725455837919104245414888768173905675241193012546609943463743026098740639396476640894965948209620331615168785376199507078622706498895061757196764403290469179625300386209379911960634357171274227696911016416859682043531016664320227856129133323904965725646885905295360770717593101796597426528720015163633772404837004945705612948935081872042515477658454995493165288218711747724292268008093168968371456990158471211595378812671841838785691466807735502319234090171942192384181875200021310365826761835028829473076832460940509287570180181300384979266914544046802776450849806078934645578844111365444942554980719142197867150677312037681671698319676034257949990854718763548811627040347363092794963698648188742898739499944416609546166417773222262883029333855866333485940727245316576394223316489692953763272408552376693557552133362473543390395471196622961124410414678875981514057237830724853969984425216584963630421580327887761210627569739921520832653639507272323740586082744842342315911467070085194138335945036876973898910123065032392732036920983645322200129205731657066143725675140951907075903561973491870169802695942979945268634933957749330751528640189833713519028164912376510954119342990691423224885784164259427882672857869273999073929526384885427455565467077129676817979781512376004464623418882071144466299310894574757146850814196108777027633174806700842245655936089465622844375554193460044817224905358646295338352444707930368745245128645709426498863031019760808643761531690680178053866538693747078109429109131309796041976518093589288645672964293807742173553426085648895190381925445006572168883232325240966931332977777375960599928933716491878404647981925736991317129485428623589544610660176517243144724272909767861232848855111957186166909062937420069493652481772097004905838082394809989787224479781333326969315624017611595088923450481773540889462346361873751468176634511467776860714259833712671140339767567612515784053690406058297709840560524972465675827448011958616285963694281701332459984802054655251828273693879812870901032384890234407489849633733169541946918614049013219066863233952040508277718500075344509056125937633707249000384957190246855639471336273819101515854114809148683001447999714269248248311613485145939371628100954926863426813961983839746555528463740294991386631183347413862799395282377262905922483065164934399234247372091061702444218850911962494409003066679717666444464994520494592711177001683603973491157983079827119811026580755890393766350122536502534153380403754026115571229012755803145474975532447971570897678675584185745206080402793928627371421213906785518040920140146775171158032738207587106749223656860719137600384292596235915890773299185456901335436156520612794145520626160848262253632788129704925242808116305198166374523031429568400272072999114269070997830369265426508951886229509662914793494804256685873233087800351910762440086700584662525088514587207694167978631393499394866509012804110273782085055748625505766038740309789212382183718508770771935719066800105458987319366898598080354044189844032905166069888715722989521020711225689847227193844463226701963550904479239917960012228569887286492792421780625431163943014917745237412395567379220052157300103319226906006747036802134308591583306302290947947895246697839874492617034310931090031886806201114018672423402098662035878054556425280505591647203251956132510511003336125568765983971181350541787881132256628776924332111158111236444276357447584411727230435607012708882598561391369866287571664580191856069440931639446749367624435182984032364772024896711123107462608222370329003040206121210953708251310277588146136677229417232172712227142841663162764804577937492064921099114095936463315025202600484669405563973321241691858038828623015973861504294890645049180764709124502969105280205205780218685733651770360724960658442483796565787779381533766661405680209215444375156407852137799844977705048118094416214282716109605932418128612082731868232118551308850651190896976115180338523052547623959806113391666447297022270570574944466419159791560336042829609878958020150718269520966883356133409930197110810384429574619953589024878590011822741384603256249555397258029992442326537638957168708024342209768513338727681758733101374290871361486222355830046856959300058861833272191629378708088146414792325981040880793396462339892182675621591837940690816139509121110516359556129155916869594557507087799851564709689235276634505723036187144755878043166039704841538283935898846516163353476227743793320087542033959983408314241024475772442570526339521654861401199356367751347101689674008717275434342727261338611286886824783437940485820293528828794072605930568248359911517863295536559461851722842673350722806532615447501323295653205537640008415335899296884195122902547883014345847156240692652850211296945891302436308701144214162810164573443551242155337768359935344225974350377637563516042404436884618945146324135649420358130321785497945404696372366300851271170541777666497257360933921051184950241004179422800550732644290036186181601165260092633264348806239740023438395928852790517511447988578632598926035458418344467732840495869811016732280135948965181335570317661615146140651851680946148558595653415349990991187926497760657148828437137502926368972286543704818977104750763170628811371859254813264765290717366677884956959264527613859168572761668524770870304284947363803256309015901165289708416574303203908372802309479692891422575581693401524589756408178829104364938244080521915101374626669575160790471411795490998854935689712921423075293515051352948318297099630631803836006148755090362876811044522241727202368225751556417090549421229951520853426477357990280197559557093797888435874222542938172025051691778544207312919691118669248693379305063499360309754020758386778727850949804186690333914445604474889904230938797414084185087138635434059921997818205383554215598320997416913329500174592086778809420425721460325009295998129051674975530253531424615190861211484616161256724444431532279312127212265983484751817304021621189511761417629777243643802518662509230142062264699912252373176945039777990421237875236377797254385432309012719684168240049108329902810543919789493578898065505514389224862383053067503433109487306033479042278675655276327701165184743050903405894175072038868423377601701679399002283236956553481823602019992693913343330129884187087640756615962990175185125559681600861891402856569317945849289095091377814444852132106142073841259361169558182536705701983678431561959003784399214757146350433188953718538461400529899733958273995330028682225822692429468857134708381169572150516322345834216249826978178760145324993379478181924759744171534194810463743071393693144011605052540862238960985992106780521577608593748388125744244165062144586564225066200252872927016106724681599430289778685589308481481273031563333279465719405790541028755238946563876377095773641090001634829201806551122732866952919380983373324221426529685940959702332731539605368827606736955657354614298367669792863753810082155605985333503252630212278786461637579209975844530250782572014239564505772949044451181711876697840629673222096512941435342140122559082811143242791566707903727690018905384595264420138661218820898201591638852287345644025555819751807157877036347971303785105467599138726412491356311481563714152954914423674352101052873210886032521144668603341373744091396888936638980512126080572677922818873729926364398713721069563583794575102699210530794037480319928512652327708644904366037317615913199538996078435972584737240095135260901712012992621183034239493800237482038255028764677805514070174906044120732842158462118482802755632437616340335616079980526841434808904107792504558025547877571049348816728719233318766161386965142920903236038536052886773169046986042280219903649477383435776207600317309929207575907974067773964051604147537298674445470206121076095126569003451156771343894186500512150074738275731530380504404894672856157933135298627640207147902298027567661956341131776489523244640298089264200679027262435817747315395806467940974533931506044502898567191770001073558570946955066523519357155863398489305772990652403626090327083308911687586285810347857951087344352504597896921577109393762336020273006327994754489812549055413690327274550616860637809689840139527989288398406627633240126149613373043751875938877616801406877941905835108647930305754482513909616739802396105932546146531186592909815677830641243633331893440152360285766092819160292887874625085651216168473238271419993797599399590186239962203674077085271985248172363817370558404852334451860401369885627303199096175615358559722839376200024210213701373471596059683361728768653524388546465348030638898906964492387821382264656737652000948395867818863682604319922645884014969201714392921026140849405060891956244248066065937968411166790370889771094552740713710669158146528562127448428653532584600825670030939840465107236406951408916734466998218212866563548330798556071842856173948284172708723680580214403459451891695607776468842987423832507327100490666584129937890322626981330065448275096490244876524744146659349171221240716178804153697894944106849210727026289462239998027748761981001761833612719191824564843724193800453364117511970683462067202487411628958279048300220832155936524011715777240692312627147985816463534372836043939145316162204361941243734535959615133098422276661820497524550907456044369005725989865597063798657028510253243034265567627772229796038542017547418717901673210438671214985066849481349863071279168717285410342009387076157951068120706588093864019268724729355575983430728160542323217019036433056836756640947753096569191024022562719450516607121541575912780888043403439054980916010946347970912650323580520896766524333001967971808647895795928749588068811592687552465692145199588792747779362207073621421295359139865846814058118325380767959962693509029381140233460224800855832421822084238532398445602739592814512935425003138995112369224054148662155371003412738025797835080311699873950041381820884443002395076601567023494970753700155252812603948006912696913430026547818742541664287976598523725927731112334714069583907194619577623692722138832400797899074189570893383597269550831348271885629448911200632599944425000019876843152457411320976835598240458524096054659022738323086058698842680736979553223601107822360914082250172583638369995705752953132881853644328821313313780727198444543358135440854582753983118596791369976805644566252297753574369074864092747336807381811653590270058891365204141186624055719183846181679758013346881680099193713125796057781848302962462621101022860843510678145557150657399398477142896255948133549972757516802948230371664698978163864656021240794169102051503688077630141414980414859663038612566490186456771631265860621338132833955808055537105969114609190120401141975626165156446707749993285360690722649331755569382213240824852155698811735939703548817042544626837463138903398306510089823692503347293138614221764818364362643444895723272100025297207968137890788960497829765481720261755558596888558826965948455632894638122260296626826923991151465698715577893086378473966603598032027412974836929008133777972399194847365566751810829000706977099582625286813130891270438078655701575571026454691277981151977399527032302309735069262518097049971065280645078500923827372885792598285350708552196226651131124197160602003998544734010748763998384628988044124733259753004685334685310114296340655180233716635217732417573665281064128200686558057202886086583771088793394501153212855375053378514171204613602337037673028466365862732654545162841975168517916278402925739655640647196478140437446035030509125300442860407880557747918386896288129439570059493714450676208068048813734038048296113320843559222950022721539103402078051472791040339913017546518694127303061771574219020366123426503169661064237084401552846585703375129214222091791884855665388026880011139958803915575896293056665464590327656613029709263205782178699814370398605975790614533698841121192179191053588969682457231270151310988071625632148235854762422482037875180663954256355534474450269373352911407515398503970109329899195908474879204249139370734719161756808132082540616840818613455321972181272401657590155774040607250116022562692561862300580982853867763425143335793783101721790915605944100897764317785222665402700028786858456850870198325932857739851864833511926168378841115292123285883648592780910891531182601099153544623821109689014217046719326032631298547385831877753380048229692992116451512350107934151924045821877053035010784083951006074654672574003105901452560626616958120650955750607958503675045330257190995405750301355079729197182034610281189087735951144649000020658162830902312431032093260527460864108960740488468122388394575891103214943430016584403768640857210826526686640791615907389882929329826277258492530538184737039365577933912394847131106639129720067631358756960465464084175548821709961263118246783418479922793247564683795116698094964606969955624918661379370403579717032173325321413180615553319720291380775094673536690100670901232307611184109873301000221449490271714692085146162602579353030238855037106006010936530053569566264537706203426670515073414190931402290114454171402857785238326470092005275154068273766801819870357652472214193784798900339450092926215786853772493900353234345423732668339661618561053386730702201836920380183121191797286014094566783623246997792572333471211534453806376828701295487262477396826011003722682675211240611215292551506704266673233817130503233537405887207561564757111942553184810789335148736007208636276016615317570675038916052642136932425180942104517319924892061946441999402058776052232906616242129286551323832322919920355282312169166331687255748614729477181459842454841560491970371317344157632639749551186734291210237775058003689444720572803679384502749032650853003369881241081938871179572760116149041270662433260043002341137590068959818287032233935437423108034181408440973609826667491762608822682155615637899585471966844785786285448695835282251370932315074081949389598716846367354839892197979943370140305038524064941103088115287130520376064300087748570003402376686708851440753218000027631987492725866435063603714580326132728355465718613200935604127301502440830635640137496706693301480244010526254951193237132251783217083522558945029382022542032668206575845842004741493378935151288771160535373633328469296936776926173310556322996589962146529698654535968095920269673436521227799570063746653946164052021430165318186197197280797320428109049637188459125219335211141137419375406133619590429856218044121438568869524204898105727530427772932954248020829170651377691264723638268752665293272403944772774092013098091698224980032998929940730660066422306159208000610223802189547726311379616307480193638849193193148723745099401031299591330753763553195507184233639981787279577963500726205007217995579468207438495425177873626740375005791638303371271737329430488094497875279795261369140069596319790564629393088005180533411274140959527406470734054087927397380024405142736152022747871003966414965198017355929512440079541308146538798647698035821720041506467792525663683496314774383655004554527067516018225542101354025865697492376246181172597675265410333490986899018429807591408519605773287807381319126098599205351785296196968955171611308417626592429295610119188790828100106273872784774252167817218831914337934343024270354513396375956907289993383687756535754363244503454595152522981670257267127365751726321413222833142647644865527685040944022925450157084002082719924373566738927330468676795598110384198610085635811260539687214016511440654343431057649195457218973006316348439757952965892728949530725643695684993708553009202448455331941688264669652431958735110546237908439866046765631889145156512516840962448634665239140368629405605417465567345217128544585369821855653538149310443569763492523957004139022184329128011758159189036863682755602164183687289071128501664402371762649648012751822028196119605588749165229924662586156668750867932345859077514256020730461207769591714598802769599712797276256399887350931395598457580705247824877076039277899694342685226468518284798797796340054430816904973418246084083543832718028945151968129003244084883219667369783688995912655321119833480105185937060355799366969775029275129874328284404856000903582009905904199832995547146020036564411277948014539077166789174537596891308211210790837576960243790806858106772913990135491442649502877448610225313305917447058195629881283141256256850588611962357561462825031696393166244646425534694030206395683911901239831021775319945137715557940806481100926261328760507878405480400000106569819577941569906410714182093280874679275717850419972050825764331169202374119625005917299206850001552913274262546349751614252010254014063520292851615160834160012179466416750401473535777985070573622466467748646259322553730679807224921042426077899799597413458991097506452871138093731887970118401524017275196034780082471789972324600032023272254486274401412478902094218830994369864445401822166337173717875308349250987567133678686005825432347372112694352145710820858617882835455722762762905581608042346389502992038064861756155920548487287641973092287188250355792005033728236595036847350508492466661496876412721701762985767807989814879473436709068583663021492151524739445327258581073260111831095953265647398254617392130302817617274004130564262909569717689255991430630471623314607656996286919794179949975561097585957434210017299547460138564389942664579073553665738505299538988931562701632948701265622416821219411235737226327211622879144473199419406202210782098203683055338847732764458845738640333323905940390406988064508303095998493809582534832585852461896894350777751166032234512954071513304785220609756604983992129462026834046672826165395469121590305534866150495844779821501418552844402236860205233485708160541056819182368447336516335883486355794814216492484649546962300505594206014817494383906763455368532094567269669951135813205192214205376881220457961911748010703541650346419240481092759037085242215156605959443932982363684398190118445575853185127028563448882924170140946575719663962289180292763984963616923964803072001871071101560157113167381722915252909103340514336247887711640048395206518610856616039823814976772854542470926278786497739609689036023325387089929443804965878140520365007662876027284771266103988535563292994022288232477582855542387181777515155068319011605184634312206418966172185217119019424124492356482743082580717598103488572493308323149376734061726577745578879012802619582232230853082590133981403109958623963645333240636658942532109351770711099440749150969838059727982917904095059203363219467893231528522180502334253387565888141216781800611962921422472016553989464870906931011190497118283283518502613834402521630284750644389668538444533899367996861568306970806825396937115104205694402944043779299196935917769955868640068330220806287850024198801487565314506059494122188439861430590701471564551003352989967651534379967164839038810125160566582564752233155742935202354447155123047946182397242478214122712693841593986469906558526145862338617190144149669237577757991335167298892540302979688717497043311574743749832204731179840506082197547348589793889740637260141756269405889286904083223067415092886243310792994448168037149254747033637957262626022188675146702151446549218406413615246113808420245666917357300689260683106766181480728603067521720926171435074956876643779425034474413367424357646372496170678388878391804805071745382518840109853987078115447167739577547753852385141990499208765569159817450059458530525584385983008372063779799584465427708126534057635346194625897061809879722976551164045315536811082130618641966733077384848124813341348302399467247190004870233437293348987096384841545392753816941342570939909953896106121989940146649135227884043669574565316412472181275684857066685682167495384258753359375912126324496120811423535283978259780756309042600189526169894576235636593297565797086993804485216157423988569519693249832780609709276428523956850381872338728947112977321890686380918636522167763459548175908919623558991475086299561107605917019630000765248198810411810152108319633517367898489089532588775186945334323835835601503814090781605904100521363669790044203352584191622654671988210250184886216609132788135584039700807202938742040079649504833761051636122457833175436262975176682423821837789492313002903046800666435722899232227346002357472747093580335123084009771256100813401801964164518825412984203124380240852201826782725285326307631829549974268810287243742948410745967459372345699472818059652472047881363375562389155910185289209284777336330148041183469089736372514021299942447598660873961979932567244219780523513342961425260249489597279309963700299550309340448231606294811824046448236870424581912563376074299603660038802386125181068126034261141529704714135781250152377160793314572787033390031383807970089823460192588844120879676517009554924388112088627058764336419754368052637488975258148894999315863159414534234487617202831710024379792188813488889670769950341401831179111233368258929033132193555684204506761845867993084041355536284584999270371534083441553745798374176148578604329904128213025029954946175721182085393965717472246190307136124488872656188179897037155653311731340893672477955295179755421790487506620393157302861914719072354158763968028051517254973323767398060013481741241410714766900798356026415170291478305757763539903052661591432287691547429818982847477746804538959862249057018556101603771053340292665930960940893782620583892131396765047014614893796254098064757707874947024315281220838533132262977407960546715692218308383499649823785084195272359290302782866054588282545634703099886265454028741869975859654156266453923753479801454123129434193473261898955731463096273692769509678590746534915431176120213484261313431567292713225792432994596682537447233501372824770577421239788338299097174081655260216250159164881218929458128486189501714389040344925043615907938103219338676396300043160826743412917578831270485187860596442231505335634398446119420210644264696389556962587698904796412161354476193483929403040364122771622279117977209629862430945656536855543202382463265923312790970759246620087615801018834303104855484137660016513058679849381957889492824499092332908823151142130623947205656679956738308127693009363232679635450818579982709406318819764707003747990945353157157360628788496320471197996304692560965862784252911227970889154137146578108872331986302549117167637220555930811892849088517710024674440107764684407355986702781653015084967040903860352552815401300155652204806675890026497449467337686551856746548823068303193531124071682240699085989275752291162305758585346144748044589398609038290268425049962022426235244797704619380282337102278400643605669477285357513966208870741934694757637862474720970249657479544601394912152247771435822890040677704462778658683105245467932479467027979285520498457457699758571883349304382884876681322986009276780671945743860720641273462072967762827033833567813249876098593299840741685212547409397699986495448767930802835218524579604167723412583779475605325450125145711527075389512038586369890959092166871007436640316969723261789076117895698622063468201643014238991879489068599824703434636789727791735501325591136436058008248417567037137347430333801702494194265208720413266259440556260481071365766009588725143350996217664189610072386208948781561829265785069512095446774792114238157429854327382821005792051371327903730831820755247480449196864168260433527528200936194135848798881455372393774238573054354991621967610759044416406209055302787827349606966248921821390284334215719932603825761469674950289262551415824084689547595929351366410086134761058213477290163764450837142529206418787609104279437760912932349227210173435221997145425407932152788500807409862046600876928258647068482965739844239107658697511411777430407514271253633313784150959362694445419003661913145197535726397538390213927094978706251757340599995384749000593930820277650641757651042348732947732103890204445266323967649397307048039442625109921309725806233853838761752769193556257025558906144951090824790232938848304825159982319907868508798513386897675924797497605646054572839607687011589311216871102323498885588559707876608099886239032754479960730677800245738913680993151796502728536787958484713092081580979874397652347211366362760446843144040905016250393912464720055207804812814161954618526411824308505054932476802992528475233766261692634873839023923738396743350896151687896448658695856937004538121700083759136890844982354752803057993153283173149040823870924742787668977114360963771789200504375378357170659284001268836219298281700341966492996219274036008883240440959627359786400290426924016329010254781397439212868369882940088744442482807118466645614485038984942878175019625492637496312284767561593304639062319008818753283273029864051251259320335853492801648064666712301222677593989249849680925202310214655815300454422364721581182416779880165926878418398342524094079642586223610221208041704035908480907884615991084085941775521841306907787095938433612890201097011292100059623021137482801220889781173077342048758043695953250192121752967608105675956206881284426062386255814148326714180636493792129429108066557272629998911365054492844861151635297680326008916943304685662654397179171523042746540761309460959775414966081787139435136334574631770991734177119924024992823765468959634154325361526647490252725012062910154103345441455566534008646312494749011277995850918742686931110197542835536863810384426060286460440671777289785692166372202568656386820321927384768644429881604388167414195639839849899953003375655181679100899366042989027800696958961791552458463921888897086800270060712146660991962458226452266744273546948174234803672929281420426489542661750655118163516208800453359984850384213199228200918072253850413598058844832779823930967008522577163146539548708594694733937786432232779115134305153328592242866584211189634046675442095093976189697880316255410475104451724747560574811833534808798352570272829866292006753647897218318163325682251716380881605326558304235234228983737453974477169778857679823863612684621425972219012660760453969610403654309615329487495601745357745584698460413708565927755604935787965547337362986676393056056586461605832567012247894141545737046919496155092229590805998480862031446108122307285978396776698033744370598736314224603411795656773068428394902195892624477635103627944926971385680830872274475383873338451919403398196651540502786947236850792141356561320994355677562474793666828410140606639056925090583608940211305422695659750969568243608745795102174173792537065768834049916388948327936718224658862449543520811739087816244574115825958227129078635707356500866441953530511851633484776056539312455499747218041573609034090075605878147941687661852056358361021400901535935169686341705047001255697263570225720190791864930624306640189532112502116204813729324919730157755107793763874627491257159731854559016699849358846558840223716188496866450353167380929330681157227365372082384828701207141258567388112023604580993610992386446469377158466026113181770748795017317517967931023709916572347588896490410462150346562844280012940739401673516749857374083179823557682485563535780555320897055682722908405058376051278212445651420384125244341738116083571304636884617473327167567167003509503029023883417593175640290094382906258089245044084893057911040548101571540612924979854979730559017975276827857416602856933788106893073495450070937940133456893013237573451362926300423616691040414455268543883121946400886315966755532026226374432152995600101820559271441829619062310343647252368037827209861361345393355445865347311017057622746057169478889899296393230915564641746449185513477208494614884908627361706836377084807265769803352747778438941564607650732884134349362344420287250346172270364208064903443017132270340066915505057283940100311024795945919052152309379802846174680987635662656284018342965401267996357041328216072910713222964123941485435235643096445551794798683034910422504136503110224030483216760963379552404611230773391277284820197836463350455103177284221630121040573257400854213174884143047376203108038365024803990574099447244476715854341397635863453380479687383384257166280390106354632394780937381582964229435675911639792901172001937802371891858607947990502170540347025956067178053457314089568104965129350923232536132382755436637873508525969108554066138413931892707250806619438297185548527876531472799842510735868337489222576884279300762351730662490564000712488945938786414902945300113677211506611502781048197490089447262137400459753089902343641366923699549551828274763257300356379339400210120441912218444435527636782386853684192359016800902765879846542047178346648556252382034113949108440003371005560284760160010495391931453357777680934138352239868827226179034274195731481039431528580245748446758131661701099802187187909668451301758357160177622561289380336316876932031115410743362055725586144524080290901417707946145004071725314502885219250807682967919036124555014816440730728420891318824873912566710853075154922309276935072140368283551995613228347463479748926265844544193108632356608773589637823588650445803060137970947425202941877571142088048208243748955057928442333783073349165552905969969584603690748249999361714281270729891439815376664692543792693035429540932465590659084226474879092484638163570201200303313246398685115708329780717412027853704029257361268480066511485487633026741665661838174880925415871761052613206685250078340064101545716446095309662745480571024845708547658283889841901383847447031634480245876136212693785159408740902850804328598460300270365514592250518157791067650062206049989081660465327585141320775791997247860962632811295965161797825597322757123084376449609810575272074603756940077650166928567435968899784123070980807824312284640874129845198871154022601276559989824440996126722326100503276168186702787040454067130394773435478342568760919058549770715998580116839826481019200467552771948925699942707012412266651298173512929616605975018651052494533817783256419655268239094079539795592307842355637704259486485849160987853007108231248610919886467265592678333769050203303647995559768256048058013831461028420728349109868807144041218796190290952215691927612386054710526040180540781444098231953824221753610008012989451469096353598412673433478538289630547969463232999893221340999198759955789561718686200560656544930637080618912478738085582233614860083846205956588403651251870843938420247665077443552518418794622462289062307489525184349272835112694526589069221168905354118329624066746011584988483270641474760331309962060122940076035911652309872859438101075453364168256545740383485991494397651209003711461245897962445038406629202547018958026355177033519843667574366945720831681516052325657729141564636368724211939901439126307691218698402111985090820228417242472384193468477812396908554107720182863040189916294599766855848898446536480045781992967242493339305941665883774734536306330632390295971408377215858623520023388553411724455216415736301451890625074864933072288794012132320329572460486112348244117353924380933555764163738839374732201855435644307705295914854216957882130911951625414638720210391648604473979079391706184309610396340364517373152178696631928764781792619431745546356475580986254069090018707842975968860860817208191044312500123732592781769707678588597460840158676924738442872302634891691372766278804761123192121256259953496032330569301843037705274086221068015118778028281802467310587648579317613629719999375456152047784875285092598488013109168102001339975346646167690006756834112253383273785674243795263800348813915959549885425660240888678115371842357645393612185488450667662740650087361979440394227126961741571820662409734047662784652355854951025249312814166228161879213807002122719575358831823492918936428246663086398689524067068925629839463808174531074698953362535900462564398187182263944804109706758529165236304009498249638148442610543750998716687235201419463003800812457548286498051741835382717963906844815345459048918436020884615424336617442537483558536788991231716576088479000263134654462324206586292792322795626147750139586838959746893302507474523405198230626276911144558907196736975931011334913678465436131562143803267636179399758216223142468237926433965142070603835474135492650013559285883569335040274675846354943241563893557890961406350104513253784239494476047926099560135373103712117823669046744589786421947866705264021617838035743635099738249508665379827912783167511015394567335958267273309398607483217130534101564322171562862915238865305784614533360853207324821705113899280082035534673034144423869238662932815419460124401928388147087508902991945324635173604372528932762295340444663765488591276267427218995927736825779381612449977808277305760189118373039862853260972083860543010217387262144204965361692870237163035025330738372303402698036587766268874820617350106930112812625250493047894371408841090957507850470141789646216312239510163570748284170485359802480033654770829126548076998203661078000548639990230155612639469296022504083682481303068059772273615109590324838969943847134686555966672034725208169639480009815512930693476530463130165435486030737277815957919703425252647206474361483541329927037823504806667314716864801878962219450420145238003713671555607451531952472892599358303114467258586318154060640073198417928660279288017848847995288492650388684645004063827119389989191783903325010062605032466354784948993850919770873043131198539400309519747270295304291078454143142218002900798744379778475716642182641428832197057444092240092452568509002657019939977657298265029184708450573884781608329631506917176350361594642769623567507630178434051050486420416286140919880163602963146726158347405171317984465717838683587549199077783272303036879820869878707299699627325632339381032777890641030866974713942067155703520405305370807856621862795425773303460196121279729872020149420276760920034212476730875668274490683503690742866564043017966708199777335765645833340281914231647495183517974630070885358325307668525344006874575931851121040336922899319550908229232945210377862810266133028478883486361284420627694024869103821308332565972928342717937719419852333636719944914457036842571794405885769952210752479327155476307380996507628326446551702223402101334892787056744387397258635799614835736701163489449213791777296872609416151713986760828915024848944301892843774452003803188598449327762215786983386428956633912840984119672253320633821087395598918575695640815072308181789498535692124715903193897348695266109073404080296176935601618699029306014069564188803831207213179868149379698334943464121540060711936908941998971458290925610678312221225089254865329866935308662593049464819509614921778490188820977008954291570465663499332828809373001225709770150035195035937017261040734629387529143944105783191093283312638150711167020772331975388365509248448636010472944538106887868086112626849887041236846004090678332427251204422800483377391683750560525429122517382822652882539758328378801258801183364101681620526209015270613052393126600851954963562648075873432313566484124371745909516415261203122053184001400121703309878099767373143440826651858178372523975075456425869677379011841194918067817473908497114781274878917111271343287121613300325175643524824916451497555086352035595302668311298749117957100340870433976519321729510714354560843621591230603927539455461106485982894713104084490567447477892929026203889746097905690998878966251555843435855895729352875865323888679971729405881336710265467243960255906217236201965406773277773317759996716265998323972685111484077128045131021827585441296180779990494788682004883396113207099007890149983512085990153554162196156303267994503405349266926557331930024232473877622476611206385971890992390097145904661247365844992941782024733176019481686888289555584119404478312846018873319705126996783756291978919695777873637575604125343814950000682885670322743316913753129867517993054339185054079545999478708327795655367730999156145039259887063035554726323627449190081355014106397456938540696324418126181251671419185031040017436979130294354354488762072793218214509469373212192536336038651737144026909006553512694946610193660687195599513357363904906689233409264118687012821358336224951101780847018084969756629652344317900029324186848743054386906803133886967159022420660674213584057029897394843144758123424124991036955787576006381352579981129389238368362772639453716085524659524762169675140994501099916233582705387912356835025300060357441629630905244415988372644587132169701744469733311811363506466263719853343152592098312656448961018077992219392239334050686212695198324307588145610164336998251498151282620818895983773573178099657216717056931892738451602279042077044037325376511942874433196450639641895020158631296278151817470093366904861206585848001260455442984407519951051822743627376187785867923215866781104264694659429705322243763179429482240133905468276255512146826637250875861436530414196632687368053356488022233804640488703471790823547969501800833330061785786369239820386295913259589585272702124796220034416413388371426104979632737635255959951486523805016107175027137116155201004850616307723648870516952444208072803004205775759928988353580121258087970121949032366820887363555072294162545568444548749899855940278176521359500916090460668726303943200358031089835293990316955777754527154454660509019783173044865000897943564713829199514385507767702352448562375481109479528006515134486114842630135757872290414401651361815880638254232703383317967741971967347141672026200912285162749635397306531223913455918246572067051844118666450907748802085086415500417498911646927963002086823590823984801823491066442650236805935458414493960242212272836044845091680898687524282104402015871544036942074350959130735888552277271032460025524679679271056183707852205520975325410829749248175379593701849975247829877455694718165161917709509261972763540245153316505539588034535161652524851022470600427378411933990904535466640474989875802682289966140300702052360624890508215437726617097599601128589511613832893940385066551440365639355346210880072236666899468023267930861205717154418300143470740298370903809468689055400908347549267609291207129642243364813655482767281846873031543570692657646046315076323540611710392587690502364470242305162425134384976522530126959514576098026217383293620316290323307035611652463121002782698622696481529771965148032034206510607349310884732669533496895110155085422456287769574535989355695785271359761459415871917001959376936572288498787391047764370535869084703768649955960937037410466325436411859841942742696844846315091457981028818708587679711554987949519141758889055945019568523405110744553729775101821865213994084040319124538541431808465466809594919142989615778736450845879286089681611928548769959861759438760051762565930492153901760609246048956155722612258405271265634565284051027801624894490049669126721201118694992299733778856615942134432098137734482837952178059851337233187663407595310614020461710499313340928314995355992932258759153785548786624782408361790206081987787077521495028818407040544969852623837281563368092124404405300701480315727025841127335155478331448266724348332025941187117384971274713585120564624374205211551194811547463997067033386467846778454805391237055427419295878877517069670458410152816576292606904786020974018497591542700631987005888049371932979791647790823993534504439201361476446467276989926010557707016523485445344018291104009730789153727704461646127825680888295633680769005281581518111346965646363300785656346767709866918433268524566070291819616592529794183885138183718154722117525656708988927844036562760619822716485134581007507739791579333296643094075719277671654268905974289564169362278794837770129940022634094468018170455496890298940957193001930502332103721213616697602356299974617531346544239886602133519743719934925962749200974482728046530031200253073644247454197078197863463423811933513155888102618710624340207935876060138406155803977331857768081556738307482279370213380488520062056622554569523876444327683134932180347749047859586991972642326237767803121787050333063849516955686235991790075753493377987113595082066173544978267121256704570938163246603679882044964714155366020427368561787254354344076163634954844630701478258500285732381957062893826919817936623268710627609845439194362077662783405279752007390090225186864460055863661320365739800303471491854717616015210325198004934450928133738984559987942168662114485086773147523969871012985692190405936118475392232473940420050108210125076826978411202601656840056852116081896112455485173725131050273607846233574173567178641421963956948441168120072241783191103210100448769188102362000944073269301515760384040834020415461591572604880190750309335840361551792956056208556433889064995229213703586775546959645886845576931566110437797113460183747725476381776400241095612535131412217207612696318801498159785380561190936363646257922012066308250220682250844576752559090142584582819040130132686361922248235681283687975276590399132446150417286276226177164256570740355400489977863175274554569387596264414059118605421472410775953277464530103107642283825565252128990007022420457249476734709904428485491186128339357509149800774471053250860752037891575147735089896272592850619705919122820180054515280860233225088189575450539248361017313530125954830375541111155263134480772064406496860722172674998792255519738220479030178694009607882358900233604703545707636640224227008928659940952502458089107202842833720759480871151371264757191650565545894974305291719994023074195741065097156649046098768187231060255512039683395140681182214008974223561204025867116938358733175061569530695064122249536011687604281206517381854517454365529503281564917091728516655181101596450378898340607462181931243834493576249991041941816237863853335765128244690441539986465435973398918925723894795689797355700027232633569115516027291854698979649672315788582617431795389820721946956225634001053529745149207436571449645636681958749933471638937089144773650785659466529570785204395782360966012602574115010731470293720755512569696749713199524046980249019910408790777138387537004948697218597994208059810647550872986125872035799982466674289255034415507344647491620631501978640757964383480353342465053567688694781673737595147332825198131062551666311527936729983625300652097044124195064686589642784109997047276777891883298386065506308236886724617131728413384473369990505356217859769656091215687064523420774879578205438837338981743765666293415915082359033883986575760034233067461187612037614759420784532532817044622280060264501714006625536295565987194209092376940661018300828943768820063263599907020017608142921982069646476183782948366612490130243142344405911351467178704399348055351979342341293310796000407526150349771734363987910547302360124837383914262742855139677550820274641178421173211141330431213239968333389302460437519396444492784242033091446486105140335100983017680301806679396432845134296630126417707859645775541204224179966644687668954231944574576156642143552107237454305178989502358384109166310523253540581898540755921233516856815551103707405042160111179417017943474549271915163491338310941679684626845927114110391535557316945023821632285497428132658704059731724052320756585458993929873060541574477397371223227213830197875953121137218886207773454992498268354918256899836305903258403647465647513295486835589450845351514423082119992828184314790051080339874458056216527370714105334572549633430161239235501580686952104500049950942524944029888481867113971647596914580747689179794592031400820765509740988890252569930942742963248533160162669868463020195158177179274643393075301055598093306130617418167798808926190074529964511792547076028818070024448092635565572344412589561317101463188205876420693739754744869853248272890967416806784968950907218315391540421932321662568021035252027765635060148613441292166683100173478993902169644742059652036800395197019754664074677214811684341764848720180174345135855826307207183836807024800974404023809899427908508841134530872231336905129086512002150386258650360425609471389299324457423068273485409409747650150416827702346638197319431910384003548500364953290822009345325631487254662211142522170688588531679252604590599807143266239153665037712653726368359410372765532849992400460203285450455238001044386933360618436998825708811041381694715681576025749316736767768346492485827412866680785035318964110200662551389774677573063328626564596789519885212487667648362527404163495667300417717858066518502231631951894267411374308220987262850317320234099107982398800550532475018197017938320373141935303883680033150126745294612381095750189108429330467885992834980981109986097187858257804877768740095344605242240635484731849159791799256926887104307528801836188180412470685848050837288801140806986697610981619272335770069419658249402606536176411988724536474135248573703015323031615142930848475328424815544191486020733383039789784888075248273123411259390298489876945469703331524876678881599848422594449721064802256671616913883495888367269557961777192395194772751830001863523773114276580692300080065040459553719224023838176406488197147424935097705497454025930454262015297855082079772003154862591615712629270642523080731567640524285439177888152458053638191274260142828576072353304647914229138127876052562286755478642196147058055789375480982436885538913542198702899501093709243177170895738281208900350224398636676868657454082841001661117682400771473139003556650272928972356841097580143968912147058288256252463954775968775101421840117763056840933769930511626615157922565819725307206736995179549748793371917762156884775593071789147992868944781845997337221225497821395097284844301583257551014616350220826641191236416690671362372495901346169307132807167145381042657939135795926612428435032460635592977318056077997737149026488740694390951205425848646826679221497110828616573613576256767571251281415731291647437085563347480061697804003425429087675756950937526136574865245123817473725537572714633143748723179904246019636634052077351459779231071205273921456211703968627632793873428878922741108809025741295332721907606246622254980821760985068204554192799144090010603546233270924348623450195921669130402598228428497041382879644574247486851598195347872628339916725160353680179703720971530642200983765920883239663174940609818918783340716937758801634138045617691911381311690121673511182177909684474302778372310428564324196849337146015606526126742552480109643386539496048575297553517821911807961049829309304869733876186662714964301670216156871149477611642616427064573254702901668493418101569365328852220915282811532679498315480583654189494483618317488433665424011473249388922513981150978650918264362730215720507615025794123793028865026105235569783300175076750523434199457248089077468614761000069045405532970574180761226462185566272444726351457393235669109141977054397372898236676460608293362537431168864734365691159729914184743292426773901023125607217987278062850177722634870862264932576818111216559672592765949369965521634827353537306180800233309865484285950589338758184867844132280406557442446492192373532623078166369816173142171049661581744926919397313010719705177888084640100661416813447013955315721659142221209998637980233975846194990980685331194931721921517568348352672074450075524825100039723158545430584522994642025721903014212150637055651615226233217744507093352385355556405226861106868028956429907598528317196448197611534216099657172117719442326037189123481769778083108837611637028018914665211169460167486483537476949675915259223133812457056565202515323676897928319301100163928485454686357217312034280344970260426007123249041456005910464311970983108738369467871234411521518158007744176641508114092399685866388411451723815388002868418217307965811043392544455162323435666206934515243301431123242668838501831134108575112691628356753867659286994587004221242674812617497582126021317209859878377780432339226858049108831512051353141688606889655742807271645708241330333008171030740965216485974716368284649987846602212947650520130537533707233862347311510230136941128055477644903707942585501176450431755531421342139278615963449039827265557614887477202237748380512259909724501354678210858711149082045550100049216679660497262391603797431872724669307644062463917050094387723935443730607088047108249994665232366636075811357915731216925504396564374481879098314105074755691005801831209789891645570445906481321585993428953673976779174675612860116250521653827913018720835434569192835576123264665898991082969358402413113979811891766904465020921382622033054019052906519600934359746919705091086559029414672435566646722220382382624069351431899132377359324955644175401213010044741999553537511261814319848359301334837173085440385837048203320209904024898683147408838819293256893756129506865278802372692674840079606215045214234604207509381500208607262707641139682997729897330926355992541079049556841235540495358795019349084726304966022703460145388884422912985705329612116381994902386067252767398300693396700813398455160892454848534966368295800734412343148882068750688179595523968667229075908535131538357949480297256077764476759618313799329732067450425089959743431668791849120284997739856273844279510223430634395681780332309474336341116906376562039214732676685304839594957561317263440442364570573243843511932086673548925802598754283186940075893669757235100801752542501703556085229672019637205029085313826207411801044945131218454656413970981037986478527375639581083975193174006933433685439175654031959883726355487476269507188863762002176161130501785023945146637188084430393853522290579943016731761893080834586430567825408351210935256584683705272184654011887438991081160039886838323375936738245341071202089788061311269829026218400930085130748474876369488317505568898480011414438638756837483964801859833883824066122223826490689707859412822332621648550864922053165442397048485468171003696397749663010202816632543879319941728291012904639415924117736274255497896986270533250607541997334672991959278636775787030656803392443952918784920167938928110641070155560255882701316911011087944937216251653347603719480239473997412144753623168324451731660344941209972191513236513365156213658989481928884682977026268702937788091416874842203235195175718106054277578526032364156042978176149902277466116863761409652760368063240663451401203577728194229863958098559737658355322275377872551880083640573419622692933881770870060282093210350955967613007780785051847617951506288391408489557852847203429860221486620654073014036576550015704432687866718634258885396331234270904113444590933902893208082870302357982800648356561467023007339419678842874906715232960821860665657022957065620708248432733127552018995646754415012134861914835327915870175437047813096687765925313780425148858311689291460289205899609291230659694070988798679550504790658279598051571635851993237525385718902125124635231209624512214157032528373053408527570821230218549244384880333975306248006580085160871869897259186231289854971801350956144453229188552389485283195733088250749215566003150358382057332168242634819756223034094716142364638350143672849140468926829343765532498829331001395428688413905887185653198704935198065575197863985054191141892695854223376765013554696286829180949076748227441105911657196501357433120126804803604106197649891808737670170514810246957526981832960929629060149216978525508115085154720736573289696268811495107321320466825338128353450148834779412097914591648392909632181786954943480092041265672632767781243462782620012957644667592109461725332433535322138185906627227217664085268387443428954863127448953923810885162325106037390254967521060158312360357200333479831727801981702405051933098568540314775919442409907945348994670101663208801127187394787622075262587658743049679200601991556077197925603122826132125895428622715498200571749486090995907768450247124634128831420978964693659733170651780933161331223064651644823899243988921680447037156317934915839645081792947800580637831683665362293558555402328481174198856961157137757502169699227581324433376907536790239873111099151573716790125956510152166783698391571116008605477432971148006914548549176277244833189325696515688677813237913590134171870039445580029369181658813326895947807567690408034366899751267967161054869666877550379176082769652583612683293149975488530911334567885060291591687506846737910050031649904073216808772381122041936982354469044378087220355426949348939873664523331036937748839954561371508290295099429582552926840422118895825995597985207165407353024967647874895426210150443360946754983434282734688594811086263803929515501505519834354826490849472220388317736703085669088834069323219857640215197164924197521297356696336815465421864581472495359140805970159140280979656581845127673755225853302744779803029146156289074096271740878564143227638288390981219085719692397975584248955036939847115575624135345406196429368959177486252937379141537176134949855603522907932723783214124145990878701127874894642055727998002692034354353311834453809082200441818367607503389551530817008499040861964524072671247007373538871617283063150356615030359734253648108564452393245330430937736478059185023000792938986245204359571822384238357135376508045396019476116329032694655804241166532464885151879523823228886787157368610862367836592072750805101982202338239427514399333081059104098157476706601961842874276225034154949916202291567292668438380960722483996249272108018253605343609264136701968169154686906372796625469180134184061527392394608063918931774018267364727948976818626651274041010635514399322979648460886607595712937581142062340592091474647845787183038629043204656184857792537742960216870286250096751068115124269431471219385332506557571550912602329679281507166895838971096022381443832677654152809081917804861949384410291272811245718894301883815905009841723983484206367075572632513994031128741987502076496564828896692920501787236426515728729648358776279076280849212652818801144231874668989037529690422690696239209974655262427854152605776870046302808472951564356664977376862053888199653826284659300263903764496403660465434080450935806733777337744484654684397362038357513208586368160611321264207732525344351386199772306318007245271146214977400866748612044732323755674976397205852107774356341152309066157313363455587041466937475157398491640371910738915532341707553889041740808180210937526289574708760387069429133660003491823464924891844837085861395051559695576543354775337873984825477152322331684716480337550788700071983495705022848686548117898013369704688359206529786126441053568100009691490503488997925022631562334275282690136226203306254362969173234260289464154938916255539389860466164602620616235408028403900318594265477055911026765032111739569966050872119928626082311279938619108960108614251810019674165658315431653683445225674522878212265988091001279782495618813825683632273013624359429377646716687361154933218683677063823848610997437324871291034300846680426325063646062534451139682726104496615900156758488657577339496585538918286095298913380287893891940798682295365637433677958366600768682228788481908298520325215219168846416382272915857601924871006240230740795348221418382633511920230898985236572883918002042880413270039602684203180937221428794395056582480709158696527133056906527421021523099102247840071893581624590919081703506675641273396460626941870785757806032358647396868643349179648430125596209011369814364528226185773057 F(20) = 67411401254990734022690651047042454376201859485326882846944915676742270700738254324012189093273958935189763096092662578499572617038706183124893135193833022989256953210196289468241672863888618038537874881666541392847226977445968742340884809089414305471324099320290445257669398812381147850679486141068777106846241963630108359641749212181836654212482724180596063317308977734704851773936716905551669397095763288202060410118527327442490158969111281996293213429770950997664449086845487573646329916443392868735675338887493854554723112388436112476590104636978314187941020601103652043810572805628594182610758661438134364867149720092052842063850921820105755778301374301998205964916102148880463083063681194356285817173546226418594070516920632907297327680323570097478938417642571727885865692342935027398978848714162873276729784189093131668670745793408545374977323158465508916526032892626526906254259330166128400105835749887758768173155506943383029908986754981937127357421172164923003694554250327792161312333652766172436993263922421016899399885845763649452253362080509025447214245672428500612695951531770432785360253958086933907681100116943381838112490587211295116716223029017652065954748779742419300116255216482281889966373028747892712796158690669966955587079443293754806236075083016367242305256384792482230426363358691719842831820829207158932930021504008852164041213766200225261006950931936673737557253895708176689277639463387517958773679148394862131424477607285693053663259886202521405848528000032783666291876143128660030397185195935291633337062619065579939012234397495776456618585143279684076962027825152384571771693502567415959578442577397844003855375507064004944356361215611172483786700621821785141224782963893842135934371473308916338075426882924162385698649840720461388046149956635915295874330321524024378919719756149351017192694963321575924193986921492943605114707580969287199709983935495221932512654984121896243741418349356369531260781703677811592873330905957561792449648554548772091176208089364223879004129760881620764801386606949356348657286541114326671891468998485707716706076635502209862236901849291353056601826098119212333538696876483987923594058328608342357871308731342694437099070439401885007646069690038121000399782409616430461926271333687531701298368493821829710655007722331597879160556885198213612011853413049423129890368795882945632471658859121769134313611535091753921075726383289976750950399409590176010991767220603171087095022662660433013852538267777537689880065001962419026303960529912587744473869022585652073585170485140583343226859679060399190806440271748594563418203425568948869461672432521707120110586528917612399814140573513128889930296635497641579767220921226620995785751651388355740888260593114448676989730712525821622898568252357623946119256426723661840388532550385984751855205166174055295037851492996836668643086443699866515805692968650377512360698671280183305223679064842904290352860296829938814724073307306094270718810073293756910214606530922800117334992978281440809169954328672762489360312311412759941247682464332583246008369784904882868714995634645645258634340145749555016026307519443660186503070778746116387336645030531444024382755004974685243621795950109200094726261937019848202317367348630304559626749766706997934559996877734337925772707482302711630349703523565257969022494257441043608410248116761444171448196693645389271046543110123304883699568733284646085827357059014214640025141924124073297618353280228921658850882819157812760610806605819174513992500116869740144998890325925420226964457485745658576994448260655519490739766856608058616158400326840047831228433860126486722722791810785933691515413833268292977513406839731086082979400289609790092497208155282339212131525420789160975441011036093272819710249984206614199536565437034029298355490837382501333691403538452189416363032112410486563934554550437898071165125442342522333284440977784935636194885661506037935066993730673935750338989017218773032238966780552940307007383731541759462498591563858914233107080820638279330140457187139801440359962728908016469432681120888039951014566868382349270074913822093555197869638310843085802728758622200698208523850146556007893612489080427886345497182760258304239706281709511603140000274534768836003832770732551794846447747241134662110837855190320630893010612860417174488571419685974306494659077695275567687526962933215453909461674463898420516984739922432526232119440106969965973453556225740462973769508912435026585329017690548893430493065671589592984196862514536232706064673886996798936226302912677517340795353342773522236128408650790099409300411384989265139872032395896748162155386136235786709463708960031173876029800168466293837678511302870315974638434206357462290535124592514510935718217564997136843089926303414199332774262157832880565575316575826937443043158463008897509181247861220796556840756122297153977642321547549507149629093990095770989953965668814879097406074022836802130558692462293543776334792960962328513292711172625642475080135995892956896379389888774609457099571970416204022213100366115750029526902158067032069913001294141624718022164995533396898105364739320640913628734546654043451922564887972741809607651794427711756524555846360615552044508977350766156617298229400984253006995819847461027478517971658395980628251714361788945026093505753799983797299827003801272844658561929680005400557183843377278518861321083424522391685720245216130544877001026209329846886302020771712761394885263897909766861450032893893002793147875408345725444321327385024357979119772952015945701681563137923784567690535674880913079525224101393732332633623308877258325224938399318672933597272890954694741907028307225132881177931724657770719624389493807282241248657920871304522019537127329799587847066870659168158266003484305671700739124557667346394153259147755422638208362405182399065672144649630319631333204060535763974761521215466072650667059061930464637282272561008925934202636032795231532021691174797521621814502738780773262053802917875081039980245681289843184596990500495149516793829209575010553452867586336965788174691967726568486127123551251080991980345577392676151709448181729982391271182803633149592107411739104437716546284540849138068700635561702220152563153617797703884693647220423001267651085548249166061855419898756301248623030418277519331251647860858125504775959211923255256792604654485437364685045816639043763867626621890030278080705221834656536021441474779877734407372117796769578672746133569516637624223125629835536683866164369757679225258348902213788219240658176854472426278974714478531821380658170817574371293273805534269370824023828601553467317947400165585087842128718522929491117872899274993631585880447275475510466998363720953100795627194827038004935332035857158294002586246067500792334787407455541118189670396637250200687874935336965096901198709124331553151556514679444728889642764226814805537566350838660422395345045060365466768316158737599130282411982695257152066528972487130281399843671997229684146299524795407999069248513317314895642705039253476036385772528541906594888566057634439262851357346961554442977037597697064179821244737703612892283248017727818355658306750525934328252099969929654539373597430352322351448495056044326880454598126334647928894430102176966259453553475112257921315165810561046614026379282847448593157564002981001060991479601038890430987918075233056798678923363248910531188392321231321000682259044622457695447443559020413783586927368072284841353639422915783139149260879854627907829093853467074360376958108521179250667721685739994168347966367879863108343333511001573068230016385785974752512432941288888627236929704612370035040841301007682514484803241239485437969800402912338616168007824275136389377446944017939021391972579459907314598299195499685117072518960415964285365462556855339375027942040968676912423088765414321477477211861819939905352434236138815337033362527782758629420322096499797385633112653019208374038178566817459770894277274319394581780161468101137708649998369121720167423527477944688679192103255265621961569562048115709619086051696306114355332682743255598311324532719382890260713242832824487924414800409415993941529793337992346968367442254626052185497065036886105545055154591030666569580520508083234013931545268545764105755832203002581114785816147554278636240894022028240744994240649897962756806625096045755596811677576003186294682411933302743787738708891950692298997208147347959547689107579530533835041816268783570118250478033715342600518073175286125241081287220069195918468610736479637539704590695342610218072552478233328459180551485488840297793163754447667789564084034819341180598332325172496374148228369881975377076553836844558941455492554800430586231801005217607222145352181935617363111627525974787154221401828923274309341959626446110281741052481350557987973159270497450397815618674733744011336906771235316561351630437528998360569710525629664086390579172969270416111673272045893921265410510445670449663188741275781672045185361651671055043508394962798392361095730354373557087959433235295662087061329943049083832843493981151532836468623526657689468192470255309673946860764961610577275826809126896429305695355821751862067081932035079437778374000747981507953013802216314972811411102019226563870957489988161101148365957692825970899051988261194127601243825334308828410160049373743529863113919333876024626614635567279394634981761234386604261187035702614501909437431370314994967745723382305404632616699766705833429937896929633886567639158189935677887928910914645598235737157354882346254187214685483894865160261468376678308631181418367724766617153356227490082311346165926939130812906879226329812561098309190858389140525585470375175773847308395486506112346596504267748847064761577117950893245065835781358047335755020415001979951123914625569666922111457767999740150042416407842675117889281817521315699796594663349338889891017857593004033853884486972738932322142648736573733670170521971599332549957280976703020155691943963922958830930547747657462558911736921658634879021691512695658310564936631874688758649005758380590796406723017615397230606685878601169286416891667113891121070363855304951994248442954174384277438296998881714127095651824902697297097544951271609190591265225359996632764379577437634456420351360687688440045809155910003146294493222408345199320352068597312293042411610086070340115736590337019567254569705671311983883996351950782293362414490330101014323939573995031581681383748804632223617792038532333310448182780869133324223157901821644097076854149375468924745488470476253981518933983058576755093066378604600682097819130581803927717716810924225008325070197840315162300463559926756135552814483431985452991251746627741007075557366700701498760624475936591777847169710008751419687199211376807221202752734227612921464785841832233131821017076620605553734143809782145648773481960443723020331321360846512986456739724157737781392410527376206681335406772862747312352403988704722653361201184377586353223033007942071630914867223778404451691217913333205504693366399351647589905930693808534020858269794259090469965629192281856657281434952729587811166590382429276613044571761017475613210862883879001600139483133250497675691502765588420145871550020859607948518550791326301708582701232920174823486689040760363153899737179037220983310234253822527550480180260953618407846567244436918775283993266967894105066660655366889232976671355696907588018734069699086151508058010540578040795533962967336730512697129541717354570202485692524119009780413634503462162981666393974656095850626905420158152561925319578062251711670543725958415988745287492484618328679483095361394187989184631658141051321442018344765361001760285576939233151575519156660022956987666585905422397225288257618981308494473539512645869709442492462916232826798231945395737481735557150043378455619408800238965200347141898187901343238672335372533546974673682569135426285611812092140808758819094757178388639913786705407192885606811974342388796858754434961261757048231080536102441101283550407202651066807267154489935909045368305871144740335337539910302618673210025885790458555400399400975496655469717510520253534930504958855654208901221084243443404849535668530265526638980884204320667546142024433397680566013986307923624941592714389524232698292826861127326867237010196154475466381129368352107260987629056595044587022661252168857672092065552331339400301708820815682648035176371034406891928449655443916396855175390476416343754033334577408160453820065289521727206843910522647445907470690536692854484266849630278063674256908328356075079739672773445763493698165816192131500101983657947090414159859904708609391401228968825838732756567253216384238008055519226428380643999497655765955040491522617503489615401650580976881771179406359858842315023318354511273026362686623979219398978971818812043988402333356297016740317820861692055656726887427198427948409346971142312637576012321643263645563741521461438967406795626694402034443533097422577504736885869767458141704129863088873759258103977370103358215681744587149654089017329858081854374880560488432814620478529944835547720755090503644913547115643934138067592734335738563797931003938298104821408163072873724844023296914698290750224614361548279165588099780549437171721278724979439983937993621432751413010841334198312819372589547576241521001460127729698995178559804637751250975660701441542464098762953889655877160625638750663595094248313304573632193924987792432115499615324906067058036620103644639503148521339371589283065958487128579587625119126826927519488036527489951668370162821558445245194791937987477365968327459683544097938012434676564451533909003984462069775024125920304092422092855081880834085869906704316421648675614989730190526031512632965817094007472769164940137885686932471248357987798597233729319976950774154390542081695611687364436680655185842909795007397363640777633905454944723879464999089403438217344238637519266597299162275720568100776440843754214089575537397953456032331870754414136168258392907065497409341445476158969810763976593470753282251964007437658357772319494254104325390604743674350948854199593471957158566624106144699662232300228410577283956648909467940354381819920406988786856837236317165858740621263444529235275713497951057789693873253807241674025880100704324862993385536980380754453073894055530414502828617990674967729444957742159058329258910008535160477197134447953497188212988369810122628225556748108699334226726102628750867165778008131955234241095956095998384417283479570721695731303315905190579088887079906073713074210538248426185522485630464134955003127667744498718727606120144146538966933359636240463346837228318591102327415908359298735890593440467040219405773969826344484786228355691100480042517342474022023822090484481983250784861135544997123845468468474496607275440209343567745077844807234204777392980070509907654177979050016412916046381241630813930616942092866607483546269579307462411111241143603711603359723902441476344101059878641777336322768572501817639711790824265335266753786780922641585436896891151600981687960006519410197283783514390182798711805548953953989094282476781368349221748580357477051079984131776934817232396176919199529721533151652159631270804494777976559913821602364788950600644476002783290423500870825456765580733728358579989184895850134588990812660974932949329591558962997360501019716175778724298246028335096119115465887937545334045797185815333053919608974529653634276798538664563220134843998541220540828260364031721242090531450054863923369706395412370450395196037914026288888988328387569551291315271897167868250167149135024062175820093724294251973107471381507444430891970356703624141192138806019311013767019897610931115957301608485974156232374988549710715115884788382495026801924550140009556904681602563804943209498763394070664450837623994861351204229841936593983006370229415610679060995360756995482725105404161036173445305294922671471059719444178035821503256887230679074938704168502344836976755909363584928017822666963304796528007375996705310655598052245597013503266131177473300447639117947731817701774301032892360490791720898386064968202587112202287950823003470072454851081833156303824480369772647892787084019636499376690322776034560263441189350321591722262454147195313264794558785930187612207972313392105168110954539322359737468096261675243772087066058751268797067946723455319773281319814284001475769713468485066447919683967712449497980687362393119303581585832614919508263446400277605496719037266308709630969568648771355016920905285575437032604995124913368122909643585049865855967592270323725092458052285152479080200175535917709869003179621362820706891215330575538198907734449877549443474310707246258467682574679902923617372710728248190364988985560938376904809989552360509011637279554027637961582695347992492213101578868598365836515143407122381740760648804547696424394051601924439956582965903552608667836390809040624643459109397422615550520757605165435975997379906765347706468122865958922711261493926771117870917276825946671194403406147025353358361600240866015335681334152256193944186914481597306339068452244632723556744751014991148656195224504351763579753446664356075411149991278860174897200525326303034536235326135498203669988953445251210255487327118244564524144367741689742418284591492595579380049577827609639269877496616031553006805602751364301107396041423390670452049337054933565461772884863373377060945986963362373443950938032030112888657803298529011197945337331357818473129114735700370376516709332978233570703026136852200998167001400703476746772227820961829674690690982016133374533643548217149284597246347536814713964374863784070287128286025790354489917271875171839597921298225354821649002603235644261245544525307650210478276834548418276145530492986003330100723722000148467874314349286682987992877028834568351644986514298575022698790637251690852961499731840478946468677211883576414283781593684143026288011721470146682185994891682264687447775888344217890713403256095644477121270513080335111056263773098333244584922467138274755662738678928312817565851315951520627776930902263632107297059451158390431447997622782129559368123981743991209607598198658469633653690358636866886518085459899023142709495130875979771337300936716315260028356927220222024878425282637098319563168673288972826998555276442088767810317655904779220680562914090118303031316063264831447684366649480556542565477164383225712317335102215181411959086964728551449600232670001215268629849144244110035624809981466236664903817695094456659814258913366885321948813730881276852980351363351608440840759645929415941497116231795155403841775013915872890153895350047803279434051275908464464332827921380018330862338760673735035876487292795880527546846154813393393628668352547067073611518003219046855417991108479418867289782811754884374762544570320458002430867311470958668789756453550764757531203023579140062821259442785312918046920064121249459660948298880399313070070899976192092922572630375600536265770038676122930207440489962630734644344301426476844606117520346564842993597156539267542751777703254125063221667746366200319967554559701401844782686854715356100495610256187198130183864686149349942876039798289523291878194773294205911350502456133350213066239349387099118827800541875707359404630876899814891074505681519230896311120129868280403475647141598457324654968344004578838229154299408703439178389056005641889350921868173957294315774836779421830689344039804402979199713970132397338157145224381557731638629325459344291411381222221438629003430746109311118701025879867588756685518833590076443182543301443588990952446213670337797972775656004544433513074193149056117346425366675992534527724944204694674806347419708190646193770951749924849642349211606850837910893267059251789780206367415559316081079066756153496856325090792156355876282933971657962131100148766905077950800476107677801220667633502620055661954007374414880463033157948738134959835583066244783445074369402454458971558001323615744642003772524640126723637741372100566890537156730888058990187641223632805846739396127465789487529791856802370752298077988741258764435801748425432679823121122128075309898714628761947843890663127080336984766053225204273638144525682159080489690240459929869843631405206072902457502608353985130998932237809769524567772227198341592633460222334493486256778203590537271612707850526459415060422325255741570684611550288100925598418273871504908063620312628398629336389324598237144543735488374440996345341624249582772479647511978477912097068675203635771283928237481622117393596741547403492479795117779635052248250523794566331298830565762427389998144835565739277759230769432044022375400734422848275637650756051245479684613863767854520342838366353923422246292547890255202984131122589458729375024967764458887331425049776850804407995522261953067354189174321385836938557773390738744585307655502790370412524936255784287119852028980585732930776090700964213924512718681624430575194533580512427517546907496568358903980984738197353445069696795563767069696694840874260841664342818366019011166965009672410542483011466716515188160948749899299426915892344161767637048345647626332945121145180031129075725662331773250917525206858051626518373959283058957265543393743560267297992538080141073088585748446659809316121630665319237452167496384020418171487513659598826646847020845737943063513841214028666761873230156301352701481948888462035183728390284182476691458020172697708400935729087277484049857139136659457477387119216966900405445870407953489972583843288772382984785971366445457109857565352476052069579337722525443777446525451691164351245970673032880805240649154617936894332320935690475940267819336305580504181760053586638998963303588585640921274515507445566748636118007085026187728656396972665118990736423560511066065662881094885989668904812132651967134524426528517266708344485816087386298153500389702711102505761064290707091266465018272824600192332104242495378784135536648542641067497045335312101149265241872989681159532820487922864805544553840252576187344056569263633192997691155029968847255181294239836784177255831672033564644926379307818960244439126375897926668438513800499921618108207744241886737778409174801255583468428596951757664165521625068149630497510242170756840622563848145634304532960552095888322260231672398683373100668132090259111062461762950631706240804900720442090883736193737202417349816366851985894666880638610500751264933733892978946214449190720878486031527185403142303783523143734095866237808627021398463590081348781643222519494437691124552836229544617480262982077491315432953501442617022092664302555433083188681041378750946112589534819267534253950501063769206797508668467062900837296385075515057045018566972210727410883263430177791525897499270777814148617508436118615677026669223358759709971971991490648532156867940697391044150627884841132148962458237912792510948627917216218695051843353146561143191017075607368014170101105289739277848558788749129452031436419903230317284222438005573495031566479780200487157330596314045959295972826073892539873373691030194350976438850139997926226928767656730523406308235388235252198293288329242909243060056814109270449472012754392618153690850401211745584803914462551556504830265125161543529249770389318656518828820101944223397505360745816732925755890246676198051935950435339111721150309169017075410132717465622545350580206377379487284764087847374453275759748355921574858871975646781155104881811094870618031023582533226577710885819945324404052598876016094738654345733495424950384117098177403831354211948556996451487185953719099312246420892880505277252089766008604295017731158273983182501726316566996078554904131364435845473239311449167004228804792641431266130929731688815098417793010266329449876434529811991978623687371843583651382486294447492281634766843591971621598842925818175811249235862294669503853861571962417016769417348591421798942984199920535930114541782437364931666727306356552577037363930145004336079150137819249758410385736854110497216217838004532464933961462395425452399945745983310251304484888339797576008678762219584938152054969797295410540003079395265188697524407676871651193081421519089055922513766628734028092566343813060252675776167296661547355775381008272086865661491587163850883651040616668808736314431600485037334328935525692961289225376282254853178063537992046380576267770603049056351889266775030023564750660027199766346094292986619800213397950755423496917143554817982939389146967734506038484862073519687342613264759145220253414981789001244870070296795316413300363721914592744341846103132763119025823297428991140999496995558173302383339590605379460281594816694924563787790471096871504062057438822227534410591613308199596122412637756680718319642591616781577960510035030404316437511271825463896265787493325185915685192331528946958985195858405975994403506342494274129236879148248746792876057001185190554045479829715024395299705829078927821452367264931090865676980780261140955956433127196148695511281241914457165840638048367411923001149856023252109061859562978274103067930727479185826713845426110480599437713197484408200316930291409715083755153115764249836272029869757908514748114503450253457688373702574449694479151102007254487486813619703585716457352363491193696937062772750750173793133583100704596468514790806538227690498740150104363593638734243491666871523312039094802017222563842835570100543257290553803541679810732712567216093974543587170567280333818830202030019007912502625906483144716675021824790123866714382254989536254862635333790431460166598290586018740525736324109784831132880766612780887634088328073623646880458290615459090354123135828605527548741160403459004545651142167351299578844622287585382468440461477508951219008617540278585996244043174632652386504290227078407600224503125492429710843162507680701915057769648266300641678882760513232429699023103451511898719339285344126398684909215519051689136884523375856346571761927076033765342828538150307869392800376026277483955810206763630468599731989789932933567462512538319240577386589975045754855631156639828965102133740942664915727374665397579051367977438727916257369726412005967452440749983723438049679972396753560005381908611667015434510146523954786141814164963791134311451836345317120711268473331071687879692482296761392503301460607859070644688150141765418071675211485728600620815273257148551620988474445820378666849320084534875116958751541279496927789172924556715181074330615428279441113601473575410784293457564305104167415565464703973469903602669590992875782849768587175971590018937614504506700967725876097249824054984654767042340365433876735653071123812060194056815980974221061080015740529949383365125232237117067248395165293829582745527987072809761894598367493617488076791179522782579952815014940448246968534327435073552571454424657728390481848858452100271086712858548053869363581899157428283963443484813859524529225767249520704087515910278270294198651935120480620222616354870548963303072152360278566667800437986240162921386494740472230952901263691425025313149497943294207567214444449287193714281741416054958563014030023686946298211298347556305898327509419954576884454867002378177245946538812394055775976752620851999818700681370938960340161353328570575174016992481464461240468080413461746449685531770697705695173278838777130996267634148557365012409200187264171185630509453632051794773780537592718779200297376084065697828477312808620478040097832882220131902107880025851513121994203218150112063505812683941217180369708196123880740039214024105583104957512561644173647041392385674411967311431830313508507741226217564561025986011911546104405497137374479907792818308647404892209021690986527208052837985438452731409195351261975108696531133342625051873981258938581226215465418448366291869693134953582841780652315453347812253977187301502369085783699065434640341170986022810100322518153342873656706636148193632267549627459655203546415359719815798128645055851476924998253941123971927521688171649602267931141193075825355019476604562856911322708838860602812216400698891275557804185725355656123127618445285478310666642096027417710416998398960644672526474084960010989656137373170608466424123244058088667093925339499756196423730748834553537735338603031518603581047378031885804704599457386618756743471786537687967516082726395015755499550198746396812499167310645386769222432233839460827047926796075058339464218462166822233904990711275825630404652201821932230778726272844135036848176945604409166260981325417692586850923356116173629758697343428119097350285975345374304652398410973251533955270760034600066732233352996072745031521380471706860159408067948597901197366517358814975505136983384169453262535488427206149337743474587313781568820497091157242438207655422341938849706107403612830185795261864722504371965592164323513731190413176723189335411048221452904371703378782687535903780379799294713533153603347116466144633516808956504478367200133477043941949384213835606996690648795642869808932046140868517940624624901205949060309321470341051080504254688722320319608027435029822085502929649090712597842240904354168650778500967619507160918105241251427395412829784215658020272741173536600620787152753046083600237437248184959656190347604463192075684777256010090047755497877362726008205075495591459057567165745544857160037161427275618735822077063161960242624175884168633644850316305038717239331272943564277481662075723768986440258658068256802285611402786885407986366883527356544586007852208826059548218362940972080888872885946129207746698712832698137490817242919438440616859595776944110441414196099073478398176092231656963169543088212123605512148230412722967253854753307549522800767472559803403085528682774049020527991139645239728833682155344096296050630636113718284441231096001112583687895546585303600429075683528801854858698311529013643602762703410459882582057851994679450786640926543890073828651869090532033953211115147664613188492676155240071592266267352371882175404838143045891950509956122004975179388439328020260853738630981269529565799236140100357106873767789971088495090027123513424596361352998992957308862844830914382726349348979369067437042932630963441716424602914248122331099883721313826556070669342918523269616260708802383389906754243739986237611508688393869627357859111165308084165811473280340511018586420054304674063006733262251311979247670268740562785001209886492098266504659063507364174252194798607826812916011678164300909199736838848500754625676076479142640904449929223873163467618773365926706246281441540369171529887406233187596638348992189267232693900003187034658852313977342469464475974717301638542362477606866541701899305335235954451799422309666572151025049517815281407691401175865981344960814460974733554345865938167036214253779076210112518539410209216989122672717887117042866636841577928807081264315711655484864963045654912537020101401721011684105574538715267737845366725936980777654983041153998032161146191626749598428944645172267296348718656417114156664160505063166327701634998452844823132186057266144403102262050846908089068612267026746208050858477966227716201820605525104548923526431291476758142274985698276120833873978883598480475629103241845706677359752870594513144082677897916354267098111346102373783973264265840917404896947921066276959086104019911932382117475302211779244922234162982166634823061786186496126463634368406711084463422003258272078346005366314688390390718684999654136940706294153282492513128436614663872267035069483126985193978097851961579340055917439199343747828271086464944386622432227941968620979412907434445299145399202676068837237817329850909710562842862093414340024684446690465369068161223200586694045555770503626272547616175908127440966495301085651778049685419667143430264138671014251659434957976980847970104642111228458661085270299043692735777759639571054052340499463847388435146629940233280349069227104960918097504327581606140957698208519077574503074500948520278134509969758321290589353059142664382300962196244283443142810101623752478694973653237988661335837509178882778123985882179061600908233220369265367616690051492277020479407030654664968484481385380628924477207587057049641709065775819732995689094797887761658556992629286771763011900798696978915319826365575170257595270015080360652677321727455974448830706517214603005713017754189944878293053078452864385717700001595476513750769928266105633762786054896078526672006021598426954675866978544177315949442196054394494075053868396181649879113118420685938959916683174554980153501536658894792168457532989410480571691684073835859588020691749681890564017091077245209910833183893757508892472450973442292816920041390449792708662280550966509092467150691126904945482895226699180050978214971660386820975514694933897753937815590775329089958728964810543928572991986318689171668591420501058358504580741146695776835010725642300057797674009103378899967772825938851769206639220212025727659398007407646712078003996691082292333241913468361979232934657298026795489990947777185699784761476066737009339159127040700239875756746306056057245899403457466838510892841478297299874750072593792256388062712512316964976170936052225574546184572399454891568626620027344566462083609410055982228008694148626722555486980279178085456536193715708534104817591121823538124665494078909421366004534080729192496044275229218352078272999651196288087097291834168578098900914103324277829532611765170215380455529681276853284203680341142484047279657919160162087510392025667416067391123910284652838459452023876446234194104447175644981700887222355520010263603960567454407272145906503441125386249742662871034334753491092703860686760134729242119835297409710478300672877339758275083970792682847358369311943857686521794850120215413952065612747003350582518699541713445277710029600371895230504981204858184204766895369762291775423096188142687634684229962661007213642601166816825529494571637275249848656866015659381534335876212714421959204765746142832641602258833025170083390569025030632666668287378066124168321732997328775714259775283228983501913072015100385386783242846889111073414168837317958808447008144725720311856774570554958518112994402076756917177114321902105858614518222265546984977778584491141594950317120164107513841427540714678784332569962882568246221172094162220610430333058449087038179919200292832367353408764291465417595739075277880116108273859932140033276841633180806816042045126548293907580584360027404893503972676048949330883366717481295104580324190146258922461215952328723027867266839689157893010972927840658290215500022000939049410522141151684075012540214883049846484948062351235910672805249068414024580091666818526634844758498448529783493282281927422685443850836689110004582287890133270173179477681430899460867512841801412492875072723628582029460691538542672678823955793983941538317240504255567292154110818305567394369014469013135093539186307965631091224851438102936689277022954570313773306559103705615101562529073889063538347125448923768074162000153237065581969470800715442611760067215149720569211224028933407274079215354103646584117628092862865160850032537593182248779891375054368213287650245066675587532674840877918630503751095543180417165159325082443881332767466605926282108992917274406115236934438099833313584036678380496679669350678656808226978743798106878667647632245882570532480869754950596529345571070337347305023818528994228500328348836937913086250014635226668851394148626130270753943518633817313551804571114585082435855627726049363799145142722493003352434051430279866909668888616776152606139273932060800667954266520467686309219047022136936360860308345845882236059603078136532326958276828541425122991844593361158737602914859798236334833594467834324926434114260330175569887079846209535640632669428138387264339587875743354046160376714255354576856780905015794375665813809916436299758048851536107445451128249858669498617516560213970301661968839415913837849151012079870482232264112605058669601763683568817533993491010112266282014826792675267151681414496320777502762737152993042614716667151974623120794097190066771056979930575332850480831896104509164581100322794459386235376634429559099949550847173505566783526785285822020670610295772560886028528372440932400707545751197861235420496219837088386373094444166550053735990696170704760159611631477762192100658536212589657144060534816014668277284550975367016048731727138560369894617730736755083815691992259183069442359027187168475614451849379639010473255305891963119383689167982326028425621819714038116595663352854420101130055409088001739624566658481806685547717342870672056477186435359125094307222662684500463749591852972304200844774085043372391537802181127029547561361070512200831696747629307202157112529375143290649857819245467747010061980115006016934662847658019686671612438485427533019826405797169425790095480130920286635950076231514045363520391925908499435907706782450120891601983819564951562574309277726048970620857350500972440485173940283996216238116478874161731785776094962870387504141495544324769627947937486186388364218492592053872511186666549560608231665935054076157125926144267464988451605661082777138955042994344049909047210793241563293897493377960356462116813223440376716740821602046658298767480239336928747595074116590812625485005340018646365745089770945656803562717933971342565960053471673352353838006155607341434349355861033398514218385142197198388752671327058240734603811228056452353784542429157970829120705532732056042995585506302903076149833893267688114032847301997017567979937962746347427520787155107099862296495665256364342817871823263754972620781777434433637085851598784088367253160427587268150521632004755365171096707754704444575544258785058354331890193437339321608706381208675328606542175160683799141477152966031999647614610669823891961501763491981416135484190024089200061825004196268539164993658701968271125897855506815292821713756446736677836999112206954843276314236577226188325098109868309311735194724844885699859690362804348119591560792322826356710027447332037869067826202160230826814437184080822125683667586724858396560908417306139249474591434754423935878122001341822461407906797370849868010520216364784340877988620141967568680373383338421643884236318269709152859272536523020856902094323003819759043996665746214730623476321931930639852304619974685735240643002089311373563935385561172750710987163999697193176790525819144925794232668228748795230625935732605763675715751666452849594420659108411108814039721440407692345990439377470297968160002204380558797533094381264190420814856213512511106231318841234148163369944222629465251720339707058728319863890407012043712084279894848244866057274319458654889091451667346210915149874249490544728926221199554109698662442630232478304051079785434291971948144938538254206809187031020960958799893175939820603449069339786451526312685407733782335738620322196865337294354499547119549715343489171066491001093559359124763727674066758779609033433610045851494187666861197161914400487267361305936010325448533429754684064172198176271554620044930843891748079835483846390579995585247612892426850853776133143057849642667999468490638499359086013161876725902857483832444078234019510688864496413271557732814290654868739978109420990666100955615364418213331163798547581075237397028637483827336963356822503681466430194454365247623658124586550854587689905076021833373843869997687852722574108793901220431741059053687983619906519008754752145801474352983545913287772789044275444360182660966508068947354431858647314212733358823951887646845631411830442658869626803203901493361514685553823000893595085507533565100070967656772703749629345559166843478964156476284628447066495154229430324885242719232757532674711378236110392289729994710409717660976627065820689600530220238626314829503025623135940734464128856009306889711647079570573023413945193409006427942349201759793151977086387893544918320943891237571261663557236872182827689377404657239621703800805666740788386950733252586425791680897904662217617958737469262784970304317697163931053904555384278418209156144871661576354570594313979737026251059974164861218215730577133599734570563973110888322013952518983564180706140119617723391963443206964698357158030582681570016907141719240861768314363753327757322340178193293507507315119886448142326447894001494813441214188253964699110489623310848823234412553203326964098633198091213163382133087216752719396998082106004656323644558222616751456946372964732718723617442775440913194640365831078124049021074441691678640502896931895937409458520834919040861337224227827325389954597285709194166834354754553176903620498774859412906637695803748460693679023245076183601491613762821954359293843492167430073047929972656041879568971825060991701374674347641974030350685971719649858510843122451599362985533464591120297721659067564686889870947876878732810695398531678396174436596056871535101741664282681373716847970612771688472285022871516564233232897823226961654418056314907864308076336234485753507439365996469362242388663442534731583260710801346403971647210298701603074750524908530975860498915404473022195135277095274201535311237698777251729659631406119553080694798867553264853572787311154440883372516423204536938795767847763115132690462699299810745122069289377275928048498843654630853151197634321590082715387742429152845248858327350968489086975239450672587343622524118704808339399906365396760527301082188365264934141348643886718118661801110301801511790106780030155873644423351946312578430772022898454962670856311321510790526050428351023946948597788759008096584346567533625948439368510807360246529239675664594640448145806523054837849263190468163773016701323098022992312396985576814388699102359974738644229797644751650212509764579884716720963604526952500948512617108976004527048398138574684816260823970874287118030014178867214088788838642113909868045910896937669679921747351135577211299752376744807966020231425080144826098959746607140234248558038489849437886127493409979658074612500258401430110353466706057410010326990700861252499253708482184334575845429843368918342791656181360344894577926664008033088134966118354829086893468188220520673469405468934291662743654327707159551734930940693890810604410514721068196331794010246957938819206563307661781897402939828303576516301092241888539925222931955310505502612236435941151335047137113805482226046886046532121399993747296908363197105218644589557481679502878809059915795397282948784523623255895276569497725113160095933936954074493128274933855862886319928402329920988846042942314004604839982893660859731171735747547846894663069791500150538694961371592772537553498897580046610258874156506672222883189977322321539298233818482073701611401837663760616283847848820742377008522774214571529847614773496260829805782222287492479215719637480529130575455576140079394355162686297322156596128872674726385661011208935676516565208656010105456320743019739196934515975466258705619764053609479899743316916457334605206308652375575988282987364800101083576119631819327520736786188703952694015626610550082392024017745653875686540340772024279914487754049407013125701212345491047616826152110649162943720430263619869628942778169280137691140325025803582392082392397772393688771199845981144944089067998202633058300141063703429931172643783406839784836381456014191519409639290078939676763475100637383097876377579767936825871674895502431253521523821079709044435580056385287273005335502206566691590887063758084424640312964159905821119988054080362973157317370795301239947593918773855140324223567717788372634385166943197197467220667100381784760962628815837217682606014569235406783962226173960525533025574513845522582719165579926078972339367280791264942826642954149535941668214057402906116173277073257221677166610097271239155672792952809732703283532116354968975743565906721775484550325590563083997011236592133752173122930410645383575246783424978006220715800324520355128293836395509694736859267052783843249524686523893657594107956339752540908261785896817274758657008828360762628430763504662385865043673003953807181705683345893438241079511584503322271406822255730675078221785078762509210892636485386526041591412936028345410289123439014200327663175974777513385142660469075846384356802770271566941223912218378114662923394005137938305326284899754087356577927532380050538461509086357219830574457283091232248149923264506078332932509682520627857529560777141190804742456855724399227884526234417762183064800226588728387803695696052196539888257671204810733957108211843700830403742524233010426592193867006686738483284574842788682485874559449401073455559276947463330695278127987992495359381507955137739093891033286372300278455794087777984543643384688193572585560443011644178776743964216550217457005079656727650193343726913836939845417841622827746442340284746513716405370262280680437256699654721178762906886134898762858260939162443521131389058053724938268158551971269384638215583050945314349987969337695814741301678462186921737030118738503104520850288955938069025053609606946119572597453408549660374981773436588476163670742745946348223235588918174393190800445255190763851802674828516387239540558372478162197438229099957335513964434222508775212488722569105444797308999400984002985996142549681243297258861741347309866873060733499461599310364658099616180990323088364739272267611424043901776881106584384778622995061409027623214540476460430262069423370261862767679097257748176064475147740734134468445602552470405250152552250531580270546784311693232599275666416630548596447979701206447043374727468868718371989914885694819672437241532873956872656407295840751666740009057649837470741442397782097993225064373916568701031295824705831168363703479342703889199332070772398439945762479816374149804664886247439962461806087288931669450233934794279377845808807741442767492247173242299028682128704431040180891188591973975977670174897347361800399293922584938808953835933365375072606787225666957538489612208277918209897925558661332190232060532198280567543944486728974861479374897606747449262777803177169098206043839197877660539995959039562803174491642673197628437118218303424847910017647776159611814153594929718751248753924490951068726992463294716666097374301738786133877103916723574905800183308033653235383367715032097337257271444153594084135376664535169236774362051322529713471591367516609859921019850497800290907142529674695049890160228151457695248682174427263677675408918913962902365062181121342088066279749917796449269933706843755953147482953691756305623320893114022310475170623793916819950967867501524981484260159307618524788156115987310062292507375101081864156387328180061482135450377222323729541946921769603609466172948862315226542698114640722084133385417378847861076124286127000611387134948917561197060726655500707359930104534513930386285740795621754029744537752525925897366375786874528598001500332895656448921714477042281626671704307551220288040823210565491818558337592063439782701522718247702782557474916816000580930758979132778945370813855893406317919412387795675653996262931989107219301059955093346943840642786100628990965845903334968569434839602437326292164347003553006674018873355022456378855960723762335263025213785969289628808915361435088404745969395473471308638753720985037603325766487899021747959003749576304361080876081180256817357599230737423765472213478523105963613223328147340870206141120091830651071312341081600485947037812574033541715155363063587215773177006880205446968135712700983404956076757901354312537387613290421868876962719843452063899286830975043073670553481830114995164805952094459762518109275325584093195804684679693957717244245892160448109002626686778813205726231024848165846039798547643951012156324412316625380110676033201501671462699322799348845643093481442216394797954727076309236564308038788731866817970158991337203297551216041732736925083457478294147624250513809667679156267130444164004068966003013379806853799534538215307563805551091675457726092607226506776679643907143549524275691776150443223431038331695772163790039772260772089023222637876563359132823836166498626256029584383882734991723460214218015316511050560465377389698796999835562167921171113172672087565734290604707972124804405398973422372880902066998669333501121330539501105519802852203808645188369913743410684667712742919230166622176498124025608384354149395229955902518478034978095423028055754989409738891164898977415740593410566837056262679133502581152565915503597787480141420863485284061874641575875362950088103659472326565445213435067565883584911925725910771766510541735655610242154494033869641430144776258771987789402227247554411965589386547626750585625671829499166371456457170924321391653156800265405025051044207011203984166668436181314656088321679766726937056178062013941204163097563716540845934340212596243222197519874537984554565173840814090211406597261688840322902904879218115109484308966110396379956111293711473126253889594936960566701445342433888256199159207676070396240696424770303813729079972168245426635702984793487401647943728474902495149094137194810124378112279395637623460079810706179196430214782871031912347725607614996063884158360710583849750744422440434063024607621601420246671959540684348722848483571747265808486573880252735304749350316479749902707036909667818119260147432488635845608853718847500312857534208150036473759472470938224628426154067275651260623375445659712527638523519936274947289139486207899214173655848209539603238619073497987850221831085094274571228305724580456458496868312524699776239722107848074549418539303485066664321794133256116592822603485029555911948274261509048077277192312404091742734636183115223385331613968691211402184831705728144016906321397741187011297773547469519529061201888409284320659457063496044722042804077871715620877131101772768999669461957255784703489160160485958610893670513959012526779588765526992278247284478860774430766778466523374034490003539238822109748897179984924765358271586131844465570450888264819290076118463723279051150953554457749440344767183529154373296516143324952657699758538627908268322849019526192090936318029929132129856960063006751626407016187267391997599052714222838311272582737710148888442069447808165213140776141720329145598670252344040339510421088575593361776451579936152739049765817378655913850980677270923094595817234644350700320413504636288507979768449209758816678875642149605846197242554157830168603289660616434076885253131959766317808387293763467256274284666857265247226443494857310231123953930613488190444813218227399476243472775022609072252445658761974281742259738756255034588312338844790987702211083537682841562804877171925622581937028652388272714747801651259065644171526146669587436929925277609540250991862543381958782900301406124504236827398981729013919829425049841415080100361995813609226019787050131761640903375533705567691332997902695449440718708188338346534918791007229744321315007019389903335448419262834456438959871571294885796413104965747238904489114798177404749263444130506459759948396729936913584585953045657888604315608607120483508294744198446743323924466984559545455729083258120572565904895092213885817202756090640957658734412987438636001052348321661321571619324544377143056374053173406528809686608844518277031112791781961394296365187797825116610504219584149707088104972526465760420971502247599773085762559448973558005437723992231088425841532264131386811092734327834064797577710190637211984635457153823536147466813556868670148202759327279303383849651158924544778543895068455394977455978071390681337546637988653120908524088377561855016732250909544442177762005400637358715061613232966420026752595022622950910735284125107025048949351281231560057355480102837687756049354899950795169942271035098093057584307260480926570246821636204262646446261551134506105974902516307431616737425196600926051439753011799306188809592051196969208124526730320666219081505718084273000383675707157786668923440491355291199084721585689504762195538407484833714960155503657892842282922485215959177713263411702917600445466830433235620486940732716619441843612542412452879731192138961644963058044847921222195483985257164826461616379183479214859254565115179677206439574256908781402238912320836160411021488146296383295135043312535665714354377580934128548701988252192154895301875219888778067437992151635724941925343364812370689451613806404277642713783577871411954338096235369291944275820242700314572497055107368555689908696070335451247746467821966605375849828450932044299245305564707074854826608305124546743726019252903198463640606729304696266890860103079358983153873765417370130542684073364483905751327442744135415111737316406031157878166670802455071551365796336449807827473119966634986413173823777588151578518976451601197110869470364669188011230365940076799843287987038313705776212537605113137251088437130741329464997504171667989747557300368022662109352690565534104717563785466976893271459795482771078413303241686456778908318885021852318379560336450651241384244165799157409553649333012293209652562248640985402832685320125636189178640341949012431254643932713751076745021535872078466168454008405361777001530264049973999130950843932138314715822492893957660986899875973637461124748633086239929791588577628236600516492730367350354234075552811213292426070872899228310206444642603213798023065260502918562188414933917443003681182196159978578031258656608976992169700585800797109400377386985747988036578457570197916943963555730803237642472495482640223604896992705779224003431081912090178826804902983999678186164762596561595283025491597981945882073442125541985590054829311153640554497330882736961650738309330616941609674074407403662832881502818575644909178191648776081624006484547135407993944998853697065884984681344536529722161733036888776333450852547679546785650852443838739030032790128965376532774339386557373071352404085779180540828011939800563707409644968209463881990583871473715767637454123144053335252214914321465446588721136336699835547786932705629158797571010921981206915714688769627289348745623788681329924613819772236260672159566997577398628869579285475872661773956606771776995165860857876325965083625736888292463049779344688511249350761977423988783754078652469462299190347739489514040481354331141804094022476127913165199700666816914952830651026162152371246887091260597999136317977156250183683473242822090673250598241016299640332843892800140666715349962176626957481688780569839701921005258953978250807926514403330338718428479654592183006421580586248660277777547771707680406001401456176411664647634273108044131350753253866770033290552541710490477472353859566069280321459508973761048378912981795694587659838094848345027490434337247875507035204860092284256530224832587092020348685956976418939520706858230077407821974882946704151415009587283428936421695300289051178734764792091038910668222596868004016142510149426262138616327951242564319303026208300888984454514016442086674265166497801438939347925881304989312354514180083444879190957655055106574867486581758472235530955241459491405750226078200798152312115245042247178534518697877012112440820782059423308229217865421825704920759032948724141160990124214158198920692366982008771144596662828045274935769871155662478562115970375614403013484420696165554602043074375055476776020274575842317121217511453502130748344690868470825461366923972322131707344559943148655012669634298327292167959481490349995688576773691491555573994443465155025757009378391946207115684183548850721495712527725766446548215566135751038421366984297183018599888096231792138568747581611578737485201810474474087432624746320950820999726861102558409409361258565632867861362099959581591779410939572109605406710068838902471984625838167067380349538636234439601083447440985705903847256934338809775023665464583160380105419089965057587237701738301902789845763158887441194101383322589812450323907416696948074818139927382856807979202671052069963351708063257762585622438925613771757924026376515556015340626884157863278610851993509542471039880528759428365328078797081255001386844971081193483869309980913548342448820178472601131722794955606021169278525027871859475886694107217648492159946666375936401382827329067446411435113696448129414889594808354193050882569996629453609920229549363244686981399860612128067665367197789755803860733740243875365383130903124448379712417496070335865632598927652051343581336689002101859891581035511841709768577024649111143394613220567742309574067772446553993981211515084334852735153830406662322525230301822693751010923570152971371289420525426244741825918061883431351846507606717458387490057255285953692657573336394831021878416374220472698938799915049947198075176262649240582894389125464270528925862875785087452038293608587776953139111954239575153275303492585341083829302301760737986197680897796388484127287771457047846657262716058917947777912601478001981018114946339390736365090126525965605379895169510403994671031747618200784808045688930889391550473028804233082130012256915773261829156730764895661331386116067444319205388829867540671743885634940530387186500651557544526543825474888779421506473262610343154868803922084818768536510419639046172972175375296377062167009162682108184772264868316787518103755047782865253303923253986188430508299527822204562605257235524023917707725255532715169957901213765531516092660535292289706330374919861509363124006590660660948562113216517259395241026384026561645362871507327687475451462483530028192157756152654887527948408495980744487339966481696234355174989123929398439972792869942426698425910334214322051501480044300584675727362003606258564164941114728945146782573403817767630765586556626706785690074603937022795212201966351794285048893747765924753757353187056005919773154709278410896584959714438897100029712290579698174437779772185786525761481462304971618482472684138479373420080014952284977163501571043301818856930838316062225550736405268193117262946550377984131293552479727998900501397785734023240717591385345860776784014745123394571859292764763803150949966363144425462463487583918505218771966474736874662958129763982215177409560536106243180468007618046420051572843333721975905776599324836280123154223668904321039445026484706158609914267088038012677408184827075073417130494118520214953314897170062506977353612399817833928999502468521276903406109070791417608250168342786857561623957690667037936137707457298969991136796461496324573131975427247107359631119668152207144192223573364111392235236808309345379181580361997111225082937865893458354021861022049584539093127058345065939121092782695983454343177132918836132991022656267330730647807743490786311486857116378247303988542760479571622203433982756884646393232363718691928948167670241739526588701492193751485051268859757992666302418070646535258939846618946221181916877045284027881370673868301382337782036397952728116495037206405260364058217256784417269540527677628109158679239835136778728300489293705722789767310068777328750193433233760048415918459571485653497320231883894201023721681292215165088273847422941478746994971453618627357363410934348740337610891128979898501742546677968267242041266696835650624819779234920008276253664169107597173431719211077434036553210330038002921092998011852106146417433756212867021156658334349846591852053373796073336711702441938962685689468320848320762228792747257440326940304059071440061562767091417409109030962095499516624443624389054253176054444463448937138776587018332799096543851853664355281624961204509626528075928195790748391257630605937758064051415463343634802642336994883250041905879782634445478402161511590745030767611522324609279999119954089418380023442282416985912335793577768609698715775485698765881997431410705960008301216447854410675278250832401111037026648245215711814325481062941813201488561199046938116145690016262583578234348306459466076431853984769746316926378864481883772283328251554772576888716363534030060379154380809415560989244851133420323575037385105155018592946744146194269762434641910506820832590665962289135671450709718694273378670632981881983382142796751070062063611142923042391177941906557532709174414839700894144411230985078866816267413894722244831687480601431162437936404392800785409130416944001559653594540189712533615211775798295173947816171395044161594277318436712074848932221483303931166499549952100075032202325725790515638508015025030170930902292720806969736559162557971798416458094802648713968056748366349941961296771240875685959722260548189923473757626282262310516237103136670493192955088161501338666114447887825674306468124561972669541041633051096475120652949506881551853049248088904627503645918601771846730503950015020452544699514389203459868524284139331006906715897414575698719476642751210317483243600202161506955341419510076871053254836286610144891232158658991537713537552539805625442433252291041209820698980281179839531151656390420896039748419698903518806401770152274215663300441643326861787415461312663998215708161934913003712119937423949322914692509920498131596412692199123863651868262471613352793570466036330802699883804607285425633482402469570850029770385866792070264405449532063579654401780821907774093045449723475081733718748405709777529672244009367202660660613278176155131657800858148970763206505250646234770460269942724565999433665973711245059737278652513872722674148539250985402784767912156130406093591363426132697060359161898726977470748907091181929082764468486144422575127968571435790016811802942393314014036824342129176879161273454952645599447953224316046621990113294471583198012414546395451151944731296169251532700387103410650851648826861449347103579783111149583361044126515907567335271873864690269831229199747103055869257867605511087965407800295213864104395621498574694954793698544586219806239743553448581124715466133814229576316236708056174904875329093965175340881094470474088259815930434458407065622265476193263189016153191032470899042361828789935570015149521654633576302217210307306432344298058513756125168069716186322314311539135723355791639784461618754373330699694480805418055748421208721971527131127497552208281429579443165411994633208131002886433526148939164213943278242833124756805051965062685490330445507295342415127432978469596850122501312327876108124892295293692719169808546373714512223344659220824469277229485812807529343685644625268766972690784588268153042821433570471482698244526648492365670937177166009412576887602782740438914708293939487038735651851418889905035239647165176805183174937702556493804365825281438479303355720829720027996418408859798278878662990611449172908557496165247457400737821297706360966650098427361127340142695220303086976120305280890373784645979605290850078859439008240460265760790997197767436956658568315779479788398262039547057101237310866057497148533947557121081387380214526629444308386613842636025100191634713336554876933316351133280331341302946493091297043420824229529299146175049421550560767596843876185266867637553297395616928692716021431240452603488993095927935287108496892897096944509072585182817324852092415896392292395752684289513621514489707256510683390328899825234651089789662988060673082582786789184262396407487090363586084201770377913862138916162091997814470482275497552229940674943536588320306083988480369483015392122863801282564643192735982931542903136379154684329095341941093139840783806772801490626862545531560614833828715272351602759505177462481601139432857528682257023457117252623725131335784031524272522303031135049613139568058465037365548564773620504727943839670730460845414080642405256403070460373905907472372614377703691799333653885896450213452027424469391090582959839173723634092387549428286554129180991372898040766885174610426308677905314847651929008846445297673376601551314018876066482028691599609157004526361017825611385984810748734429885382438355502451716254288959144902392009289674168785680712854867602920631425756312682152097586313617122029520492514118083439137755790449397046691430409830948814467287299753029728220267435233760498602855660491203295375104212740883559751064538199216769496206974542214349245077397916856337477716965305561068093644440878744521078092907333636243131639429268252425922199106551203236664553513515201479013991608750416571330172663652884120517478126605481244343231410778118945360773266312698487185107195672370297934405468671099384008671820704679842040638177922186735463214473503288964678419337700399714848885195860109303593252179965798512765681643924677298574580160003773995505484771538978832201762734438256358675825192892126749871527621743762678457994585176397614829215769409079751279518421509989654984884758844018318596552133361736275413546035194715758287209747881872391328321973129265392790935560246934647063807953645198393378671893386227134845190215244963653682300367874305429336983432052171418647900168432105241145758874706364269579242608662766878588526801794643038726314412749144489025850921378431145074468940242328332111931070554905420687425614737586564617549456973575446464886795664731886171771906435872509199968462898839464883676423221989022802022709309264750108882401753133799025462154674487097516477024000527234280657411864752108501379108392453372751935100148233090148203023473403350637743670086537943779972121202105139970604395933337601031051886774487376509725904728656415134090679240917079251095923562115859535488640865475780203133171121804034152951206528499019699625488013365642555537194314057404814054837338686528348619046333421667579974032752005128450205395774034569230441399313286584191419547345518537230799601333489557219370683313411181867160778133991952233413170366657161272200987837947728178135747408986534817495052233502279524475747383049026613807674473951039401456863462067719795616457123160967708069406820672234733081380599704235299058090651995502491582606285789615049914781624825599680308226695292074439647743237968970486971308254653830220472271248735450377059111359368209945427860514517534942749124088366198773023469235781430211738994607847218771963000154471851570695735143458349429293991238442538666762014054531704592140826597463566145874525072484495463706445856514552271179968348235324803499571463691850183803400236396584326834451549285629765496871846400576837652054879371876280460901625979180758626209267110484801838178646870343360867962512210321008706042632896534983192066000938454255580046122894914162347971539294562179510640294445835734027781429909650019273678090455155068323612275899523720433372860203514322337834913979141591052354063832660265910051961969744192971442157619084613599997266423671712098471652771280533592430982935051384530030931041897404620417772061745073914503848340280631284645084054060675277368227530704800751726032887723537662869164215451134470158692065283077226874227280894942638019934343284745158268271551366240019796029813795177675115841638833680157582795661024621205282662902974639953258467156721692733998624084885925660560799024952151138780648367835850231063685207231216369159998444991475600874287493191433860466334070237684243683024023930467440454787033001697173437200602347530644232734519881674409079743472658460166165339988779798458058763820063433562339596869914529173073091472157792906501287775062494731452813444621769402419792324272837246351637308163980127776020186156480242851224581789154105493564444158420166961909893861158821223852920486143779256189903407151032512658619012094734487866473434055961533697040413226262864102400726423434373328908551088180942919646891773947327219072258279646387394842304477545824710107469711840762889706003586097435241720786988094315612035338164065836781700189278113729422834582847635528239818638617095786659170808178145215626864433009270910217066584900185462599240621766775430843636569973417353720798607924991862231603447305431350929550062939880731025381277559284623825361857154707274745138858249162861901132948241511536249186815401758564557138185240589878709666111160467174411615566281741275766514993135133878764724783602781535968175192963725092450435502835305719726037469035850211756187932903270644780730138806770501571839556425865782787409343569660760491325249159615149178823755191357426642547161966004409342960099147545243937695104112625347068038631655107514662328881162125920876479125447536610698506484512601863631524908981520793574008566135317044125316708980808975620666992366164955365969230540800189995267114283108762328603132621590132358551314997346359452093845376531689905441706689397550245912088836946620510031945547039495593379934393785227773664132811390358550189030077956682991784462480066137125215556230656033856572668164568646420829972923255943712004813210793941466198002844388988707423212253077676808320599968546147467695559597972178480272316636138889242551980075105303490684249728582201086542093498455075323732323380763758360306283982386615783468702560837176868784778308041786759357317321759810841392677718384491928021975559889402241778755584512515263528849736405893937909022730656816982126101593086272743202453328089609934839726037444393502982116432884699626910054896793595277135033759997305272473874024769817832637897215367300378939096492242013586646710991954501572253026799204474580112316999120034424533442011525764773371219039340080377226155008209385311181652180796507276199210020149657662413850450573853751852658077182448856228112471203118515941114629913353911697938601442302276430738880287585042956559956828454795760185346092149752709080727119100515053400242992238896159221483867465870538447153478366869271228517982984433614027962010884455541279074379609726003097990974824376806225981336443102470862180320593035388151735370513247612418120658012043713244405459073513981727967651012920787815400762668662979389909319835084712759719625564395583617711784901464458571542549551625020248991626674348893709316500736865554443610762551396346869554499175916475882966143241150744712266483623726474712732460336933521368554355298078134048735897396917147394496497719537657161600183583253335756076185273166599470648137774751927502727002138756454320610506876953278851190692876480471200168451151876386765047619459869894921344912605083652088624379273200515250007825203249027962911424218476491607669126981800085791415754478225842604736948099964617567644131643410080231197462488586965089679082288018003855552531003159179108628939256779039596302618124908661774851882832488122062338531335511280657062037503532453876700516793564456927580576271373520412643239368376038494704779821404062794658198160804532726104787201697990373056117572028280245830834113693569367156210921554112244613431824126687333070947440059061475709828321681381826990439121061832660245096857006919934532061235417422176964617514203052952432554299980802705643897383839117192035630924598633207362903648713138672317519276641307059393883678622687867906502663271301517399288459400700175102056944410769742205996811565926307547071561142146372655625318615420063795871087037526500399604656699230662408369570479854366476711899347544040693394290359975566810744462721859479210151110979098817002327344693439943602494579349227204877986750055104530980445871017557228095167550696183327530410400434437368351286175314627155216919678090990167959298149411439611964731493244534811040724987575521057402712947269937881005584648995975239056949935386347442995996161116105849843701882130031667533296187454609078287252227527148578039404884987297086518631294903914911872462179245509228200139922742577953912766728244112162265448628381073792352520917200905380096654834098714379104415018912225187642592989129047380620913912298715915526056656289591510559288337809603656364654443166028213727205519385838986870191498963795666606179937886366703672520681726603256078660768974793413709714415153517095730762978335588611982434389216433211277539102709220644449441763631717594391989173316115241033291151176427164693617812509700222724962530785564425503530039588843880435953161070573499362415515771553172724180547415279311987704568905318454578883520317430669509663679789745414355827948208115749141436433701864643005859263458442963901214911388260442298274981048518818648245535812086267978540867425522275135906744037854258469613463451271173585499453700717813770316517168032906347894389777276764967146131163366517237146969483592716314948237374210162232442906520218139500903944225912441711598416431098700945226678234987607776675729307129392164037293257169225688119723739039648244378844707494890429686493118063854203155663398941579751311905221701613126501955506934703441277888894934452563908579860813414897757945602236235571376154979290128142422213594448728748399495262390269908816054948530612297224533378207545689133272771798302850319683034568143868166982545131058077478163983786469719870313091591785460192209318830765746354169695626667360894842303351272434755396023413108242797323689551033658530238524370918981686768832534468211516306387246842979136946407739747634604313151855139791150258181012045870805018110958348009249280957110828957507816226479338568980192015835824068832940912849423339202627184347701579253477869130789686530005704480884976340295741221806686152949268912323113321864679341400448226575790266880625257194906245333171586225967479395393264172313623038726459106598937706822249689398048110769697204046171962931951134219774516913397751135173692213322780716205401071055845872479861193966657213160251425623147403566465294600932017450065959198470354205369873467098196241837407625830101564562747153023153202291497757667269009029295700374629579806416080178468440374974729613284118469102355732262673005668080488977289084245704956822019846980669430184434902250081921270283283913951631541824395737201252036787277847147033994955317485774464706018101480557395894652220937565867408249296811582886966067263190525881222111012096983804396536403860448584187708093239520009944925124992645075630071196534245502813682278254153076224618971316158265627592317295019728636181128187152770644961893110904675772554861342922094937329720860353996227879077329869889337333817576613390872776251879915893080391056580234467510897245008300359982903751466313021238126797441588016405724525977463444860721188346018233600641975930741794314556653047421929871986567800459964309782494932904759185961280895973714138001597267597208560044140208839337373813996727919264239570766922466325682620779596621075227692016167575439540393045860602509872478567641547730898330528149604334287561273258031360029214213269043432894857631507613583335496287132774925731044863693421962274318426900753663745532976755088381499831906419861446555587313550688369078548035165036409803013108637101056631526439540203264071973470596927668253414505366760499029411304081239455172958372095286231778665311687612753153583193681140286408697730196599398001985868584852453190503190482455399320172764084247027813725044335104073352161052403997782120212198907196708232927612959765662715897933374695552070206984014162846872816339013246738342291823188787893032479174264791553615180280289028532599120360379092297571530018362097990456749127064268318288767530080251705698263233559967233361890078352873695787304193712874740890101161874006416604598254847210203314772752449260956063336712337418677846004894452607468541377656731154989696993138171111304288086535121310131590000235183891085396678905409061853955912171910750260760464387111766526915384661096485886806634886575602581467330583271376399392446683993750375712073703683091720393953969615556033083212641232935109056270797290140772027209070036194161198857135421462891859209003963482338599712180093435798415090988971887347306429572005240297140490999787589099880825873366670811645718750225248851629367732606547989037461092389087764799633715524805996802020179506659208188882824676706067245945393657160130939659454683999467949611890865825712803321150893103612227070067914730122043395637181917414947884772198232642873765028854966937440720744612515470341066852843329488817622614130119406452475637088009860109918464088106322674048284828197091428618773407240102246646768038278541213157506978701668257410626213751852595452200711005943213536555610758204973445771909687588801508402096446327292702176456158322310731915381828619521234700221575896942047556374942014836480285806580872152821798570421318767117266523776571283255456247361673150355678813598688503536224741321352633309684667735828700657436104033874997630965679645392420896210232143895789110469340545382971311701974309695303670050727690073217917012081145927791645218809639653168116428467774476051374056000495133715078335966414444528106371945293287940583826894048658618383354857723684931846701953114645747330768728606035355252359358015888257889775891398430478764095487068196750218723672335648044263662863777030896752790006794905503878473298181341863850428179225197185938155988598766047408262003043025484210386639826018297976817146686287105294729220412339935705641125032038361585557662313905956165750274828380247768379306103899562731242141030272324790717940832439695460503843078026625912256360912362845111277585213250891007221614191566223625060921694984075488968451658836695389885081210207928746944050623690992405368727799891044706808802380340090035661211503931472763112353468830641793681461956947593826358635552186881346552886833759590322561094115298566710761542777992112351540823141273329838413671755515653652249889529361451502706514274639036293472145460876980973750310893227147420485997894812900321666606794618677498424382568675946134430037512598828928130741919075370466122759044737521967495170717650202960607973323922688265374917908423945627864940419839948950361994833626550306538374002744477079128015667789651275361433783494017746351748227262208415078588161391371095149237184535669622078159477120801144913870080709754911408198912602445639339105187750825906710696333028422830444310385382994986677399887666410926014689598093706374368292836190599121091179566749064323610591003639800210651589538395552297259048043503894527118278050232179619128110149659968800729837940132068656833757286038301461461563213507692195726240080732538075807501585408949220924172934842933168450174709384358262443888763467123229923567883598303873744421522970274662370007899278337252521931350363455920793302205909468758506602435288059834721494311063764936641416847233391518806640916153231769036261771204703166314549755048585383704217577589203147875985750785657742400817041194288917548423349171100662810529535634831704769209529375532489091930197452378578522115982655965888878242830846594799536870666173625761114016698928368836912109006439263485532849140775219343190428377253029513255335086461222499540906872229102127707349403222326155278001570152804132038602015217716315908951667458773186406293843234345781616214087536327530662207093340659028864051759734155870932216908045309709123804627963908695058257116228846173088469665734127668152076172958308619933973434159967298314993407992624168478541029793343294206613490260408775157103593069846918463099722044718059119869966403831923655089833089726669963713895786119707238708541525822835542388951619693883749208943667015568715759677403425298640868396227141080544340520918732965334501583742088443008629442169662750372963748359932134885871225094020469662278334670624803910544972013648273898188872182149007139596897803630599726649719795730845709978992484054143035863080809382372433439060209716600832429767415618081636274804930529880515916309755456638099955238863046507234594727357099773128454411156490355855017842182884383015517499462126192633454138634357358093527069305737492363974933848173928704925019820386273537345997322868052966439522575969076095257571465275109395898028534232116003345772470629932407246476481705405795000227334769324795542001493024084067158418016512605271581231321918175927749009873368393023240522030611414896631928250129576900706943072912998239386417025879114250153418062700951916436521791245940058751209239098640127721992630276096650113827904125314733124292412475528026186456081568746215086952775292638498461683206032932597804190802709391815773838109708029043648874866297167462038861168695976050204529052171949285773769053614876624934895185035510129320162496773163521232680195197129814603505745563883071849087076758823892775064414994832792128562088311827830953058679482535326208744514044615069045612485220688951982246185248844352967016220550625498432973835334589651554015592983719516564528109505088158513253094982141914128972921208810747951985109534288561007231046426143889303677079557048090012101255311360194052355379845016275676066539404596894149620451072854972255840581908412607615369558814522140758291022998551143283235325631622919451519549523298914574640970320582792343834602085559147492530203615105519955764019126594866511977639059567782660720180227353192842225671793612882723734468561505217108111639339554626969960251692763568894928629074200505005044915643378813280153648978029796585504504186636582356394143459669352084655327643520379699466239466970642755791813953604113718846153728292611337581498476234694996436242448526705711609550844062588600015022350215850524503578273002606083834819301039966385346159770244054325614969366856428956654977727750716631633853799542915851300662236756258536606652747293666008946697893677120226108549240596219478006786269212930010977326381146569873588388976650662270237217913076405210897795250602697752991939909486706780646514284246213529575831491401276183129237782500865941401462138176616638504951262367492208849856486675018875549049076025825819205443636721683621316545264528341356663151307203878966600810138140055178592220558467169462885928313510683505735820507513095410958769006347947000122951910543021067069985565117367793747949427816945397829900310880869295397943697217504031435769808543915611675492175569712484010017226413279670777804947915463200477940595970350654308891922535579247960842661539694577271136409380577787740056640846457976434183805613901145597586096636974204368595197223100050634976462354359925991158937672838109281016758648770410628776243461007167499568468615237984103471097944453078759728849554010779021675635999040084182933756322740721533813348707023863094892978410245631946308511289874601427741681930918741849065903268649549368215214372766529259351766266716564483495107602014673572143915571677198216692169906107198348058361075508210298630427460024747508512835724751242970868340602058472253196754586143723354434174306178653642470885078522796062212976258048767940916481820247596441670174111035151253087774465392538124892708882183360685235994041191872716279315930589780165658587372265131100472567210123563131963109757664429616921962999666798374060075465476545027304374676792438582681708785652667368559896704436569623671310794810566767245107099203320381193019564966121486499004643689970728886957582385940816364215605034766095361068322105825522961443012395323679317268390892400177842704140282697861403548988640423949912417867942072124881850242924783690245015430502971117233462350585377261765685908880278610938786359346755298713393218892820395486867999170857207585017879646705083349733543319228106102327830330785001789522641540177928885692230338614874801781994449565492212274582467325504855224837104522154621598230203427505089721498372187348619903944372559865458277510163518913707777238563180077463458732688132437802415197810390142370787717350483557747526133125039327508780228452822925447082835398041837381077246550486037616128832397751615666704975834094287142729538249790044320663821289109200324351792084850188220182428918113592096174938401025687829475914741095543241698073973825231379497453029163895909862791879786895610547654321255223136582778193358117916988032388851611207838698156938329206201371896581658765495089270649738343021069770685801913588247198758530348370937181409020039424357799664290021326244106578534232426406385413722808886659398436133250276144231748803878484571615833054601360521822665108917464871457214458860793192281963908110071810432525554616119454332203575512464011727360607241048260508099765049402641414926885855227627860402017736233615550610937839509538971639755242889645263055992333766136996578541527686498526774411079580576391665472713976170142826318607873399389783660351251033545491671243796035931660019105395771847523573093069998946396441668162295543757459110816150063888865039615632853979427248957904486409523941441131355304236793316807819237459077330430299468266283755544197219866580141248566939957792904933963228816112025750156890990146591209231559960917623285421336693582065563966118397184636015210898626096549881545190433017911388601424652884376659353350283436616533653312458000868410246826980434199294777588145745715286879329356431038564060875650542879309305611632576304761545964540147076365039317067452430125557872061771108210066582022681717351857232660746681672176889915112114084384848505082048968246697349124232191168045374151968104908887570905752564419709801814060796616961133754221484160699730714561822872057574490664419958179319626850807898585022946403602877354206734128309855927473978565251086426860318617312215600894103028048040176544297530321688905221542806232798471203305101664717381589019693602330880670299987920162326338861561559171054384258039166708419114544097295992161856246360608844242428225791709066195305063542181244346085224958667218916495990331757119488375691359633896827592278574405718023578105795957223959349928036929901889631902582463310568449536523098226764809417864833637339485484975600466267581372268594992038634355800948769501916488559544403992560805577486082194712608830379374852829363409136870132175740403327450255129046966853669535492934786021420394041380642818658396675874895947883588074786362779962297540943775606851967751526820002856021117451527075424444522139541172267240606010039967599303199825006905698303979490838186535437741265716526956417644937399439581873523902543960300806755785223794478737639671335323575037735468978271991063305946517525980427238414416723120828827320884909890633806189621728686190552229624201588413474150510078922271851806792674845154153328069222274247300381930970045630131861635229793947012353482660960838068303302017834727879515566801287302026032961348332036333176934366299271814703187685572624745874135510595594427833514045293797954766474171898734833178354014411350153639446381427325822609772867779151945309303199524657441800894834568671053028101393071333776612879283735745384576351226949931453426299442312755618742443856461818747898826640327142689928609289544773276998101477501089002391597673160390015537334205730959061107324554433590269597903738446386433672832901106097171191896827073519932611383671279341563354972277730066899249060519223706877423981702940916966919884834492939349381105986429529345083281204581606019834164272954943085369708748520257402244068956413155089973541968134165918203463729741426569796390020879569316080448269476623776494885457750532789188010529778110188962398161286305425039545667639451382673391885223732189470485791276780062649127007538051890564858614077667586517442327125673273248949303892917264231690513639214586526884190549480976055753033597968381692078700438667219620847316012924885186042836087743852963915879570078395748465487780356468051864249164463568946421547627207250541857581008253135679005945686031068873277335764845965500088568622763069771090455994754921527726915844722543915913517857856436654920813845896140533103957065088158558554193942968286915668190619557479666353067931000753068279808550523683484185667016426552966571506060138618722138405466756082898706168337248851525415987492498930124515391206995117572027510308756756938133220407715148771323803406002018537382886860835466531826460246915998655247838723173002922962198727878217823656978627284632756790894297758289920154782391789078426552787045034697828377378421052273959069241790583892527689080709168882193398742758477110637372864093850938807687802244438671821326046032015932575917789577286169758826003993820777199229145638252756052020704509349688010192911059926090984781347183840069274820599725641292526826250509743939092831967440113921871666393614674633865444650515609881681080246662577531099922595156813677158504857447515774420351673141385411747433569128174860293847457458800485203966803168155617797576091843392638391287301157820608388614383632124412011199072964567356719449003889037615742839003911662858585079165157147615001884905841491375375509154551801476065720393640444485591044833965883788418044932475561251400231824445548047003034087215322048275776711999218995566383845301518753537618421311956258483294084600628290713273270848492903240561754724451179070420265480156668439001586998385268865892828875149805199031098309344115020108112351769016101028459765800479209617270326808805550564030343123616973945084797455507868835193232486193592185464454472491688357283381119330359493815391161878426605595962322132353459221740819326544103686208777700775538325221866088414209179335878365369018071389014671396261091741870139041501902091082605703715273917817976380042535267468366242122636672927958957479490422758449301485890381083485013062276345022381595559509984498134074580335304276207517821032012914844960341504533745716705271083635457288174784307531318988245468871849534294365380146498950481849147638605299209114046713716955027544534836301175581029743249025721055485052935334062668890976214978476747252042508650760434701283833017420377954516660033044622307230422900185153796439465385998346652211114774034046625733559282849122084112352847600767042439107544510210567158691239754250890321252323083285506210106687979358555374939906736558125743493031450090339225756534009789331078278902183790104658975835992925368546296479148560991915187586532197192023201884501767115065124385009898855781445649537963091623865445014763631162583205499852409518678369750203482244848935676963514484643572844389361815703509391505831244577915205997635548850515093616309919782707765269516497309498683765704720192688306817185036447943437329164726649019455720333024613805231079873258503763280765695350560422644698463000050662870169697764285095020174188033528719582965167240448145859077479341556692383143492197624696057657671027134035074529879276214492108645811655784356045808013248270091311972072145102367196855816073899508588255613647995339413142593796319226771264881548968879850513648063413549577765346442957344349298563664801579901450848675601376304922149001613367347601845638866805735252968364611348098328141116351191239556694011432239454413613051553087406320629626656217152825693311391450843543072844684708933339432534684409254359981221593345755644328248989843732598758020598687621208265694953173710592092295151638581895565788915540738149966761437854256030595375388327052412752368246983093484728152393314294325789096102777853951479369712803705508471131938054220609422856222394554249830468488048778099592130658157476573672535005251247697694087356931758365279403272052930888621236548795187452841585838638629046058777198658460672862902155430171534162291453509604865850171595747711023020620983256668363089461440903018045433344603647514366288402444547949750401330010326971406651934266473046494565753498233290952106068448257193493152345010897771343991107375471972452147443002922933266362813929938583931861930409320730738370672317493670872040911029991302279878124626117696982572599032297319099108779966743200402895987643330108119175688171100128300962906403780128591943820556259742083378001853044738002958133275934295137104622921244248140209053260080004893888843996748198788319774976649574115603220708028378174905540432972122554000600180716608379671464902866809579272978047332808450555692718268617712279582072515683693469007194522341912106915083374428666848738584322843294537940899185077394034528596231453976467909414594087010790175761957561001643949996439910390625293825002170316827117443915348090460614983930551690581315124840338151386564868158185705855408669366036423462494533945685962185593645411143715323274571774476918570168389859344457422606512569061443885669446352672506325657731406076391060607286460573282265381773327443324642664079313621764961519071536903069258773284512802427396070381355753540954102855007476576242220323636870852359155720525968254068926698294121436698255417907428899306554105400185978292326120706950709953386967985114215758375033557651535907792973844965807807028466862317491735947291471176728744509481144706708948469718828001401377237316557230536602780752314819161395123016224828911737505994527187620298090202091281550124273431745423379550268860886554234186920521360056168698644757549733277658907045616562225417671382864226500981535171323039963885289371209435365850946497625615668838480753707555712416907019322858270427402376392966654193650121962770635773514353019341153654611624404397713438256060725607705731883118719279639095764947161216707648516656398586015318794181520049309268368017203154708496152004686403954108952838423036396947273717271996716596740514503157387981751308514786556433139925238836415622439372185687369801168555740352583626223299167810387392133863680106533032528730818808383295081892718658807250401657490111741572140707318862022297025537431467168969179114373671477526501522520299827789221993625141554502941849029991296182835873791100756053586599050574107596880063765662118208495810695833263232045099363483866913533321089954610488111196860667189365882108918421859748543021028958089571634790882222321232005377607331810450975618995996896490859915236788012330053385690869298328253568615390725741470343095914205687887207938777947006282738609911742306856607448965577454647434270350937332071530135891603605436879887148264721632819226566272747585200423786536499097071057635262142579708023224559497117282913949366419125464229103049906008605579495277927228969588526808132984402628745504007186324706550328141565538959100361829634123691542882081578512269012848151785106320803321841531779415652182391154864465776287772571540314373085420396473370548773617678378946407808386808823385772585883099226947265530632964213094570279587186690373219582497190121986948770175186443338954694031898997341419602591529169821348678892371518281764274403733221576330116173494409171243377333100363998450713259949821399689052440109504927733937580789813454068633629913791942257479322974449429549155251433157864162801116525552227941897620143798595862776458153832230894200978172093283611694795819885666303084356249993842695884120345149408894516615567914231862929671972977709518191858010085484736209761033217143161357111930878772771669918002667299375163211254044732619435481158006898021679823201879466379708023881051299340774879568413516309767955751942718444008718547884985772307719658901354446957979078890477022682700149469128197325896353244651446447694021689619815451750016336715639670963171499814887465830268252082240255098198574623898765155408223925180448320886776311880605855616369896750890674580864341858175338694018829692880124315226170616173866308539991155780063454638834598849508305276375573103539288182889046755888511612661882743615581023591721901681306161641674284104896404269953442572094239240130716670957817669041419089206842319746078017235208612123225333856999778884169388145458589890902430978197540336000429484547176272764583111608362276885594421964480498279634481577411467999988338769989066465720166927490109613848624267139720437394768536378582659362908470369637131299040684386940413365522394927670628272229332162515013733809912117587692393221362554281719078897318852725738413595823578999840326464228444438677571270024281202380785957391243375851674381354845362033986526561959665933042300184357604398888169699219947271030580687731623457652104133226924244234659435511349897360958856805711538722051324054031847297510559090894907001468829373178524344329685063949051779297648998495599888813001143229878087804826696545229370194789720113371287089734493245369962450107593229411731938043452847204974827862648144887446294198822305103459872258232560607208523037770224340564622778834709706563869941599025010242792231565184559694776615596708975250810374843562859400927920522169983751335385733328562388229168467828241381640844098323481359699880570400526270826086000101196981910497708069533298283530324013990572049859385624781916093496071310290963181024569674013227040718462337959139623959368733460217417936923986514909439700844970158590597617124593425285639854605005701010196121262931195566548977487800777303801502822600646059757831947783826489965435623941695332927847539872543943267527740423847595722132016538391162128197533767100122815205132598628158946392913841203497173441910721733362760553107997265095821526101970166563520513320401453933940499143831237983762715062034039185965212296731570879538245992359192606477128785997693845415857384916683746556374021483305971458746715734101229327703021877987665882362156365000219386630292324633080527847227912310928602856666110893447652533245418424771835502871190586007511101831153407159106728594599834273796019755418418751137620695938984436227997950916826488295941916586203174884646744488988757191506592101219908853247808223103754016130458807643937203050058271674133084653415847127682965460489150133420392823156827198595934628791684307876986059372060732164731242404229128348866160085982220957618288227351592551777089723272359323944713063546714036698346103551316605838213447986743545515923693714909834113198702388026360263005378219695039409743057026516488275640382316628392971483677086879033090826314142628133454033744738646818499705950565742802015686155729065792399639541667647138016822754384953611603391034629358474562565593191106265353878556264712570592677927886516650199780030413726485795807560241704941916476120937307458610652794058005581539635394758657804962702729806857550713182830063560859245242057651386409559950206026246138845818925886773061060536635108241163256370192769889738858712743538766657702592000570273800363304980035607041691590382620513460946065659693604189764577717106885027201768461228603914532487517078108174463003789801051479270922756034248257834014736839578942223748595361334141775694770692776580210411592720311372067048793380006476025540043084929102681238253891677758413660779072423853180736836942926326870761465597105214804087787937970355622395326414456278556062191187398937191256235224070035234258355729284278562327506179543763542912188863026649476569729594479750546352970002022115012605453896159777496373155966435118440680211690119291099350822691535068181748249820660261710034967795416458733117539437658044309245745789547654440645856791772357014219327320024115527417751847134330374554882095099789749947932037100615898779540884647858110457920438979518611323959643536967585328872876893007756646728577422481421730511702795020624798681124944499168864363620813345367422608130510955370776820245514497321759851034676895596214035962849722426641191980151410517833800894535240809159944889710433044625789057102687387859153607845316874619678307129143638144773741679009438915351090396265249556683890873199510898370285353219241425716403904784869416694837416121493271333909802829933749999125543083580280635604539456669014606051490549534186474446351552250944789540219710323644060620612172836104692571097064399847647132972028720464050781564266453143860614566550637314929871033189238639302695471608717849162665698127125466105850009835636953851798424826264890611077026204890690857745121989904007507800888317529041841975577212026285061275645495573060151913692579321744338846232920728521427465091980810298129982162374535781437600115660786538190927858105784759476722491505857560287179650690723459801598561957682061686058795242630809744867052533965512217807809649891554301574059158137836997453436771548734700420584558298839745048021029148366557328368853438287385831410625885979873282304003831289756271325545104225454779975969694453410104565354859430801528319982472237161304097920501081602302205295895940990306525285835656342620624086446658349829105099141275791780781756231046809459963492071264259911898950753033043332411088365722981476504613762613768297391263619127600652042466967154385254061299066022977378990137503962381703839084681778379440772586704136928648804465432374896409319939316122456704803124893117168499970531558815089994614369891728372867536451966269269489538147934308411389574818517140642688733465991900898582733328589077887710351161608652073324609815252080223037575267900339446692995434700722909349463093234991889415866816567311710230062944422790751528550931052461219110656822343230078278040810054288572763883726635966614843826263327554366712904562567852514106544692050400721940706062104392426671457543161402995194215463562539371849969552863580935310467443849188775803471873094437273654562290000509231743203697735066053897021847156317546445688344716988472829096149027902227759444355310827976913693978177990780858740960735641632838766070720307273355926633070573303329830969645484737187078374367999627801911222893566631685473945746085511288242664337156649116663542317715646348594463724670490397730009799219352198853827774554556563388101087413932371248587542433042489524659883068884922731746013595887370450434913223939962685834191110056933229742952132727978010135735450885689816464672437753250025970341798552670553454422810866920281077747409062791536354596995428556794197501019985449567615087481220987912663850266225011708192888756078531620808522014288425460213648890413149868040180872600763258733986242664242007411497992785435014262827394502353145338570366446501480420162539924940102470767039736929571368405333076062478685964707164891861830590169435565646588136177122482330837691918138237440712612477118819419684851059748506481344265417221726591233613793628446285116437827327440603801617592490616176745951682208418683375230447185906077095019012465310779939401218608248189898351091499692000275480323675848315852385626228460617281067711607605103015194048100495118699222139132068484792517092632400033337318676665371261135207017067345666086494361513543727776794951216278383542913847359981728440356878678717084309370150282680376030940259472719230911330187324357141300691734746714023627511306001150493968021987219326505885470329285425758978451366662601226491790092827180466774639017667899033620574954527418527752802244132558933730206300311149797617796855114378586828335756943478409527367150875458881836136576945093260818218500704796168723655218399548174142594152259423141105945914186086220874484945264754600121756983800811021206887450097258108795362419934850148653039422727150156689221551608932461290969696209104540960652050623913086097514316996961543902363474840745954430691239901989074985279970448650912366141848718757142875056215199325422630554743674410859576760463693436423382219374630059081390887218363423731809749984677969787698065510241495237208050688668135789486559512752936067612014945416193214434318190634435652634418149456938398001246586689151594344322642808744407542128973496858725796855350440617128067683686860722526800362360095841584828384392338953661425274409830430656020936652675238623743952713848410082677348893675896354301963479978907960983298851497668476852753624870284548329371928234331862204327380238194145057062033692594206757237984461256514651301639223372627294435750767396180008540321321789723429544306406102449178189287966592650531399145978222247113289598282363882191331096358555998238616783256828000952872671794414543296741766337546918587609364074444920339676274235313110180250793632017691439340533575242902906202303685110620703498353209360660559382663432762264945196871241518144636893230242746156879914948223133547477228093183769836103591528283767354539018109293139170833673422846621422710204040816672084651430474394899845437624516648283020618888261150627143262587521871587884416075788391772035820443828656494703861103159396511336878630881066230352348675450165458904750159500957820771444978351698495649236377761157413041964853256559926422946502445400338131737272795766563391984870076298943271221902743828816767393903347462485866018729462505816735163101879653149493975039216785989475580360214276550387019472606101384419346709873278939533334409212616052947072951640549418978327159643794347877950030772448251449338293825425671124007203015186247748341799111218556853662754524694631628388574210430789555089574327465630481382849795150755943726683415857098105433389945777259732977995589703270031668490484503563876868649695705759271187537143477857560228233588097894180495998562281226521593888407973441537009092834129993456645579933191451570906635691380921000127204194717340675460756949097951484171380531682841241236909980712415078328489929889293081772602438311205386757305049746755532992074513134346140375620420044617650738874353512024627644383643703406712881646521889725014481102248382663151187985021386509185125868288040225695264676711092671064585720896054657844674746752664509386827186334140089494289472840176521659313344248316556325296857655859456274524222115887531936646530988064944233280058721190766588400292145589648192196341018280914353966535399671153765517872174026873512390037858193471464619466367299229076087984527597436729065382464579518060797449794837085469701577071271215618057794975187155655957144713045381004132305028155772688728138330804146878319782801318986634844406786833632374436141659914909803337276029019957087339314763099160067233668784915761658967529886314050828017310001225305076242123024767146059180101121564408138379463438879967848087271047303788821688316434180619717556922414973928168856385155019652954746606668620519146118767878448444833155937514775888214403135718651906652254317770845798468619822826291896122207624459937433260276355762080518526653138995020248279227560665200033013232953964676612565531356401833800582048784470946401675693619914950432142545680126809605694843398564531847485829573928771411411077691231543221026439736548584201096829494392440766395753623734630142063136276262699514645642461023255620009299597625906924801006940510190024645830951702591346227597367146784826907611876561446631713312075488129492762684645353584900425878032180877790891528427255830789064159009383208323322461358212631590781507475873744101344515996996854469633020991838895256605808223122966252339326715388190505653574357523441497759180860890636574688660154824505632670927963293448991214158390229452504817099464157468197904777747400353308140490437725954020317974319241800961013260928229701629276335535837723024519209102788630999085328617700570324231914763853645970158234405141947475563480786084345347451625431158443222644889793733330818855206659393722824486377083628857175896144652762897370943034046624716999678789747528594194998341440207641876945915196963352065662083383985486966867554548836377763108313975560686656146960378948849575267499580521532128238442194520549624631491281109674142734215617472341514143788623247398258130246402118676503676429170215612275046833276924685624152530758757192393147154752544676169659895821687085001509508668933137179150181816427621265096162927469384497520710269491001355936784490547061716337308898460373005389027748648048316793685903782904320859729190467056753404930897877058370881049738629153922625052594140134759711646047546582577913550839559844581307300504792719056581618405736185134708515543653403751835900728390318458942791589370847083454072745030424992507463758716216580272504592024864273229788430948812904499044134354983357340909118105450632053156998112388544625204053218508930286276614283997594551236549926872236225491589214128110168871997809925173959976083907629525306519493110938916691449972748529525323489393830025014553279980135877387932236367162999872639049089248189188524774517614104677485425594310031939452030692132011037649770180084291404620714792919500860250817958339163857522374305767196103379235827990066330610916454537970371523002105768363523790675907791101178187820907086335392495349113642224834463510316565142405731691438243988906475036223074915687312811207474096094789063494931580109845828082460272364388086435140263742346706970427019049692863661177991413243722134106385334672369835369831976760254362899889887336117135783633672083832186107835982367257233291233256012804235399856669587038507457755335529221513052725721482914238311637851548318541187617393802225667026225632780592356345654637899760835409356601899894243875419179159151844622100849829251570742199319632286202376951098181270014875647702049303490838808276525564200732628677606481422506691413675835363891642095005824965967577080521647413129444060801865506370299419596999639827447905721769944076942109433659476326364473350380423365378081940580459854176066478140295804585871163651481440181944313167263013137518973382675058154295978108430847002257195555956817719115229399882095959490582287224880056389235000054692498766396462170926272725156597616971129668541823468151579893742939641959711110194296202705658192191360823447295168292698868272118622479012770064154561042831533389267935355035193904423167897618762849574243797641649066885287515579121773850543791088795601859664493421622898231222832570016649575323045959713807689546255225091674266564879515920019445564783203606164427570584480882285125807755285036537513476660471631911391516957313693033764430259011473692877121621284315930127583880225121586260396862170461586246262703941517554146965019583771753584472588696943530562579375281257709689398061277463232919436280546277384547813463972005871156114274883091341490205257354886284842455569223346519384667704444921089797875858458916651220243552502406627054296883098360706829472600137917100242136922586405257800511418978607002845164842708139029317373555488223435388031986838319224798944281087637947703223049345654667362293740747216253035963357319806047444370302911151508289486819376591525458520653364842609914515455134626248092529248981798803376626975698459273737197832171543427023559994082785596410171206066301359894942821551121428865677552851868665794420132557307755442314932869061101432725704118334444483926858669005431108749718603350941755318238262731871173531243337026528244384501844869644760970446887401221001155917569390656490709123452148063245419103805768967558898998985426906461212586323049523219736429253546188539869097161393610513943081721486509656133028356333025732116960632292368008931920356102982716157911241972603739377391043855506768020741464539531729021138686313350637237063705962344186714330661176906459306788857469572295601111097665083007632364199655708100748079739774988475431908153420660754276173883414225288054611779643022513155594137840229874557258220007697136592581262462641587626569182752637246303135948547675808458744380432728651632131403285694912707428831293198428111492845183367839754828779853480954766305924570448815773669741006739876530487421290227459424826962251367909048520775515676573994931956743807081095603088393496503415607427128608906463300638919231515492878742228992031232839911981090126946321097797907022040563711383247674841963473135412206615401699014687833916393447731385528799864644453993485271326528236297073252141173427144710438236107363949292195638466583904838038637769257613350499412308334912584479912176932950043096672539900702560603194173991837564472221606487112798049208919742089521580547201750222067829982823704390096530611292256549490436567768666036207380272142436700646574065860042488019461088908284949703859198184731222692817513818672862718182693112801407189831012751233945106271804968685928886881362203554065482442069047950251701272279856696597110624683564144254085348881554927486606347793545789303585320871992845564944732737508730593378490905122340618482288463936821435277534204651281037018164195788866622294771974176964811571324536663521233575285829653470656412271548894414860027551646994191716246979127763950183403996682826820857886018883097434438598289999893661050344408675544191517774143611035406194518272663023047248392534945272028363167971277272248785793044792102582974600778058186846929765254459735521444135582561652922347857607294584439840806917422040717197313893627839109798448702567158063270159319839965193582274301460059916547296640221778451319536407658590160272389824982614384699188266731246379672466667913956304917277614920173618253239459143409733225720847224014982968348451812283500934705272623886407018873075699894790764453821556209418876567156442094978055185310006775841425999497851062380833751920967920793222819161087994870995800439500393965977523961743340011925725896924358407765027241475111316364233663743049671733859919342470905324678315200851543394366056171686443828336243114031939975733219191391655775296890930470945670303764473651937831808602331169661637796975413545572039484797397752331315938577450949940796506994138992040692457718603023459382771013057825191031052450932888559851071532094137635025146269263897239745493694541912372178613333504497458290003923615643717953127035105963453865246038261563189269546728674756380051276931052816456597636932712204031336744844877282676709840121668388298663518182238337863482223735222814476556154413830651662226285707052426262214227806214367825381358100187247359613600048999187350461349999156538831424762340942958468556088116105636530359965672309279697248555382771054520949962872561574836593541941001916488687813874976312275397423579112134446508106612708860923878380325418134175730126244596234127798199937366135678071327267257199410610398438006462994146479135605710262563876790316690314007623884320215348070129963249635732299422537723506162547835617079159217741710402203348243113655915922596117175339413712303481768266228800718046441091531638131682452497137110565636541943558097049646995092695575346911062376320924652334176932253554143983076732746599639628356101779570787172207565283548677217472093687452163385718967329868183521303577971681377363118651104173073104677740027365575519216425903069215853707631039381830055216681350526837730058708540631910813718951506393154292524432981705942248226799928892238063998213863432670422893216192848547716094213435981883594027490156364829926258715754709758850754888839661864351833136435130270998480724305394390323288715351412722485633293337743584743369044711280407312326772795873310998838953604720012082180521968844915234425173017167112955722346687722821743118738091390201800925747592247150588651508451686254218863454760429436064715743612337543739808408855545216735704233625995815417229202538223114247091153839670252512706660899444452763403210483241362082474531766905060759629149321812490190164491645979319440624791609698872099868783489407247878177626202145786132042318540070200179353128820698185504353606975584758841027392057411386782530606283090248650295891247649697197039565099347831891358835447359490052438433459389724385805901810083949725756691581351025167950527935408861091991354183698472288302789244505989088025571462020158491142348219168311948202430944539085352067963822378529085311645576354654173635689229918808497104457306301759505363045379558953447988805157616023686502870211554044750830307406890587905447543936290279726916522313936253417355782392054021970706697495513490388254751714868003654414993877752559595846775122809403588621568555879967625268797300384017729565661202604106013773234990592781830181273277714961375207615385663966382992484562144171664245792500661529973599039420680755984460758571871235607192666889186186266332788209818979542380177754547650360117617294767804894237593257190709285663161857083901393470032876818584757765723519212142937184947679546583577955309109149725163037859149656183648094655237802715173470372213431251989020769928622274724664282716197830860856258160795653265970315461381788976616647150789134635145233228949181193055254182730773623661942517607365286947432740557796915277891010541472645003455373966864002304188336197040017718004704943892870530750616064371419299441780264366312074293942570749455325523242680729674924020675176129229701777940703089981336234609523046996859974693657862101636632983341280407346856501621061757369359125481023678097989110361027546805736449263754289878168436045003771031337296798727007311480105607858320778013758088954384680125651195050887211505236538251199674333792353038432818710255561827412309393267395358371838527884104150704225533824409300738714533270861928045126030918968911671797345720334660929771208498561353523943637657795560440563265479577862268664842245788422019674464122952710132403214720372656492351589805498375202895126604442651782262721181670475065147279523994598505532494549237377907882681697023492797841316513774100874608041524461662595617739032062189849149393737187496176367848699142753160407788052360730071717495569768768009821648119188570761853045086676843976711681959515679185102507182871852631308075188503371472898718724608302133934559581178990738583543037182594048522566960553238843750724863406859567999577457894252338540835297005549793602335477441674210066937342536646242366642277604145995290029655496191602666253768859539479409472051081490548684210330985042447557212411875395691200366780062754110075001162954863921538307281289213537949202824460743864179466316895344703233570450498328098645722320854588045974134928014182092204193326356822955540702738446986275514010188904888430014952510693633451647975172983922694495720872968126886557070495789191733571024139029108470195853359968929785148784519981505229291979154718111131479061301313272419499187466389356001338499982516680254657143711653859138724879392562093237568872895505133783257178493267429787082480554328767727599380646152633253763337796471751650125320053163608404811112670269552871629352336986401286851734983819441268453993393430436442203879468570456393893237068681829399195173426611130465908087740759983212089492091211004585771254767601042740076001807242738189373342567615026126365820660794442784009988787759259112127065272172540310584980360117879522976546962500210555991453354723444568481243309472493383361291142075692915637515698976073603500265329239846702039661511806242014054412705241156726995079299342476491377531594288262120690421875937587903761439870409201265972316065524061251079530946211669846236509235798514362430410606903519549095593152143854663639905010262210387237920038723265404726297415405301843450959489619923061128175161060729580124190163494070251667177758572941045890087171269751629435020865616848671589088146756719696412086419465219631103574492007374799818044832149067549670777888991993035613445805019935525361376275850076496091672637689381478980859556205391058102778021093585219691424920148810874610183552941181408579905975689745895791686810539375890975450857568223506870737590330102057681327612510250244824745214092515516521030298599654497224371709453666954081000977081877119812089754882207213652750789459493931469090156773417074977561061693483031741406253254155091359514456440043379358429912231070098712921347587237382505445352628284480768964081509323844012184881568093016438366325757822757969815055391857981902379087121751651701738979188497527059046059416528704867056348858159685476153806210235130695850353637041702042433334253896640453943714363525934023481347514274017394562342331972742938524666610967090984792066822894524565508157096741658343003728016612407020847168154251776630510442317885811876372820920186210470156832214997291795901413272104620424377174071002662565804256003127146221161338996182847108731038362506333795853106614163211162596719535753642915767292172786303940501455873253634751761971045513627601733852734699999980338426440720307287289884149683946009794002608214930504533687278547976442360606739648323858873712062983163642009652671346610505853065448480969902115580398188325669639520636290247160743521543630839413431234015667799257741860735865538026894432086172769756507155243486675499761717072704436274069215913428981424150169655783959235547460294657552339366494962161203517767441599119126621943722780230995464775864995428521651679781899045921243581266316233585536216129022353374498758448884617325595945983658729957586423939334614869306477645266882872041598455552316706095119735444828043999037538324145691978333027046888849328695197712515848878639767109059198732018965571118297159516335890355637290634986861034489936300291924222789672255360236572072518112784581803368243559678771447813439383254719796837319064490724890766850648936552813684807455688672057573330184635348154972777608669264777500575495777909647196468226219950125534576504304092495590275108950122729586927857060294250067575958249413429514179963041800180749960530350828111644905393973757100390614278934518245362956762820255966638383362706798571958710307922049259844998018641805124951701565824539433397600680849115491089145478898133441361963100175192255988579772813514776963810781738883028540188747400307835429989039118656929798162404694309740879279476735519179801589044929202334606832742570285324606240779744520497671051500488840527347589286443302501076679918114570194770066633569409552751825013164776331660805205444505992090420989009774804643457913885148533471551034047963462334728364691439540476479426490002793565837477355869092411317179267134516729658800792778748122055786034903289944969965750708991690450796286761432669629673146741841072632380426326019251212567629303057128623481209319561176304851827367682925132425599744995045936617150829258300477138610475115131305617596317254129208441640383941145929323336887161839273714537686241748671753793943858057821238431568670948386204828293107105897670855578633733257393769753122867836610575108138334556468951643932345481499664689188265447380451564908507981618712519444428404009857783556639990889460617969754364254214619115829011246729864014993885972606090101790884939977476416778461605695140039037480632160980766006107213678529103139374360480336972891970202832836814593710941523171994124791460629796942715303371715781802424553164632739910002977738370509905080922986336947487615099815064320676799428917163553429009738076144556937365512782859310384591697328469198530145231740005672545430395632774060746382983875771879204968234942160086463423257209931883912374574870350956638491438593656686103475802678558796876571851149489210170552212400569746789463105315563001282007428969943132005744470316461855953874589149196507878235026043608509617760008518796174997340312876319171123591719240905381558762282343370259667239761867452011897649735814364311694874515535443114716325464749371107853784248869438548052594678890942981723500638533638860905453248077329853436358710504271563343013917814823121418391308379935263812970758750775220062640290967304923811163405175510167841981118627900319880983568504827441477476369056407343425280038732767619751253590156825343718875564310090688254859898680984489510107754244977047240660361529613621228376169745651818826701563924742702417772091763495705599406284114477530810072208701431155425936881459435429483538058356005029626242250261804638450708762422776469576403344011647034050155671481411441355391007933423519935434894429962416113058529624085151046788815907810655215549346079195549315079225251929650690162111109941465390534128024137498366631484970561316794908419883136667913203850316875714464100780725587624376189379484460490839241612323208821576838974057516404331711837011958937921704888750331163556832402061666325129455594062015739831299446483077097362577621736724162938296771816698763182190925088945118618138046811224106199329184674534501983900876865161699235913950487824602779275421414505897050539417516209571515575335222024958772263105749997867260722917782355490947178146891367643565959593352070589411052057591656689230106840236182047238384421307475239352406412778113180198395939318422970832143757317652663255720409024546346352373823572676764997597965894854273298578394726226398506846385907451410848800935809065955744834833557108757151642659501086402673521296345064571819751530463030328822207562813186698850606717704586002048314756358674461574287384523170219045691072580872406671500009291848957784970200314333220429224100111792321064554844172134913373212786584938173185300090132890485972428708341919174027057759952006825138337136437479029128285503907447558228779620788511760259840654611235011190007039629263740996877639279007296138041730938144920924155091606007865706151817798898920459983093102545219687345394227600834977340547316960099647936308630854132372324079308844429341596755324959999877877217442595402608827765855474764603495835849720748941793900241679992000885755226254963727868274765565455086297846589158380890246170152910798776069759039749905358189396991895411729296830650816778184014673396041524868744155663094552407168513297281294219962477939178119470847150713325815530363600153081828744304806191736397351327906065441506328857824037659955856714548033011855954029600753477169304970612029415839644060372059188927438223837391725297419323662151019199321481971137713967488028709068472968633935467011137493058720587744795791680585013988580184671913450751968006937403955799410470591142368244649923115695342051270520311936123788580948984688407020707022391824470156082156319852761465393337295370647749518317895475672346670749189658180907435080708005820252764656980176189766902372660961267236318054964948260313499214115799760599881541245519787221099825101745816560104304253945235558234096695407067919911942926021556341492191278714292862800084817923580847771258998241898854538005155821565880744185804747437787492303169139249830118501229963921905237185705539562772637331434122838058255009706529374995394762850159002431703775615509610850875039250772983396644609845325173064196634949754027845261599168804217055730379949020088064061429823308821086458075642085432549937859005079430016418149852090882792835915151264001638147017967615669098153048273594350170423792484620941293324749019478195856224617944257500162187241922004769689368950433741685694705745860223474388629927241694884482699215322469288646872972750230897822571877171507051550629785385009969914348613713767373806255894909529037682599258716631031712351058740278852074668288815037500406850362316723424776833101788556724394486961467367457760007492428749648632131997758319579476349670507505865562565100300266049466077186635723725232344416301856669925842702594893843671317522999254076729078429620244255184640765042948781972685534215493263542401346681647837164101495210829062014988803602850171878810813824865416369999769189108830563377996184908694401801514047025034449402961374330271464147369620237490809888870919720747537089800868636885615074947677796932896842961749446983178003383141343515197871690758589428679381390598493681774817073898523530204628646544887992928072153073723774522787244381556826782278688643496521679618471456701793656565313655398266774341891692628017481119484339284187751977294244218547384596305794094599544530564646811900995705175620525214207635817548463866969737847253585153186741110007785732082962507072161695131316587305683554093615307372167202461791539154173107599743856795101187906466495121039711075487553817220587135777651230680448876357791076762298798011504863433742547815623921350318408302897524776256696281762606360954700683661608741389307910681024407073309075622092976570781980585506352102150965052321528805855557268763590805206534067402746688898808804398324300481908721676919251478171007239009226005211865429036869513897226917842585696348586594874051837518742089697162861522993104043609587077143698426547780590523175808445548084116931748592112442953852834312749400218338602790340019641449137105425778090197299311953146085556486170570097366509146718550966060630684300927952125089578682953760605821411841517672279132988186605146743223252991849851860753616368966885968285125533892288904150514103796923485594342076344250628797959602450347633268235623866759704331902149263992846723735970039948053062242171809624918040273641620595052414331932911718162076589528231667545216002596153351529641279877112164870973123809207824912651631770354304824585652653758317210038113047193693514759482378297393943888077456495738669151012154815950672867640329095521955500919573191383093534499734018393439507538461943669061858363526624515668632053529639696511279127036935872787620648139174633816450776819141387206612358716788792500756201516222519167347254960102373002128854736638333431260713845123470878645330427766206664173957325987834506032228867757432741141532309271424789372848578290251266729618384314687903721779135523811308283991367470228957770434765642398518919189696625082153264738974042269698152223360355817835674956753577469245120374843608892245484918654749329649301787365959578469775812096338209288279742695526437917506794543059118008281894232599176942231242907032733943517372273942847781964061382111329180781701837655172453014140825941882528255078074089342045092969222237445668529787415210947938230026951298075975257526689704985210830125540509925960718157621006916573164979055686748283048696363028606553788291027453153211621382629445200497350565790956214766670885506453746499486792193921987115284502471871523186319460061707830936553700077446290197262030437471631232363767391931036637124646691518937752439991052601521955845582244455087186107201585280103597662319286004148343926593463653932009067515744672664393462747981101540303868600152756588835692917732811854874468802994526757378711062021077162869859667098950894910844384362299898447286319061441935567187679546265199897090163772692377988039313910335899195826157075948355734837725652219114857686936747578206220265081914343321366606654547793318958550296292957637652668381895138657560424952310189302793414583113200914428461293722689532146992684698312216685042853579773841956604500628630235907677557539995277734110356381722796580509924462824936846208666153641774271968607264158911988282076485821156488796700638823702053918665802488103039338622424571505644904941994610174383337356930441646546824577624018043086542707251154731895202438396613507704656655413404272416293485555430235449832276036296337116977232827110711936573970235074631414283784353447758514897149663540826594714537357824021698896894043902934500864210843364271927314970799637871365824965097821863035084120534776150887037695469646373211355441074916817388022327148977342148415458501931473015721911978401718246113190553038197825539812977765701512704785616568503627584421191019192516734813902409473013102257297721599357094784252995677395007447835447392625357807130084561288562936425146000098417778119877531821784912317731440507816554409715480135891281213280132330108182683478657860840608647478753572229902424690420577528660966054372355798441321419385454219632895119279006909636444564681839290671780924872719176783226599021725589845541224094345634382814883862909029963372333821483878282777341752465506341273365912797480609603610004635475545586714161996658130536159091510862461390871331381093930402783336912946523160577919519660304341970128918611127752315032064032026884409398547418847241533891269699536371134924835644518160107502288118788697057529755150267717788981776053883917113825046645604139948942621874925594131101181314689122667194553282370210512398352378026481088752316675030656049016058218635729910714538088227915576313703920466071817939697122349286272698178510890818447619436304424013915930441798541670231713401385340369684077328923532302804485535074779176369567679047406044434719985938797109782994250238686324593643378101542803428813536288480804172525206444630894185188518856524490655870713439464452930583709177664825838772378066712742001988812389402489613761577910382968857804774084504532356714529085788088922629928635624566238791324025299375573941683846130333423017650588285557844137683101030506044186442017228461397616153031244265525457728746655724829485180290971646899052943776660694319355640817710444107439109105019168458953221150905997100776223356982012116028857364494698333895862519661503939465386621868366319588842389535464083870883954289267353798267413239414133320095784699678710777107540271954884865500459488347147057601023105903388838576253894919733064457321432619549982557049862281615191620233546440710318332799922288505547884827149601891986593796815670962265382601701200344290061006604169386445626749977834788281082810204902975999728716243069362574458587877056857346315109865043552720509906371834795490684376060458276029694912370704179772026001388208641919690146488148100967791845810466718855834129123925536171062574177780270173088504780639660000272680444206824163508271141703654686109127397481777162284945009340704971136732900997779080674616242700661010120603051944384181566569090927288519088033986866630835297844158504285949516610552388223612702377948827441744552449765753183597901374850652383718657653069588642399553163136861916305615023877442547119969533968998357127892916444743041552481890693000629745492333438019126873971257344853601392992395360229745778778089784080334350077576694349939700128312302995572913909497304990075791254193493528359511177478607356506833310234102287216516274242580067660354988045914526715791643276063541465644204647067125490233126035432132521853248917304655157028611508324823683330289816772462947159773960897296653782545608034009388590321367770943684120686766210450135137661128792281344229821926741443484043791346964547154019071691719134019192525694757221190514331324867517725105354346812430052122126902649718884729899860231677137028664853755864303407908537534193516648737586078027649634620852704847462581295682969571922216726839193788391564273476962910372252797365055725744379617011909764135018674980330210759171447213863125904245468453415018360657493224719575460635745699703208016611700997984594496967536470524505400719305742269747155994480692117763693114779439895528529680678893765810143609635350552324201484772389996253134376243802680325787156501172535186689465331044639174924082303648004113150669961742631405029152005786452587179912396232766339578397296571440885202238455452447063811237470493808344012810128398142894257222158561794531628976512777914632442934474747009306465054897653609894247385632253519096788711305025117730215596264234356180144041667210330018475975638306697246229945807959737032204044946923139253040786359292396413253729433465371355946167651630638136515206516799198210620289412934242533803469595633141299845631514458738438167922704065969839305402439416594898052034499571736213142332951898740576596216634761524560294563120950268060937070065831285631721298437615243745828384403834924866085569248448756721516893750703463711261174138543177174368837913841932928146952883570826883817386164398204138656287529337814245846211335343757667366801683401321388623349435229810455703798457128092040636460111419384824191652132054581547671746366572109188308111005073110252891534161021927232213627153015365368458744164529219297743474980649013363529736451693083479672781387561568780805653881942167229111254925671188852350421860050922320030168584243190595012009135591289866922772739144147057853721002882390656365599414424601394742725217101235688425728327445257379742305425383136595833670963538857032999152154191762511788298438431245226658267030188486485267314536756008127674889832849633652373142396542676925189254611402782576784494776546450053281738953668683681523904971892722819714423227902869215959619711393449113906039706662774894473447272601209259207971031203614963765728501866286447458573695977195046419766945894104572858836382750332735716948392926598872637882619671804862126579258266584315360664980955409903698687167357235765273543475304671598569419768513699075123417322779659389531664446777996465560545217754250152110988117438377868304551540032449658478357179228999550637501725003262797796780230993654852900568570964356386126806364931220279659671999956144668152553184837302798626192041547543029995811305853504550512498474415013240367858447387800095141473230013948129813763065816964744849557236561170559742236558686146936917039647818605123298497068877780252796732532469861235566025301642716952151936803094874416577639549529570370392329687166782031704069482198113578645048821352267320597346292285877975767434922692392866490770636842824224883822832805676380949660134158626305168681761710842177675835592662971302013586434993958128460584388858345067259386085460887471746955817111965626684396237876158991680701115742176780747946399351289289894749012008029191669242160474175979539372436402960322793232096057607391013079736665917742459406677434119048852589571509723243680618495405750686654237550568663420779692595945552519538019739244229105052787670561710393891122720969237071249015704855269973788823757324482090182858632645810813503578755180242459348036679425232771997250134935913310666927983063525046550077443071858983094874269447024877326933442669936559139008248934751829010504457371021054130977842884572499557636108545546364364743576220110389161858663452333273147388665928164136033670041940324738228808620480947185186344845692620718260592133672348668572183358524666238894830635221447818201843210623739345838712280810903786427728341756895812764130519719863204471314285328999266199292103526721617653327405141546551016885893796579625329571997221480446125539031302961102664967479771073836525931952618151753934259836560218419940419949142642126793214148643300779309396197016879443439194227072741035746199774927592729665544534850126134894487824740088633469641808098591598030415857359289170067017061073350423685284238298599634221257487418213704314490976355346101797337133955699767615006434970868140336804013760682849468638818125773632487027486286014797929249763643030954089645420004993204566921526452299607039036989336875681047428091740874895001235587598185655918294993688923839392134360785042039825228250379691055748154834667942501894183674577617549063716326225258218149709990784469482435762434174674721018233787710843133772176233368037842025418487270730061306283363247337391624363723772342049323267731760274065927555318141790522549831024695160989370877377292746968236910336606043696742946141925282169878625170690486011438355256951414451578071700643882844173181023387231879272420275119675234794091065829108545819592283348425744833179163918237575219691658710115886968922629208127619352156727578798877984889896679012664493173644898457535816012029164107346218327578890326349578535663868938858193554115417465052761549708128550635172736508078830702492723940847760951072592923296193578953654829156674942720534487424211856546788493598476335953443882385828036251741131901976444468602562931326551267366481499273135713492882063840297087204358064724033550878572119632123831704251555251909002627974924724453867849147190122548370576848135778557837138821489414071379714917931979374105195561190402662482670796837212216278911694459335721346379836731117273238127445159250106058676519860358457087885764145172326323938556707838657567261723509432365551241590852015246063886861422119957639920602719344381540349244908755008672705387607134375989190647657552353533883468708206370924785941252231849622288009564274124342761922439980929462495454288297537385937431454425168573541049781352273818516868494272732939945549815124323369330784727763326328016005088038693220300069773485092859956420742458771640167814523268224443577743156263385341689870854787539845263023325929746621198128135265093097047235004326282350238902555642629122549097965018446381998739210193190418009986394773868670113996746110780082020911020347630788734439401555474304163721309109786323386310137405594972323323846396577828356927348275779374791261645403434486045641934744114131517369326923631242990087249820478230441170750473763997434853921162664098655371484445022497479050639125206965388784778087571240082503512217153374082593218954465469323357059977415243720513657603401724600608674437748292364525282616180874211642516400814578452587057108574988517959591163407960249289489385169117662541143960336218217461371902637065022289424525013997235404082985586947829285352350215744015804794693942549150693650786520716405075350814962646004934230988776569605300377313334837725257689752559702704878016767678440417704971103079898488891075655772305844440191609536540088723377927892162274075585444341193975498744103310433781353382779035621822092173055914126407700123112555632415912712647553410765960308134125600302162529034361747798653117547513327652746268678499161867314236999965717765520762390771507733475699024734303343538004575415413136575978891797120818434248665415716724795034901154399439486523047194911090108186832360448980348600134329420636436143446939561664096692535295127230292141225424167776184202877677787578924007576880705749660044146039246101276137759186824926978605437414096975425674452321161595868906037697236431298729633231790838520761034306617650182508650001213099028190299965812841733297053131981444238450849925235934087358924239957056895540811074013854429446742576076581089664003031475122696834418480200771854230319414431040356337534218547516090189178386326344209009467880724636374072790128773575165707534664895297816820974647275385209539903905697329498674709997947041107273142657226435333000908476179331611211620146426230566429968273743069321902789412905272670651121116157555717153362580598792886797961502798668578012217832594397061089731870513473842627718540214598990121984181903205944622673245134737146317827235403297948751279277904957433643063092049599958652703166800065236855792684250275061501293483774414496250447856488853381355909997549273560159604462450417427750431812223916465473347953229312079356122079893087259632919723671415750761811009537317802086393254509629837956337586671382291173643329225950472274002447228763833112955114052055221456415759868031340706636256389912420096486152558017685893608906807086689789391508924709233156319246122731501117851218079156005762396340158815567239530659817607245197290767430752013858452516653510542591099323563906907521003305251085159229477407394260998945303911432502265731747370399897691419291751665194430332486816458858846383927585039945104611500390602363748790786322858507281745726864400201070426342038902236161512815465367506792266450694067292208644937080364318757500339110645911383872160487275669181707063821684634024867956104712592705580960665873478937697206134095417916453388263382129639173418615425482880310454610845864538674067592990412474676676548458189674475103335928438226886360815762376452920588063095706416819959951897760704275450133485343818260129995981677560119703656540233848977364621949287094579113607331379536733810414445127445008115788518192686380783109707938524237883984408820171055991536564861502044309408482500195650864707478317632995129857155131550247135660314373741635257040094048468924105970318814038041767608142104010835747838252958450256011568193383476415663902158600295124735936377591154887954780139614428638631648447901267307049908204319556424079400569772975762289972470610631885329762787702166077101359950781280818436938369740111078188477732401296199601324269654220542347335988305577870685336390203428002881937556905079079823914079056027834370522813343291765384366167853832843863459835095463036170645699464407871374866114132462393879232648530766611984704807634968620345698213190261201468514752405832426883325217297887821298300498183753574749531200887146181327804157700031633668151222169382988638043051208011629829212518944674309163123700546412406233339183737838612101111562015445934124442779082125633163373849985844572190748877988259931226038567689569347259902615414341622197845840875492658814701457177532052055373774184651484826417283208261501707453009157486268835498023850270682601557661336767035936273816364985467637342129627772563144597743838409957886778102691243954082674191838727664365233323624402640776031493081424041778410201068175417242367420504473690381358847111698607069961247357759698907819066310872543803526095047364016959061660304671203186366784845473822416551355099917167779487411675255340274681835672776784230814293064958120265813997829423331119042394787047720598055370839320322418719624301574163918718529748309115139121089977234702520644611255450501115614482386370336621354296056526805498035812163395490304089167328073899066670957925347910257880715600896451474558879329411665057182419815290019057156082041698882338489650424488224844843259095811533656903969123738941524055317113906554516730206208306937128355808977409156742503257398074100228993439748233920995644284225944112831572626702474988411179957199654626719863379748166296831106811367743939106965586936104270831235007050013815348552980118524396675026453216156545132558381811511208500447641729922180067270723059456610905491553306541019548076126742827937404925263583982196402709336760841598624783118404502906879878507659318800819405988894553649131128880392029686739468645354033158069201370028271653087599906433008704172847652835320532446353969860196064090174901288200893771531898494352115922478389753055183567647408966671624745362860643822021093443099999660945501201145264499466082574012966645595442830000177726100469447557359437446106031739991976523335050810692410115968904333758889100590098940729868307485211329726676334868759074092736169843889082523787841942630292387741305039634988911230281733776608237613803746114299509395147234601894638533180237107035337613429358024755734364064174749410317118831727705299229068970182770890713660269082052733569321062067187888550191665159804731424714063048502971075762895850401016060620649891173070077597932228691053183315072009707955855457804436013181528922867002237787663195079411144169220520449078025248989770658765130116862914764636925932461575613076623110966874025864794573033990576405842673770308119254143391970407927767168503395179179698075865192286812743423741014918186347464313326959555623561108927098208010432614993631977298858570181426266648677089931247938294077356237959301495827556988644305548253912747881553355516302894290048852760885893046414024586587517858632132926933519722988970383826291507654669635886778028440029856110503229744831038881435342046021690278369740437341800651218336119590290063990192086809462860553375333423405226186917965501650841947196685151316475623660075813026900808729436818260546140425120659686854895633255634951986985762524154020613979378894113933015031786740280066160365173725129547953492992175838158167285230594052465972953088589810372375358331045511335005273733288063891465246476198316243175750022183441940080041254285104081755098334363268457052008299562089961802443678948899583618156388067335825899345080447218748504285230770483404975034257452881632324903370832846264198550019832673554586019339032566905772169272354416482973062375499427894245330060787036408342340836648667009199448743945735160577044884700748367691302212608018786884190725889980221843236410493619822897832036236263916469308560257776272242346429661844120809892766562936024342810075955109917075501683143152979458272610313807542651316350672057076887179803994024381100139174534369353206235798820879964897415489948796177843494504196432322609958271504223420143921522242966376600093015028688014490707054018014666584199388871839627939504220812989381630439949166715228170431358970822238095286576122899481108492937501219023560254193663028616934902694435985539354437279613445553092127732878586870615408434925645746497218662012789942961373247805666635151249465798004279834806886653131001518625535819689527739938789130327549310028939613549767160986927890108158170296108654669469000914913397552861871465480047008993323809925855252687354641645371207625495915091193469473776234316286699721589901964245122970575616675235980552516631372730803768899276390580363539652817243491726771570545592828159687249546691462978687798669788585096370707532089904079106314052180486284219519785759535230342152851782176421900198804674589451321141181847503725700768586408835392071215907705647976846448931464215994645753518998753053240986956358147037754490912430409503068690876810117795451020782121556878714983606630983831488521194008335886029157525099699005219077808890768851663803499792862611527461344413906029243442479370440270542207896075597273516938171250215391738016303803554074181760551878501799079466277896431902227669674064156746782499559805955122274339841195255620738206069530155652525277221766176667974630615436211283209491361378654221044648581056539278450469099815250165027372736133905158480329124871956097444494033988196855597927148052217996859572044217493022524314127706205545152786351620732579379911172168123939606375564327407269397509166836179231979484780763730792560179202221379404137587397926010509310195697296960391221721097308214597359175298615176031866922872334687624843735223617829798796243790652299698634297509119443606908088466862399848130412424740263225153631441685863141352522021592067279439242931684894374004566263010691974905418495784470456027174058056251674633554088634933687182584113684398330614331444528682186127068695853605453954028039535131148824136752452250752297140840929858700856497803663567730598945962594517418148893373526644199844770076975976537571033157836319222279970277533549570768857938904339145165697897628302220283196236729875530102827614037381721336369414391960539767252351036041839924004533373390942895855519351476726861497313125398240423193887487489025811167093843199756334555358122009354207783870962950524781644001944355993926783671741886165662223538744680047672010439033376192247593645743054070203912704347156428845573882461824968082480710981576485811596337459397154950329655140935113078516613129862017329049397046255661820037911371629529383751649674879921085372963106767732988603239625178244033107672877690762639270740773960596493878111552028812264695372777222515099128442226869932407707950382678637280905609957376163368706086139423613555802131014333514222197773053055279150389076805138906254119765518538353012400563082683764030666824221062298063316779651873376202103698326078140940255467034496844966772838192200780206657060053121079683508114326704597615386105046130369939858088108868852395790015403936880639008749800550931426564420099104983825856919117313108165940465326074970754715341004966368553911223209424604177782291249796168828400827514585584695661035754300417961617914334376667932466465158753181018697860219254960304660794994238153360333345692424148310582231776958391445929437834217547977182527838168034498817687461709384218076622877432985301215671856701444525970415943425299982151287109147431355250924534157020720820334586351044505939808924111884299462619708168438017390340339871812989867206554637303544113614064770475496984510969703395259676265759394038338685939523616798941816094759443914207267198017380428063433377435982538441497136128335969697762602363624368825999704400675726857214993602248877407010275503798121321397439373044176788852116415899386186912709210192051401060227135316451493923980612551877601670820835438196897712758349156040619151719756811749191689852546699184149730068717159703035247390320829004243356503177325388506908431411224879855469231644292464503160594148929648435073840909951193273548460280136480599641296072745531822211347110721039146915334867746678376601605882915485797563683648066247809536805698445413295421903626404375597807548801993220248851381256688999952997732323231865142170542076562165323556309800783646406819986219609186539546590010184818295883811312002293955231624494764431597629343156629098139903926855666200345704793181315511353504274060052682136100384391799971342659791471759251582598137342275561883538188736607428028460920516629243015618436889615708785876261986504092790649300698153596437747167253979814047556714869134370435594156281841516001621414956382618737639358497407763069308872726498880073569363373199742097404653800547402901109271045415656530192069599272551581675621576428570100715015016344882907107477579252886593056154374786564101569603782556104988981708374388150914627278219645663348504844757575640381670537209785828968044244420263547013432765183619639281578869212735041924602907951135090575583448153205712937561359025584069335263187353037924110087213754134594250299810724127578545657856405790943506512698077454743442619762568498041497840354679529983527579804762223410109306427122528387350313887997654483107710641495495690360958765292073048092165227255581520084712867999640280880958074620909128544436929065533034309375519801488548833766082603456790631305561140695417524395673247126629098686235871163100028259061910845207406093219699858419652141317286125468048869903951325905400736843233543911867455284149359850316381626582742611504717133034349879257516421559529155308558856328353504011581143215570998759408697611346636235049704005660663496862211333693026548028085463893629173860963187188434193379177895241158830829357178438542514523583981739640369866111368059332760911061202326260366299822230604811249189708074452533066146964672690197839353814013705364840050811822215927958337153929827477833745384593636065304895414486630142488117489883664721106979570141902381507602975835249395147483641730472005594050947085486430223220991820498744573758465915538953210998846090689293944690000490584487386019489422549457464039766718163523522832726688689909146437636746586984768624680424514341974434842350732329596777557640613367843483222164455253151679065056511601261259492124758763653922684518993423537463217330417472676735045709089568918192878180142743849046292961843050029818037081192053341421127362822412542558881292602093599748911822578533514566265973751095313653002048190438372137526982150325927386119367034886072592089528525794080252853121219767228021298382387198085655338233638611781032281581138551902024560865009639105698141548734177641971194952398548071944370250868940659622120448458189634985939666302621974156465050404336996317375331220167402505756099775599646051320100849301524239353254791127740998434958798473447077769384234577642699982913908959020028053351382280592871577949151273682115661123535335379922046205752698843323405986666552880917374491097648936779519460591622491833889110254242355147811861884395663792709790475891153455829313087004374296513962611907087678799466603393999661010005612255796900327149098096160014802478162340893410954636486042065583269819284232833069641557185013734214385597169355275324145427820897497860973172886871469945754541795362033106768437916670128282010090786642283408635562441251042615333068910693663184015043593208826411405568362750612099953450879408178349081715560037470259657206714852045144875347409029305517326000638280794222569919081002044722658831422700535895715642289487082147420324383025186565685076567403887942356669216097837497535763260635488636894328897733906393249225751277143605634397304994308115016282114440825923617610196125771508337563092912752285399904039264456355052918978033103286672691739635665113435234030344504101334783912416783399733871192483747680731614876288907502298036942749257540081017968740398883533195351670803491047991717114306688321450240562241307851180171570576577814538138892658398353822757865085512873498172798972862873176713918502895731692449323813233778028418395421737090422773950772769186785226663697751804566151812518214651595986629507799883288620380680389090280574624571415562756693145797573482268233981428536729725372156306655263981102288517383802390092173999423322077630238611902127356158578911103479946012410965286017361622744073352369414846049678914243919459631201582039046460357619176034592455104571960471774812525312744219083215495131145281244928028329092308063474183862344863008246303406149218637629604677322344865617094759464007167844973545403772075273696496472533332178532634552100989712259579324739362637229952894918176693246614643194690053710255585624802198749542334517830783937179362171620880657324415420860464871588627685559136980417915505346602404276647315393200296043607329941960147888334537097835177161998501059041225435440721949464930628483032344790235875996078374543107678383579827974042938117267859356542086766691956018855758693953587766029183924442765040520582892310443862510788430680550301480602278092716891722151729328040758580929791453382866879345781640794582274271172893175378256329831023920750436979355842539787036130664408925689238442404994566237608919361814898066557227190149579830066911571025884642749519767270096385310872933728998129725814455796157611918067181164572626849057972352153160881239801932798737095420599233014787190167347801864793259987572290796211825698106927316041720585611468878943594450544101463747348052276516239551149978728279571416773614487735031721948951694778691437814834195133583094161641674121279249184256843095194907077480622463832974066720266124986005970082557300713279297744873823579281696770287055682621581167812529633091257182525622813961341162823836989909987972056390976132007478309434499840708311690393889245720095481670870768623741066269179300365418679984493318421193804051042494379479818390480755308993150163905648938246617340930223240285455861367634456410728621599521319493628882570476005177319260936556555419886724260505311460295026096342624631609780517266373119591077041409589276948073468265664549197666892268399134589469940477055181160419371130145505354822712259615109626797718464998141531011260919099121499862857657614463374143673255460962454185045746311360184097519634935245267276793868539390800957921021137699979360325163547862750469235354351380192769178562889130450543494532512847148927353036962935501660957712377752414800104096736792351896289238484791231816173817493316295286490356556668607836040333004864634492594363437749674936842036757029875995003640528490999225498767140254907290135312128897318640283623965267519698409720412919759426005431504714001362591664084558712185779123852880850240226259800293840025084405780312440118804807561245326523404226308608738761977262905306798376251470947262660626476923116997768030097466366478628389242784037459961081259053715534152199819138742175242265511260748057600957808093987520979214449993716318726860706579590586631321575824656572693103772644070804753621215430923010005451371420126212629193211541133936636559558215579367125037904250048619850036602080313211489508988867860144961831588695816936835713438133139636903764713690488604220692645101559347126839504945842200975133308498817817136910320834131929655390128950296776694635529944591053576583753250394414060056523385525802557693185177090062162435521315352606664530717050901197235911580709322163324102162895375229125023058754910716068387047173052020469932308849953319107894813092967186867675704062105566803335001357673611493737158331143724785351255928216404542478861610013277459970345243921535445692480284366667981017529627978753807210978174097721651537348858180909725015514240646663191523831960111026879718668046749848363207627299686662487103145181845509338468165249699920161224971422763468304057709288489420912483780867409502856612724069739968984820776932790003241927882917477623784359306954883296651567089027682748941169470506919757199218389023637105103428639543307823201074582000007736258799021259779773136390672566237753928464889652915189554325349665292271872371475681233698510001821194810510920021725525508839294153318106214399802510084061122794145206021775186369362603782117326497683601576089013494357702509826623569690743493593705651438686826512201534196332288957902813839622916889784916037597221551998691835819408633395308550246630205715696888206574318193158727619581120786967796298752772603846569253655132001858168466766405996994973194582548200149411334269074098603773652973671425808559442476574893020278892131254875353210163565332248305505010778626362030111249784439315873516685684900386704450762850107447909200030534845840851974686505815744499696244797270338136301741351013073596252380946765644763662358817127438973715576860065934543972505847422533411058953247208559914341066383350439364251554898734386545586303813085839214179585690115177350157113729720188834990393936663721501027515519457546401990906171101958327677422750772929435573936079294819559982788489626726805271668355186107682448931834943992447905496197245444528881353446632977389930348936455555888045718114190322789226305950276523628872695490290263600099636629668310891209491581087360276824955843205030947050795892820812240703550866766286906454658104481739024065845217374944922388935790200969850656771623964960524401281002630967670140269177798438678281994967744241940270115781175240877049516841472668363728944187970888934396490084607069638746023570613671934551273158271452038950871869035875951856896554619997537381991983831302374893846056527305296655807628567316525106913400834912142798780381155769970332883369359714409053911607580925005637324436895747762715441868591376216290570830529129135157231446290977785945698409670496029466307470792058555300974126267270997722280090708669090132976592648001254345902439246808074272896578072886596747659640271541442993645842083699821493539865378291207259337535437124254947890810191140444325716078485021858567849100109486243992343980653149925981491547041990354389984509382316981259003744366139142062330759854324264340398878263362589422865177910870988697953252742744813234770460935079798976227063930330297964374076361781050218605472204511171974348079028615565503902908170166165622542909705674344497115179931578537194044162953280876224592964255188839069210967476210827395189400465542049101627182442935894110958338825171124171911322301162619327197177661504809624407803825331594721142867494454297865245767389834560022987342401365026061639226855468547776773713696746558399866626430365135340030637551685999829291332397470954556973022143450006764544994143773153436212008920601731269155076917937353373784159276218479176743111950015804921251122326876020558213275409623790363183620493810319746311377616165115331154849502968121942691278963307044967943027046165167184588462096996585339378513041910463854180404623847526111912780472898974286297309631419103935336085833932949880868705297102167597176855280909748946508337474753407943496051801289416791315385002223292962282632883150660716760308300397985625736759987289164843140470289888339041809215670437972328167616988138102169806462828282872475116160103185474683730514914125635241404877593948862544600499470386536224880183704257453343404579181527374364333132684561629487147135183559561243372808515967090998530635495346663230261259900926945165761597839789118063034511365607131877932684742845351993870924307735390704028280679334175371258911166190544438917405238206134300457288516510886668916790126721366335262555351228552265240288693720843458612728310291325865903769043895398955715837651975744013307251548393187624897331386534173866881787615457737091636283011976570103880565405767174961641377774033461300627855892298568287379973804784122645094211249757700873793112916888980398335809333149924816224713332779759933372194670947045528072026697182274404277606234822352591263695318675960877743378973918646802942922609914163707097188304041694487157475578788758127076680904043022319237116456915086002734852920648194883995481524263317427821038665072722546369678022161333805093982528530497909748305900584089236551404949596878106848509696204048539223414571981155580023573621683265512084457941264763844018290650081885531025408554489372490460448372524079353893439199540509856788187095157781811455176507343618554197951630294157508386589049884659941188522587888447444833938268088612261131750947838724239964527152219807340057761720585577521484248602558488382324644574917952816518280377378409915843011487626688065513800908371251464427921341349070582197438972242943465793543925208598662585410529182924548269885142603747579609189235383638000591669408239954328286415822749285930947443514966021237989288777202418086208500217694519658292226118543166555218450364031564038992128642662517970015431200343239475663497689012528974568491977206597434459157539876867078392471318284192584524258113847913086795964827518546429690315493639375556454717279609064574315196092008903984021774008537120330529943389460087891220740862277152899832669173774599016511750560355202363886181065628227697936538776093040807876443866816562033814418900925706425507442459755943604050048738048834886347230363871913245070810164117710630964468851750642722625310615055705007750937489219904498504993652466003252503264847945917838991151671113087298849108688546493497065297184686195824210368068572852121103572381889800697017397469380536753865102818044465206848029853220205690394039788827620886666761719811431952171297078777837649380049111225820861361870178738758637305166903975974182874069928772104017795226070806292226030875886548979119233017582695885623850979674005577774175439839348109119356343157749367946034886645486988273242679967632786043597489167353332136110647960917327687023503729687793661236294058425122176573577734803439316928003035837658172777450650776323822508839613722650115836352118716981000854799622461766253426358651138493181931025986895445931352340837592711286382113626348537859581086434375328273892075367278690005325847928511838201759493065885164848994253401150420696767437504234752146910036491828576757835031561223013657835716618999564382631042322829489867809029451422359044154242799600603034431318594493571846524785463738589797860414033301258395374873744757080832192824900045607426109117611895304754262380802953539679980002788051237039661567104134236401219015470341712036509684684453963384378309416036638619917957259065868208025538852175876186460672430413892841320549504826380587640256029877293702018192447710999649995826303817883104037649423207912885875834264454816488108423218902792978057696385979785003215143125597969004400211358699888865888010769148972613955930474799462963650258284271103516713199185475193453553207308448333447311374230704603377558903847529780151562496437155290379117308209315550357180710638778645367011319279342205928481582395684709633816063480042154521867716504784881648609083586459196114832746933214150691458331254712006211847924220744784618596781071395864997234690378858609014928008481528766311594077069974447761149783634500180948317629296129320635127658687446777867797423176252598558227344557092345239952310585470782509316305826600522018222577072146292188549125831553614625769250711231108234182744663406454380690691164133937957337609241122716358856863461413209344427504735706249720913927789996454572502516838818946366450970784469944875782900462794553757368555196806287345149401999610486711938414664686190163492113108792446833640894209924428709175253002138700792885322996497280375863827474518411281037147405540186669642116854704352207946656360960748699225916193047806099628082296637577948481121092865267346667236290527885295551380031323509837925105896238151051068414434348616998901630710027367613414214248414217493151382529962129801770805208877727964684374325450423991786856549135815506052307815818771424549945125860669859890033104885494560439704549189624752305118003992669363547795096652139285322854775357846000693671796319203386126413513280536940114271019757947388168809859592935780984374045377791414191294072491303227127174490397088496889548505299114122979305575754506375931325491424065521659812007040760046608536432777206460066070346081850212417285928894905466196381560562184077569973200178294029224664166518800987579391361936728415682618366522513577903808456880469903495675243284547731426191418343329987704120826905636989079075044818737216234633192508177614759036964344276781167341868980439748556217122043627198621033144960062136946168464431423389152429932479739305478216201211605837415999516576106115837534275330572497142784494744920000474111819746373886879716000794022894766624898107299123123776990752242883409471992511047287403129045645897753582070475673734480521168050105101418097799282997413195278877643592695114476209156867301463334088895270728573249462858879063178960159356823786676171864501388144493361943889298967226564794915218216414368840187231335843091818870899776620935473096382935287630888532768270083357675589553236029245325136541427598345320930128977282178544166933684666042325011260786098676505366782203414280843900772432317877892424511573281125629179761036685567804015068718421547157565185593485380699257894653126659648299484306269506608238184727943709269211986766837072485313052106272772076566458895176204364181391416081884426371355381045209399031808630567949610644716493191145034967205356588185459661104663858935697301943244837670604123676615250717215152568400472113344355064821731318150348637284893374847744538650526727891672770663040446966677351703485991517460845196446556804698615156611484087045191802864528223956080927194163758781415088397477168462020552103586736618536328528722876152102622371786554405175703032489506977297467952822160430776485941404411929139637321603647491829929278329947138304620073637762600785514369400347990114432911162660031227843813378782476039076013000248386973417423081938089164730691486928844435617824159548139442213285833205448433592643585951341405256675097087689828540886906138851270094222784260491431496649645880940614967997021712533225354690830554587587471194164196056299151452517832594728316493663564072920597141090690422999198249187439377722429181816791671884779093888769083840510269509777500708971973633859576092448530894921684529301460843977306400730502381316909222624576329070911675178573878391533050765908655809181713391293767705647383329141138550376780777445064487394392792779989589139582693950159612505090752026763174027163817387459460807367910544136796230938095093204491658143988435847203680251940248955293489020279386117474075678458013831373371506346557605179091119363364579977035348790657229643082538595872198098115650722483858272592637421919811509748317896240235617297418786429649908125121448202744335573474548336190001082744733077405761656838256957591922013586894106563545136353969938406205355335403990471109721593429258049493767468200955283394976756771171624557722347684694738382079880036798525323406308937195676194294675629413331916980570790908684200041856648378402215101274335704762404359281612464510947265029516225941438955507422995521943378703452658512189917721851905122812120254320113389204860997756006366415934809387105746992310336790057141540453865261279138824094503903880277928638775077686419499310593929508294917315939764069357466437180356384505347801717890657702900768469888207679460442798135023928043826712362497270422260585132689719308961375797976956502913724356567659993635853586172492785820305119412299660785551458596398380659240294416348459105260949476965823197854336426428527312837017811379292026785764699025532000374401055177807098220286836843492851699218259024274394498920109952468019291243631993579761871647040120106286291754430755642360374289746371731300026690433615210585061049556913087097127509212182031968038694477534722859928644828712251111609741142117423247123234633791362649028422231099915359538131876554230663210745051623665024849376634592190404744305900450846503042077723496062023272385393194239116938099840143473584340662577108333265283791278047988818666037049272591617309595200776728418404517170035240142903566758002561612939362679109604927853574233058140324678570551298796487354714785658314223909574078433538481126325558221208951466499829254350942885572050120001911002170737823177518183554355968381758201255921375547937713471566561769863754190580761278251961349251463116652656759303114686064267815898623360056822522942643498577857672232811296640265069149980791859658451042770808454579554317849370730840090942716633657192965869845582174456220961045763417784279523481795230424495544173523516732356273227433775516276488658575319013082726097219067131065460544593694931441894479571207940532855903715607676421704560462208942682172183051153305618580883510529228695116040656571141893400983802888357575801948121044909497580186795873856290805940161254694864276868800147925128112918134585026634246412492248691536947831008654992954037230765628460853761133638842454771167548975794886069654850381549760323177481788955790969049390250443729703479912298023036769771529973501682139531350141749548552966447830860365520942910496508295581342533883034420657428000090471837918283015940246152317031371698446486425653466420518264855600002871669456083660535182108045737792361411673474248085054962762334671148742813124905394014735429587073845615959620540612318250901573606378541747491328284025738062987511048307807718863923663649786562255096444649799587013145049418196958470842446438764737593937058608225514964059481548481525735773861364419299756514230864000993321701438891036339390635198905087008552389948651188592440792055728158947653032142910839285362831202533826844927557946758837062388507784099973332751732530703163674413517558629343240753606017684111620767561571475656211700337618533759771418108754015029714387100126521111751829570647600541559764625598769607020726458948694693630325547949516444749951299971227259749055844162563517217573118343480669083284930169676969700726874344588942770206398829263596565619022142954272998818301214466426079333370524701126195488050429439226175818424685192227728601997964090737274089856156620776088241497730675502543725424003323238926773374978796498789399824278073177842236283132365662608047573387634878299085250275256917832170118289458996511791979924366733710796828415566990011005145290956710591589725324570257553807089937873492348023180966490736700354941767831623556330862348605493916135676113610996383619345484093703848012581756216553913879631293363799896818607914385659064708026049623083075689927740093216607686388063198332169234473446564499205781772642231952170185494734282278390777740197229159669556463087534836246196624039083507878612750634060111855013711283982033904972755163374910711422557559003155848286567906123780529820019223978740820299352919695366564434789376064761772607271117700261549487091140527017708661371271061910272420404910741035696239064065439316776775493989005372849688623769520626943222307736409225800791126847472228288719795441386333730520153628745368541458778637329728418723262667238001897688086561454819189638353264840472097268676196759231519164638551110479135066794503217979179258081220842088986511692732032095100389575496491578810810461245424582026196781802408566138344585477890129475720469486848045912421872003726831501960980981755453698206603760407500113191986184733974095921530668318877043187098805569695858374642556433077058500871440975810393013545584501967193494477305040146535442113541158963486084329638802469243316375476815576441505405441081846262432641053193052349721381624210522346348579650879510162341103221552312854246531048876193625893800995458185581536832381972591202007172475056379794250174510429436888971026876579514885586780729589080506308786666431985262924623720600485346842996076335831276077612697342511180373203518761492213287459893038365042388582370851175598375540096154090296135168035977401258126099757327981071693722232305630235560423881469871148102862812079923608653724410212438352320980763851617850309040277582407417675515532999108014294159624911592899503853496584603827783127676614580859821257310082110854577925136330353779002056599216797584415637829774734422215999509238391235426298729422593738551043797624472677325254270405790783901832377220134318440705292708314165724282770551170024828354074753416424312003819444028906817410517467937531407140629578463431213007556362467323985433904871756483250205274940141383089273592139829213068389256417682277877285231660555040706599047607020991747337064171187226602058111247603862146823785532558996522148996991847367427740595646743273454191258566784222584092682296752614205991201254826013653565144191310037869579796103296930235373037882860652066296680803827730948392762947328140523919394977914496697736349118541004133899671162375043087278477255601109755686792063751946481495407703685689200577849392382164992723235003324228670488534930487997992639060367798735823010225134104452181265626825099477412643926149706568069010405035624997184845629687639525175018323681633524804649139347960002657784492906256271967332211363392736585619171180081168270571694061231652767115060687144267337091422573708125459802786984905591094261045935934137987345565859165731359816479229858080184815714395024862103066371835347132133457812587445939047106457926227408805669891739443519213122855933585457391985003069592668021528919478731236815118522905982016823491481748488035284500215993158642526802195771261522978717018501936481045590793172490394545111746387489704945392134341090050719618610686485085259463432689278074092217103818923430275776076760748451931942741301342091399176177730406560381689604506195066113561528432951774666107908176472801743501540092694568396608339678305207999778911079917550268855238745494900644224071684148046383276572562282806477342815478653151978497048562345095054555584544344167215710507415997338521901609528380951465013727195552790159817995578082780741947300973723215312056745699037064578011273966574206036041778717594602053251483336023158814687128816427683970833007353299968777702934684646302950810294464598398290209759046722641307997063707741605312285286281338348711957067070426424103414971062578855311068893588272704882218989766074120662195455400297083359594191620607487140569140293562762913595074307036586471483806765112444529565733776858426849085120344277293555672652609755750898202500663201755801764323671982143378591591075366227275784752161521670596440278796160980657516516984311390881834688634325994349609125615110757801189723547654649306425656808355749436288191750382992306643493221071685003500780264042055424057235561930430256094649153463739931788182340126702169604126149270743330900085973889780460432936519486056583273401038376839803586157895221382512519113246745681512406817004956926975905318615857167666798983017926964891039671259567356826600523883225884606859060510361989129418025589554215702199807510247291246176724876131791193441520842998096640856493864066180972760146009702723067368997101146474690129389061780580899880016224246886379419981008104444936797485771793750392161681022227983240615564712832646077470871967813840771901874018547846574171596177510971127442574529256779733473187814877569572816215079126629857730168858892802386399363296292279935002536359777148807583525002269242522515467575037417119220735004943010892313056078734934881151281229081032957476629567727701769935983829708803675440855067207346972049213335202743763946439830925072765335500926936471871971020898561737459186004769946052017350571404230306715896359231267782945765203839595790519749637225347714161130364425326624141117790239775117544256973133369993272604864891692597316602933411182097882696127970310839839170162794077767214743723678350870787542926297370195158669943311147819653272326989410731697266307887304483487671997376846696720331853750773377516489069189225887342961349624204135868950549228176705361112022568827459103109209554006582741033083894058836357613204532299934524605425457275492661260461823417665627418863031419485444080741241393911052715847140392180335995172617730302987584658618405190178123294685048503146524930401153156185930922147052737799971293658560069104075030054133398563537163443692940240997354010371449225275713360984242170316599547147860314621903044939787876076977138490976120921421103656611312506969416725675135104524864846203617422188393495593325626951069376500130098027761209168910644142896588709750006888932627796726484712950691048535322190636128751396693953883216118930848822764471179582876299098508830267254162463170761427539329109277088400728785004481547554982719085484044312137457810816896225563505828258259318497317022097227280157509900129749662691642241983791365444446629799115421940055229939814724205558895286584492558719283348713950218688303692075748016349696222025999551653670312369529300630930995442157767923049382851417391746308621176104671910227581239706393237354221791712311932794737799781322942348431763137200116270902162717129751989700271295418878592722017008329371754498927138000452295877301036549827231510244824130000338484589642012240457234733414653908460625673949931292689697203828442397488083188899482779756640814222098809601594904167505334876889941244381505615511628009440787447809073123257600743197852701278253182732799570575377526714051427097999118209563021747369215096823954433271665313449618535207225502228819190465030647987838706475088300660573719072192892889910597825544919638560439342134984515658948097243373233653934924763011958666036832001205630597138203258235031845129605814782347462228647694254256467161435850614561948634664341144727784043922662700831226793856445541939058600600835803093094490313236820872994040293478665898241680421541808872297586241960436525431815891786025786319816191958045665944748177929936711352678888528755604547863184169987012555562401542066303038436215966972098883232418234972012614606107037750389531521318581149216356938110250378654072457281484671966674882381740726631766308626846195010233824784609502370596947050582614746425722212752568584640310187787086175731871933664345116034098376579858638445496704625909589675849132251506082008976297234779717014799444340117412068243476073749628026400312450575401786405446261700090088145842912085335680523061332376037627436313553497628633150168234355332466616754970204421218350893822368482634424794040943510192651550578682042951109804812333137398545694772909923663857807587115205063287332448083734796740459124091743517741356696565402884063934892243536157420063865397245128734455453706595624349126591015940897420804328776406583149580082609046964833684331476210008946505423206320667318748151270006895644367738222241163322610522976392628866883553967062827407051438040770887419644037255083373841957806313275464051804847505566144896998298685830371261744299945528390024956888990244500183792653039607621636475375948212737993343483389303794840208417022257921830227997342824194369107161069975130518664754275673542834256481407603854511051668835924297849176140987755797179365612560262593198007847890837220751660926780534442112694556467694967620330136723203959235284666917620140893433554132610487588617228453534520402089261350357450002540534987551780953918060403462998559531477994656832510649762601657520068890876843179658745280064630663855687711510641896953690398191202583958310615023017821731724281557595246205029251292485166241143130027250012812437896854146544754677381604914162426404510422748719036746294432408088437110256163082692870667745073653795138318088153412302852404405226856294747900965107535317754414630831487879132559153018678009205699318290516249741770199757324843549745293529691361414621930860576443782842302197039601439364138291554859494535342893737195931501754210280910664017253041937417227493338495459632943434882925678894943737052867170815766373824559767399106867947609458248499567490668373584673923414675955363522749847469853848127560841592734770162904803793093611925288017887983268751916644271693613571704366934431081839702853624502302633318168250262529393652020875086124254495389359202573171153214054079216985682963625823087575189782125509764741471222980268530495205091344165159103960913546109091289318288891626244343662925610112478185220013451168706113808481917202799394800698150102870043081602560104421520739104070182088694035570527985451576155071252723461138041574117287689369717296540950458758472619187247104417448284317325854162299464226547870475416937259275758559794090600275496501689883885186500042912072360269622405537129509079846318607907459845060353794462371529662456332793961385591110511259820202312267528347319297656012222019028857714130414713187708418500346951372802451461072600608326366857505369959257274018589690285160336020243307603623085163621458429703429106930466673318679904700533597635746091686712894218601160764251694293285079766318344748534462311955725007447462289885951314752215304932592637430902894845771585631057658179748179927505818432231358067037370179582719625429468726610864627149062450249106931492052286817983772127854738411372447931844496477829278834779554920187839336193684187666987171114132643751900563816367992585724939266808458271770748365744815890131218530714904497454249924579191260810524696572644144198830374247695032040495643426781274313359017279986603082223782423337905146642847205347771213592872117623607448361733431483411103752977049498392254089430694048938632719239433616920215440482489437172880363534077401859352221137828246676710101549194277976670121490228334259337241888080213733232902272369011900272478112700123482063144940223160868679713481649976370432719557119132360350641504303230677225103754146440264407813038922816404748852701216893710780138608679286480208747573454195072110242043253978879256182169808767179182350568440807223883892144247516935091228948859608213197114509086109887229408000108402127163894527195380351643396436699691733365522712297676043189583448786438499742487217076701419167579643582755287855840511525850536090635560557036416995550994694259738287156137183117931720458852648183150202030620761489857514922055978512419544815537089609574516328068168690812401739415066292213494980685173346441217542336547068550313037344113770544646745548703947150577712514517019637290898879103904275404056762831973081738926217079524961966205471209614518463087515956660725028270666563000984876521636985126234467037864710493617807916543629013618649209919575972577667925218426899356790270210437186133560188435724254755876681683377758490113293039035262796991113310970749415929664264115595167694417547095686033686051555170480351446255912114976173579306141710830349165169465388399665102948327551293854883249858965719625904334336267256117362579700382065428221155747728655568215405830718093723462589664436016630972633216866670928664738191180609222287752736275853242190606681567613576764510940956169016529886297568087512243736884706397769118017562771546007158440045552602683025632635910156623440801593848160072865500506527828172329018360045448921788786400505847012145713305045246920855365826863589895702226918866610994119712440074175862922944073708823397918227952812642775031975259666141154907389995063459738611220652583748407905054327720847599802210559794374525770331671234226452248051924363481392897715290417061776176818639220374999932053557249753609798912553931192967276639071690283182979303200884867905317795472754537547949685976682097052131217590398017008792698554205761720948054677242362782005640239976517515081183876664808758814603212659006451784614800283058891082509128161945717096811257208321906415257378455584188198753101610195329880633868931114633599639079331288701629798506814594668290315928472833568131162348336461726176318323853620904569065993267285532224353938154828261018246024589662621600616745281609031157489713763798739411552111004906081086764937353781471321017446375802056801081760643858703096576994105021989934621666371968882345110572093371118356395962439904429970550163907177754849396859678265794128418498843008311021110707876898545563278693235442703438715816196925852156431336490084589288372013849215114389774843126621683740051997879217823111404652254769813192291093453015816301477156431653324897424792055268467009517339791085401587069810381466018520837544528280918756321413988660259666502028437505712355669622290547560305630200764078098753037401954508103620013347685063431617025025442851718151129630995011255116301358956519531874591214079287958350115088358608987560466861275527870115053379854044103762104182782546390287379991527560706927504853426917285342643911005914400377940745025736334262718457850612307288318761068895661126527471149558864991750589990243320181891764054549503639785271262189740710468351438381608178106384241648771311588789137163793673360650006173600318753781054274658731224492250576178540121809908658424381363057142595878787392167491811129679911035051593782077129771417579588955610089941981663880217825597351727093161357178076459439583418223937799821716005511074635580152456970227064792217794885149012707857234834111768602606520108367201767533360241874306706258404716392902080877132514164445119056701722112114247973884638939748238300885726634116169861992981071111095636763516094099751900283704203918153201258888442845274862995854946652858311292503850487073999079587654292902094990865809665526794293519976837235056263779328454192737794469411000605351601640008190853416032738892118642965812284194368619144685413362373004460325744837691727670054741751834948525462046108544541311785913902701258832088565531705201543088137274080695155950671574950458975968115253115769660846755834082061827234534547950387063848327308689858886987975760808914897075335516697612970093172440415885095331580348768704765853438971252533583180849140825177010772651781631214668296730021440503092715953401307324884878738240823891749982735115646802665762622515860024619701132734247898363061708102048217015386011428005590213692538175787888055931237068164310797168611086658006357940475702792714078132289391388383644712985967744872542881496655926095880380665752815319225149553215354915684370749088240237648876217752542824122687285286322857027687492385196777459132429585556090065684013287404141096290341066911284140837767735479168113857200751126614975156951100873472632110315967182929684058641382303232640920086901776374234335158249158869179365119896643626192486772821906201557589107912200565158474945095405660900733653858626997787396066553480086598151821953779922091786036541119234675318978518411313456489639984131694400537467336464469611499976042338328087009869808688991123331249803846678249176576076007097364346945293263049107511927085782295639533188206959587784562301721142717843526074962028152666671261113699426294138964856062506116313550547503907689541513423596771968424650014404957630007102262652010192425506776558961145985067926993564577723727632741592469201184106852888502336149280780485480070196330472424969218978989613092305564505932670737750677619826774688627365078497152242136877508540266870201910740711714701827946194093002319491563870689323803202132285648243360866554172012828200679149322772898854658967260561170561768559365018493351432746337259844053709540839201581115953143728719360685124342299633341878409275289139381553477410949084993982450095819032514092993241882301824647645732790667588870770112322118783740956503889972715596761628184797237379728243666912171862064081807918403614425324096500605194335145254810512192923419308540811481765000102044378766425542616178999009480065541598650342366323797624565039768141209163088896751652400712232120470661832317847808475306844619927609260328923822923316572506647064277005897373920743449742006353257479830357187118821521017980693245793335423310807378695641814188425492912533773921634576583841306434174891314722767008593192011692247792202100982139315729774773148790804718416388128290047575761203259829574258016697915470304102628506040534142633956607382418736824844385811771046187682135367723648464731983394303559905853311142696731300065500137565385092740405929179450778582608582155794367800600710719006184700889172679979410444843818733031562980993940022744616727871716825874893937750554717204070822272150939197797948376019476489407357479383217109969784131259539134433927582983913760049968925101455738514291339048285577674117977972809553938498926853039202552395534048930569993180244685305627185710853129228920207608393626944447398661977969179873301894166793884142810788939341327679127732962822693640011541537482929778516566363218005824549237696501036759303313002256072664054140318573112505935139599916675495621759790908378195080531073903403443549589491648874573245100759312205453960533646785780082804174313667573440890025365206477423275230378898586030056304628042794426346340163623493892804828077236363849341277161352364300034454140065463214135246237119315787949761560980244126900590877447189986308944663373929270719344329236373233480884560483121439905945529439530546206412797560945297593144640039540788085483432781968682751224446691757256550534850026954495330869592786355452541734611476962990096006555956188604490698434029869073978219710822354123615508525183127212371980376425677969786440135113967432480871874549702528007076207298082604117436434388657575858897566483029309644334235470136840256777019296692582795750934777543691888880834175099939560641862779040539786927640446372768060067837595369237803316167898419045395918131005444212591916090493224642106322930143050784860627276062746392820789577990039368538305383539852024434901678615514264473973543099131349807785659233084473211933254616050327751553654712025330331143428095605270393817906529331377288856204487011936963806075805442403095065199753969701962577209424767709165523097356303710560156411567498416974573370044526967507344335049426849756005329038605031918321178594766867278506426324891064188821108559849044292768015024699845371468024401392220437096874489457108158839038170790892133038124782966447234917033465778615964347763828594434462931781698169483420962818824594798329618971234401704759838524093139987955508356423725004684120907588498382738237206588923919807477262756131238041245960177513109622908781267398837320280901116201091238118005231792236429477757376628944889889416209798396787213260501458563221424179776703083791277537409666931085503756447693773141905885762326318796409584359981191497226483626088880142972579163196621021730890035070004914640211029009927862499906274608178846640174462021091521731818195096129153753308223076579973308962176927417833580502420070036901187970985522207264379189268677489191703549214674695085115963056893938385125460433423725644101966301284227529018365270191265047398713633121098934208703631273028505722181828814546417608589656024369522518266331131624507006549945099675617842443167579452274643531099641260337604007567736348603138363840962137305684259716568349923571005428319176846010060020709507224723423320278149658325813223921704488742564253019817791597322967443581616954716481562848973572594433211321858399848952712550799451957418603582520567329579066633542138809379642113331385775128608393637932338740039907436196066722754219371866535005576478399443930316631987549688489836713635326048421200372856852772153141115002961234772891731308227334376389835807199145261095983928559599999539324157665989451716522828722284031462496480906286954844128637810276342601672620471357283110793699421621931142805037981300523846494286795472002100738776226715286513003543488322347820832828179286230802803904048826687004237906835514308534842572082715158950190660795722104632963049993349893910004931178925692807121736485454944874275979437604948376814765947396072688943175084288745800303972418348168288241895795211493745235398911735950514296326788016395109247554488915012557638885695682580537204732484026270686172289522405285915069410022862736612402866386078438329011342208596889678427095224959887010769012056003783641220455225368301275824977762044115301548292227042496110277411059277716742217958465621077226415738374144784855737867441301015409629815889052474378177927573157591553902989116423560859871018114737794838049863491782686645212978080611041063047884716695744992087463877723744415606442948688761026088457541353609626364393219535261647618868211053048701718305746908659192459552156022376914685702361051675182236387624977708502982660711312067172095482139452156561304798967978937046688864640362365580509451764188692351931844328498850399289273315475091933919591504748821030673689564452852429324813426246597145932489885120482387451181828580593405953355326149395576796577286711234977280588260031153614949140572171813331454959223965216117738921599547594297734497229702885297571009170625930782437797883680472395453627849598304435971654213202874129609196976643264988826778301916709171991030444264551138216994439113607367103480930439290714024382373916942634282715988424984698144101916774419820133704162379522020936389534373058897020779710258273558130684654135270817092337911893106568544707547576873926724509492292181891107094625481217710200525056471871299940629070807481631830135663602304508980364267010341443822241293675886960185689778821354707373375408659248059439283714007902995372375801939621840379980255433094588525608194573279097404083108103483111960525120994602725793599059996734310398990775990103820669631008163850671514585232162432421157909188549546444482397174822307969367383747826552829508167662746064473127119946844089579908847755558725790322675751759284319241270676622505461403515751011748733925411117194582381027206756368630131142314126809412807548548169295671974405831287422433255900343660104921876952289841968123470993282969149548016595186098926888840993721911822651963994250085501998115509452907189132011653054772519618862571832294588558111663743406830295354617345994470034815182566905597621611699197065796243372430619367628002960764623856467688006839595333515974220657784978709513832547133042551589861391355936703277455912855830762467858902054782119792978727243862977743460567343628068270669365213300426554737323650032129472543216842128876157888177439540069698338810809308489412656954918403982203184924813373804341027232513766278946489644664248202410861925667210260863706058807025908742826539400449763131951777511479183731533282774986099863173832149598950336215458807016298315699376855342256424159227846184824961300492780990064785676228982947334064829036609472513248030937445101575511884458957932253713000353005092248641137493453158442251679619212758710289478146405183431020368673056306920708774293896204835784682831680668726317724914720683481816545686269239684329273705759276196711474255289171528956629960289426211199643159083577696640351837454050521208993898917052210618448517327700718539869929919301564241759131968877871250709221458192247140397367750664864901454798141469003821692550197964858234203787405415287025783705497292389039711196359290719298079222255295245597025054298750819433145078257100606776672416624792687251493413819978757839841356722571311184988717698343352797963492977461280699963875739216263253800230477961878135378552417623923525930164381314088164126907331002157285789951717839788915774434750648047080857906015596141753777574731750931817856391335099127001558314122561918266653265826479548176015400265807366134892835536127903260355036594751664058099156347496501249914676856141440999224646231463043557250149134412643177073369616590613537238262210783202607218144371266515715800528156055409962173112710361662421461907150598288832012566772335494409330531176956097869157907934885652017162721283196082800771407274520754753555603670608674209903390905039371039668324023161989806799059870163548516778927414299704306876970232519387828842269891792459512432323456433898651211938451607763512774902145946443648558227932607154597728015484461439839053237479712062985276124563683004417791250134772591968622251464436030514053139434449413962579667818373637755102516264435304562115218159320631364410882589437503720136851764798956099817722689856741982914299043955668542458954814985432877576023723393990527277779997310805910159140046480384480955389568155653178193244272423946335054103607821260688355872070883044358214801891284060045567199008291453158754588784155056230433786711957943108664346191075567033507083742673559985320749283204038558266777177968315543178272162150477176091252316639399589880356561213664088451264248496585029333148260185351000609813037584136863323312291565439142699598262236984060420422078304564570770857861219359086311192804262812495714254907392827733967065030623928844277392686279561529809712600971882760241986563467701168706711490162244099198993148006431990782171522550124906880718972105022431028894660443607587657693452152376610106793173275396105537056816666514006564153910675915029586014809045066738178663485503897684298122218512932476467511465971875227834504631204148401680676518179903570943773294102187844341824535625984783527395751794988089534557665368691626337500395465205078223127450244769327170041767309108201390447674641061429468165404521868016701230028287010394869866331609764524461559679718059524445449769288711422805745524272534887061193158585737625540124117094605777818182335941030796395886129805908888805717154253859424701840904587672854790450507307171570544748553373531932902070146121910406193033290751293174330210403452128260532874675396733150614175226896726882865281944559858370844933189081610176295024594568491102239663358544823604611870487721006474976929070572374339547578051964078446377081024260742802808491397262496443450696384120486562337956303454255418387664896982572913370096977643182117711481056132189173539592391399240445351747100123914462276496278253315653097473219130924781911472328707691925337564055098936207946722785965809755485168614664981922455069178894412156374925279368756369586477904782823209985644262017683499917662745111524644530218625120417632190024606024104763313848209144077777212310639831783246478346962341130909004286100954755754736671408117551527317984593523759733421558082128081616582593476609961785353534473051085780629794478605963528694010932600224357334092214215541956952931566092303722939280639159028688086742449967601172993612763457429896347923502667519103851189194759433038856982105098992582742902387648531179706236560653087061852906973805842831562557818538452564616432871539397711507367959348119175442901887738122000250708470726062616571779747080238031354393226690116576669059945847873447934644462696554829347174786648181670273683659676344575305778058815792309133906567210073901779763656086450567370556782012516658442652771249060173933828772213629169250067960855217600326570708168158506429775448946341697800262753163135261212281812015687363513351941963814658727029362885911832208202032109363834767754999860923757719919202171963525135187413765086881696097004157561215927694000757155081596177226718274369564881224130859571241566762978079238951931429788150123248008994442220655058517466358086555975417753293358588671361521812110224046107315637576349479984770680444132923041252633025968798574747616021919672112787313136624195148825064689384633828150628774565767504874405634620615180991920793739191731356630229729808602454290213085228134153844859374556036729554393232474490561135808272587351913509969749073957039902592316474342656242195644824164911158950165619295858848945328948660355629269353539852922902664562743470811170034647672301837424901281958813871849028093274891018420696823631571904582832816276629718885013996817880033110479003435447488815672194033432627714914156032049611039940204749535890828023513353121217843374574395851952276632918954934171495726788336561969353971810899404669991487328673730001452744826431825461293852410300239548550597946132876950084025679624648680006899001773301855859373968045574704929931602827132803975082760481567278576397638057224458260062033401081151847895147708604855422511683615785623368267270763309654487975357294845604278009844182359377946491415154187999308070680452280387400419038608210063876408796747084603849449726305804911225902446244800815861421384242459244660859889667761494893490852539325447348397052723716735156272161708742887825270438686817604958503079555627867322330817630487279449600218944099304824585421502733747810541784814219605053379472057545540701478106848351860770742906257476543564542137126890638478610253578965988893474147483878462449045528549311228866256085467053091631287322632216244118608430117639475126886585368925198913132205525814337126147541537890850195851730158588459140629993590753316849317928071113699296293758011963703478272812780683925625743053109628724041030542623470425033213508875821029226874405507982426000468684166157339519408638189909585788380882145776831430120759660479113615363987008964568826536166141924760097105022673168724573544353968417158349709162353557163082451812505159630240548219810743149341960569007088090431280899512359020767558593308260251368999558497823845379422254489966544451836054500676081067678247692592803698545273911767535905966077426774152140000474432619747871258189309646790716435896852118360506451201350556813477387442418652125299657815850976119776399019730017251537331767304512017894359730768626358175665121641527059621027427080584783429617225185664676485639499178853418580076398360609848343800562471711268806690463538636316989911517245582795702567735437583476850152692382978985460865636884408932636018932519477278537002383459475260753251557219390760380328442197898986817062855420708625873661326226705691797135028961541078957931618463983725479808724392673690878384962367326006575057568583334365455875645313385360688074604953782354344313521655908294511173762957536142507608305107255002100431397373758770547589932405676842644421002270907362445083248180623845042842142582048250900210394816165202664454106374108170873309475703897186041240536019131561231663717190711863444086683051971505185673157164823237795044477842781633918968213475249641889341281552226949246169243086494193017524038343842735273505777211360451956900632807755369969396833551726193643448189095087717007812286357834682275032022443007459192189197634483999381618245788939903543023409708438906756761087505570556765223848132014117691569715120600615104559337666044836703687924211161981620123671833672687149434492052269589367106886235027635977460202436810126923789225567899715761561345838983416445601611307622327467151904336352029511560755560034777642354252118357937670641752234846632135409008167455844105317547355317811916074443387353728603407553773350249129809781624045554538365508902224779761104046948205765979616835685550863492006471498560129313281738113599559657817411475800984254233012684051586340609903737658487017142144919261170015248536828311109748959978942144967660042025909601125563165971210450614281731148714165968704065495631915055737577430400378009147560924185748953393625003335626856476958697682492208041497806848950517671156085912172407797408756087050425491100859416112729027352806146174398050380334898485722695310255630715407672068852664391015571534833903957998714059222498264378640463587005438597640522889682841068494245192995984866106604527921528638286055570029634786667171572211506418281377349728687799743022254661525523346376844309071233750448805627619149045872559637701584160293219138542018436122877052349584875597343800326873835439209372355095726900916626961417721983888245731920336640945871373473089021275284797158622537601981054550088209922090671328142285977288617104757173572645172184375886335444882287363596637017121063076102247786548583036197849505436613731131903913009051721251321180200969197685699592473210858018747792423192872540588292282364936058411341298081867751482551498599134937298350989345984596010569806842469456347205215989277319077200433506627081588533236547679432236850532544706872608714290852032292497795832697935382727513343834862480270678671749188990084663467861725590633863464350437213094844548753231417899771943451011716520688729152232324952840254273823661494128741040928271503008259086124043534369997530449237956845765104233869324995324824245266794179551567000994159459890610573494173043268158408689487644968286774776658640560550654340458489226156541448595649189684517672064144311420533716582205182282073425115712413944375030706927753724661109217269824351808466493235430863855417484893654615286650154608552836423773727088285952388914589855752810104380339675377253417415246299283043345357837173654220930152818422049791838249538668575709939289707179092941124771390974451650019404374226582673390555396895693850751749570447478919893646404890172249979378528487825221436235839308216061055891554416370662407631361272386763931079924296007672436368619260661305393970421181145174783348523958920302111093996871355246870156071934596541936788013898559029642160190675610334987144251698369333315761586322674235284282899411886639224158804445962921359253157029432903950543708666455116776849126338893596617426839022549692522791929655872132957434687434626745913226912332942611517675063218378540974886112122676816415978418376659957576427606572460161156670875860911814844470515986135911851847457746912883550492244848262640764322071437672227642413853231974938137771768606181781142413995392563297672012036538505561818579577545854373085696323723682655816015491268383278876566587098848781180940439429900714407960088893505677385988784511707204960395180200482012800056289696977562538639173036082849358171047523045327224438203215859931207607036980280605540801522075240941833235551351243664548928904993282956632828294093723869741642483934463032208359006332653534936937038532203625839428505592273051129959880512001520124518279883637801421118193641644900643058299469082732130994396316934102645332696087597796679189473836921083761802350237074083805671222659317582411930706045461762010698893273148655301548990444316078304861779019151452872872898316406888911470156609497220821151898856211117065370479952744130611439493085884599843360588917008474840788803142178736208891308083802000814600372391902978189900921745908695293185577013789935783082057479288223946318093957756994082542882577987435065628460434222907733449016719509185025574960416700980797933292316184962551728269626373441042118598107588016861944362433030776902842106842801907038089722108150009918850094879050690846327882593530628653722870547507174523910967853160919184166743436822915984904737045829662862667033022633002793944700095349364122031661529637741842542032048150839689623157318780765923173306748061438406553358974644483241909673352373513277398053006960967410002494821367350224966594470905154396415458106839706037165273317088896188281081384175570809140845270661278657517172250879130712359736562270460363794900949443143729396582176872238487045755025336143791162442641498313433882199343257488739213819059582574474156757974023976040320222149988988916256849508869412988093083856727924630664349447572903829241048721862871630044546050628373812164014538474409473146287814557095104141845251406723544658334939259640909589676494035611218553748446335318721359165752138666213601546700473136902442021812578415932853928605514933507014544311998854745541389140720293429613279035153985271766448146521082538217188206347724733746621135741190960050813651179294873482130235202320028644139274381775438327626216093384024518078183494302646754772132290396640963148883712880412891700894296937753808675429260457688345165299102429513804995096206157070644413007448462089373547528429304645768316355971486751660046734241239059480104467572973192529746447573571432341336113824246476973004760967015768500473657386179403256258909420616553891996174303369837643090011808134044223253809277429337115352709257167174784496994640548415982990109446927763986793394468030409222657018937533616880132890643112390514165638554396715028582998767842443005539753462113517400520858425649974990334140360638763579989733882322745621317738342366097313498392381633346164064568263179735879581070844436402365515491360391956985683536391999261122732839695747973006572457412697606700903033233186663344265846623750615455389024857239226077999520743175262706502197631793962974031607838046096025209597175950622842881607921338426920760274007873654558830284929980349481266419534431473469705860634494607374053132804699861693910053359773393261693980741579857053399570518833361565351286899130179872582916587540295509134814990240172123831010961836278359082524959722935947054917453630068991540110378583051598901152719996264410361441608060961048074036774341573720167249727651069480871486122826164242883980582284232177850524568983262627898426839227455016032796960483743585866534453964308234033334742002181123349702529075580331548948910916268738385053083934796375480695899079798930473893311546835464282777240253111143231082944543802151112157977230883391576660144198706376525040190398169748726713376909639835668831928625252643281802281289280509549449817158602325939569679604604071778262107261787154233530989691470455985086987283710544858662184787348976216864808798813861792625253099055594501898056995357249774011854209560250707822828529257592285484946899085480820041759174710671490446458472529789494419735278524063515794945747469043870676626291095971618921305044704773657208048563042971514810366211050749903088127796095804884506281643222266294376632651382597883304927903281340670657498464864443822677099293712665894059651425572829448424711418424839156336627162512947211612050001984029990150979363193298274628508660790939329148990703676901279000051820985812639290148773802428906304723574195873934492007078732563443121812570711897422383377231293056984883871493210016848192786182150653320335586330785162849363632602326405173645535848534397931282016028570789312552437023451353102059459860714711573329825015887100841568186180958673865412342068933337674400802810632352688437007685744079229118586649756858495345439071559448256490679040043884148727314681819857777968433564523714705612684309159299624099468156605214131768355459584605042568702100705854518067868110659052625861748608494691588582655121236311911700660119792692403053693449657224886501532927941657103666194164917712894802940687973073676154006194536318461292331610831445909420953223274344264670627256743417788747346914556832409872676918773339687538222253168148049615438533380482423179742634056566732773379681322973023710597885157995596233331415444656965081730113389871727714301592808339768226873334520119313437754707611482128391809461310187494587487447298043791250179600176649892424176530072700405437899574365286954487192615911648651162661157197921247036800334476943374012292090054946121427316767011272086992892100519704004283872669045742101614796988467815288213200373452271266869752227290647911419210413364082985962968312181881601855987979796098698925291920800591592002937880963361818801877244787616086732720617268324179546958468605746689213316322277994620118581799967323421827519211739255349278484258005600512431237425923865105222527892941853649756204208759855232666647230871020306894753270360584470129447546299779918748561864868269000806325171625212207582704764684467285716809287321842191076470804974757433349023476693498917799730474250438157496729683529899391587393092280735376831712728704280927450376548121211756226429448428926397845467530943617254653018077587012123473093398066401998688181456947934408975429199090606764666216500201226554573169010553160581388333034473140792930033758169530465316785713016166282630941138486594969847559709263831963829164683031347090564210564161002410892590451580171236078900599646316717944185854785111084807607840209501431067960910391225033491973939361101346253123804866942946968541240248956020691804304106381803567345238459368215110936211416482359951594077397979299617543316885240496471103035443101813183669504047330221521690556807074298484669286799037939492865261214842308589273074889447460238818755608197968083107039285384517990783555400098014341548458443361600026046697425948094683494149860861742958917778451717060559219509264183510899325221395036473121925621270334232513711439542605766060396474431109238852992023924251600775158217121484086122732393393196030888389480860161131994161346620795742797855385982768157169827250424685513323746544971912694351145933897951437921619807186612421134298444653918774129479523531807485832877812639074976655822691453023590852530380363279627137089437409177433414516458254920161085929055019463249284007919813247586745704242310044383914956029143909177465898069492093620826214039549028555030399734944666352919370380888092869115024258176832434934742597768514700203297392020156279809720736086763012874334556928005690819071693598412272994284416602015276065655766308701382544119447783661662290861295117296454336511049629219501816598310216997373668304101538886116781163857711683716349360582310966886771349940203518351179711045109151516065730376083985735968562830925995368016210248531033557555869119909005605057262451337810315339472730566097800455895462253634487329702317500465982719789685432209847893775721347079170012728000211361139275484854873421079241888848005557201129813965483015129163784034280654137266953793391784418789052811493264436256730322666319607003557479998310659074982679410625029288935470412749608203821792028879901163579149528324167519500665789464990970060310364255182716557879836764816125089412631395729695373376236183538487557074639767478110733202066389513444046701157280572881997336262299474998396640953422092475168669010419820021220609457825647756035382429551512963174749545675719019015128455819874122209580757515291126741325803670673814496794655157167542244489933067998552988001265673348359676134469335487485603629025571741246610869580920712869535821686827692938254431183163915801868166460820021701477520258410450364791513086485540618045275986900432892713984809336252021618010784608498511255574683880381235749313116541654634300493454093123488250779403763372651501144794178361481532841196674269658806900902280693987282485491855570509471652598655540200565691857785197477299682129982915847544880507454632285866053665119622451539072334952367028677920829855256548316678694691005794368791343334833081531288808997503359656220828309436237812114809369918320633577762246511109561767658238300352474873174683511304923717169760693486006914344562162148710788737616916395469551221647675122588155634267585477899931357894875536283566444257410624647261610373570044778798915395027994459290356125233259451612091459313834133055330687605728538988865059190098964163307590944447579815884550939875898164048912398824537817533101000260128376931499651787556308199055669936832634925945377326492322240167683765573756387940509884292295455546242063423429635145683032746602587018640876116782000859423654856314433180237638924703154346721941736881247429611587012803994928281921992765038996176727875583715596060120224308507729634143646155835660211371647046026994401380101688128427468415899795315750904186707573527585802516105418385929445219804378179543570847838763345453513585294323106579907979359419296617458007216237551743459270813512645925293796608866707587207106390557131817560406950926423441611038634023995192446596198619596767849818341878649220936157222142822772442123895026672140934756856494025560243398171991586889006710318462278461273591820061918202609472057479316817586400190478702685293871777670150027427444376624568249744607071983373915194564200192046505486499492672575634151803263922511747480774313699034514697596989317094639344599879165517013117575913419757538743649542748747643918530070459233822865095527718314720137131436477567523373550073927864613099259595074342150309568557734479397811844653166638334489289527633073738735645111155464740265173452586486133333865941584306665360908146286821109487911611271506879068942994637978418742651441818645469070118856213445557644251246940037622019706566229474128617464786212147688811597189344603790366353391939676416509296951600843949239905624936232664933309454036668932709107696809028063454562556492451629351173347946092148927830087140475393015175443681246614248052700872532840238981986242260739848897780581840681959282189213673896576484123751181584658830612055568065201726847326047692635132454106410529138104426287244370481960443103066568376319688230116376278100785790474993433212302109353452236513197009588263472645969919533816688348660303945571070890362550036224478062875406080996746385210785581241625473106220719229803735819350923246660155820692642707031180023559653212453767412819380736963482696538579100870327754649391311022706742156360639814533258709939879673897631974619779193144471464411189448924826023377198792483714095040118869207253859898682562456820087697511493919738398923938292196681918975001200193112674788834751774160213935581152694431729766981761949509338065637878956887162913033542175310153269685760961401744518764880087740709312977330354836035096287466954759157161728896262085097647977651384266135782987340006715479033842892665345275394808016389706434042430269388657609202975302738775463345086140338572546462122940823299154406892540046689703290282399372459646220714372512099031088052376852596069960256745214604547263910617262296862330142397066652790115598963985935247692510641499412537695885997317449858867501590654048440354220283213848850135374731475242379062555022504260808953245723227177786024485128305140639953136526176136072155857914502396045712201963028097281297777326723160383341130531258425425818325568881635468700563278984651503103108484042935849277456311621355469716437592740739540361852293609497382556370198337300474927519925744375595900795255358467247271304051663030970962751231395331615141789231862082057717489704063089837222309910309618414506678190603940661765774743478463869111287602496063200811962825030054214825659689935230313292942719895015505826974378130051732131297827672112860941016595073804430395879605818498484427427259153467030624346124007434518443222984724357620479193545761088974502015893370701045676970923478779470290360414964050083626351140798177399043969795748884146618743261289501638128748356027257058569466661029785803619512032227597353139381558665693285568589900401767960615024606512145684583421947040366117823353752523286927623454356470985579391459781917704280943239668614874794659324913485883598127720129000239833842484245049520763198228508122902338199261819978259805220845201864089172166043937306317626776427863019758881891710572623487166622686382957863983937030474063489916305094352109245536265567103226609136992254506878872082398947210942725612113135088307605185834035111372175416311935337979726320436146339669674301848071210935821631011495314329884081092778222844352015142959279961705527261809219756953801796714107568119547675150942348594450195290535768443654649601140284427298400096449510305524036053987403843221845394411294454312470754764122391148181033971333564072806498210584054430052119039516379440777782775678760420350413209467965581548076560206441144836886852286525389616128723901632843621422525976057820331940184124231029025472915091905725866501419650461841954897005776908631855415189309614205442797715483483697739603338468825952532456766137242898289665266481680659314602035315121248545572402765936065048957455528005514339310376489359099651229143758932843076628902279037029312181733923262504850806646501414923883741117541087811024682781903549112266690490870708971184264009993924200330234065998874098277597867706748134617559424008550825804220911768095630825304349428164860319811334079609504906265336001615263910213912143461959317292726847995832736868331123238255474470936071144416368178790497985591805820350039312941314866913786830292045113375105559646257474211410969050786916296751977824979596455849462209590806345551940533966225100859305716752754228160148510845155187094363999920342189901054505854545623119349285667850003169385779930529694572685631800212745858985188866934974466317487277880132194294672889464500926138401394064071618024363207904660346648668730924031342520735492433757992803693054799295156388054236889274340038578731598874107960303057437965338908998084884361320590508511455521197812577802419770439821158058681110027056257651698292539975366362332426706488431663296438468606967827351298227607456434958295523768789627192967763905903110101077627867471595323739190474077610732491694899517882770049152409022982989972752211910648599756911503041280678139452845073141553799240380281495589131847069822970389839394282560367839070337204557000302361881577090650665013531472384474385669408464639546440518293274905581118575404907574235942493853427687547688050430101243842999401737176529117592427592029723066979411782256530527326817836088429338281462128965498726894603091728485516704815252550536082604827291808268660403232984164884332546297331067544041311344734704445086930174977147894002416513638998383088822738408965240957191896252004359647395537669636974642043733744018401205244808057429051213769007734989714828315298448060414688257953154414200193243560542261404145546415242860153766785661701139548056926192632317930049498451444840596351294502148347849429484520138626545888993830936776634832715068324044113618144909983656740719942187134500056165132966226721972635959897223245109501360560776105071243082332107711180322019549980139898365267087983863384436483667359985265510332421379981671749245634045358025606781214034557684352020135745701600403796970551455934079276338818237912534727231722928155411094787101286623842892412360046719639529254235013628169693745641965518751115192599143305607422432269136245730201592224295163611833968593323909121336731281954806487505954249126879880653168211376448032316001122053829879574376718629500271481169501805196650254422399672605102457121241893469163600548385812265717090132827090874988097746684089858954686215265757927747862356911616978618579234090447603400809929549396527403140214193302241873723347640431263591321889463886920951089543934060097607641515746678005174182899474922983591066496051961635551152006688501537246225491215345247084022883200695324119818671639982426701044033889575792155616877104620990420384598589637382495015878028739459015370743946807590296645053567893056691519943789054736914478536959074094072574088745213526270658974883503033589847202276146011177752482655759121540927693666959287853213347608836155437506346867807280049901513684836167549063424252601157716336045470201683791837970228283843702445607486463973983443793610013368284010803155514213506281851978572084725358204493991179779030200896186049478322840397804226431351821571603601054092140119914019465734485096331983877210034182304693627354788462870409780928613351141364416968444461184361895229193248592263855541430644501472603470371855257981169822765458015178433725029713306012731115726601983405091679399521269895386548689766088828814308905347557865618070018643554806492518595119207390852490040268658660914131177699602643071213191370549401547539040174013990136113356019891942268070684539243377818455915610702382369231819471229912183375719079150671071445640465427068322147141128020858449711881896297662976493547583795140282188485633107728255160311404263390306442469688322600041401989624559251897452193587813228123466602303520475031733978586233650878389576224899586515675576839990742198400934344806739907223937022897521941862747139052290438195821688503873030560094376539027142899332531607175653396697621410468997761097014273937561637803405691723110360027374205981623342658743995889237374805945166471488298501165474010190532375839506918784576406267414163142865296146081684113883093331809621861990324904995916036987523286905670729566505330544670286534695312926027326026891234761905365008669427647259365034422515520041169325900461568405790032978870251942756376574423164755217904582338559524194058890318035362452430677927362050229020087411922306712708676537731785208959648552072894712175919599361973032315088935182813852287822130879230352684221731755375699009210723892679509162070620330202328645983999294006267512973154742821874223455446453989549489430842123809881061593540110362217373390982469909494057370031389454056953554010935835012551308272173939248201019319067442016139207313485099877869777840165922122383001562016166288699235164828807021102626476579559791491988011163355932851852612320195048211453951861501738734769440483527615955449381106578552643685929653828843568593699518190010214679487833217640752087777303825047755690009173660394774815791422185650444553720678965929627179685196794304079425862757409645966155881372021404551447265635654570368261087090362119944961144614284112843791786253702986101419992167321620541719895305170008156266737401676747276367947310358984024898738840908136033829629311389705891561102135524470059880502011340170677536920920546527335663301724782818739582748150479516264605239697685915823067417725172363751510563188694831086863257465925013174428616449777457366774077487818093400408287443498556201958519423917692512843600660992274541845235903092649749031817117995804599908505021739049516485871514264025877807984317740242323284604671320392188993620280415077116160658424358908833308830113477995122490961567764020793309234512053592793735511292292484435476163981963744036131818061607618401813401610507265262603964296973883024106585360343863931222808515002264317785802812177258539324581347120132948431720487510987379215410199134857600801518906446760677410264755276371309921645680169458827243854872806269070189228468579140913528024302243065549957587188148005386452181927155458493604874751651216495011224769357366569541177642171023116243036296448438919771523171407948301887365477283567844769547117651819829724541129977472714688540799430108633457820964937006851972440419906088659763323431252232711183447905249223442451700428482372705068777622922448924357382022409644255881202187630776344522766932038695439833742687685857348448605138467979138228463302489987345725035810775130267099775111161624951810107521280631228222029170376128342021316963309065914704150644520680696034388712614109473996325634247991281024022285889724963564592679003585229411759532249969211074949789075115779715788400206330089161786375185077610665100095409441219472795705241619351138101942848685696685017889415125758583595006694122126052424679271493998229335159202192154626216958887810177143436772328621019992026037299101765426815973192250627828657587529226731321711660781289964880112072264655737698764154749292608916269598629580964057177327940870649083754747577114442172799683364640577522264333333140558327386427776782937841467528378055814932830742618308044023493624458923276652129039671275343546246184943926750924886177561084079037706231345797219287957449133760817702159850806453582346951072850944708803493344342783174190265350754550970609286509985143608647726416068634362990572190651597855001717036399822888032478665440092212815967620652387549273912152060282643485942972130181030131829939324366607830967761200873708363939403726181363852029513242405841518003044434357483458543199446886583695531444857513652279032191021052506251981484017775166432412276383393088123663124098710658431675803357443241944585451172481072519553502399523498367030203160992157563918777976829025378309423189818539364709641287866798883921401831313089828083214313169164311199265715741753771870527806031297012994731480769392976725652175261245984917631818657666915237870675145263558606923470024857496446431712337035020157284492835971503769084228232950864147604354482405964470804661803074834658672706359288419599726071161026380014342427192602722611400993086103383375881722186517228044902532058269346829672350362449282243521408845184272678196885890925941757749825578334612275897860757733786599588310765448981885425000494541387191276898734100389747902646044794327148066292973153246419309997295823089642403503916614473513906403223660567661602113886662284028371223156111320506270836341036835053722980075192323139952369230298101305288668317907756909069962176920887620142518175454024522745847811275833811635571363737215791428298135160230931067469509773750129538739605284831693301875983581122933879613774690893886670793731717391461426730039569830591247679688225471222743817178185692122691013694044722180854486391007015112368347954798533267362001140046499635242965612036223891121514819512387304211773316169446759027125409700958587256090647614347128127943395184619803719519624909772900301142589363764324179042091997882540692791715596914791590462985407625713901977410824145887328997979750227769504425459868647801366876844720837302149977976267010075036947518448833479527850656071278250901408377501060349211990757037427231689827077108968761633609069003116009503154676691081846975810141006698383250240201544523151185417658570356896796358175063303667834119384718898943894353415300324563285542734009041222134931374657651315554055223847289270905930835604675327773595379850336141710769937558074806830609609902337288580204368110477972727734183794788098383682581284341901030043676481668104990374152205859706792014837586552004211689625883346102073785920467634293022143510804336834395801317740226209697825992010868377130001907421656082374864894871929424077482864626388437907152556367116785680782638782677159265638420066095099816341696556945227653045387006972268382745022031784521096295509390976809959829553179519812083195992834293309327413800308853988972686221311266630710287244597773087454699375615658887560667103785601803249887081349782692244439914809902462645127170310605615660613548493016663478612774280041995597625019644281009571544549500658954853333719910902814183158565014201406927401508563629681978132574147825659298429512241235287599162902751794798359798822701750650749788178563411119845228028389567729462634300384012096638287962920103734472935053604511852930735254297778543347011206075390979491588431706691035622389412036041076634159260745091151560556465829784883889773541775355722977049012542131281567307161218712666168236796503150886615580043288350616349072960157893964728382347860822172157312324622588796638588825930773570514587257329053320159992754329383666277290462980194527301799714044962012049068608575670682961917951009537691496834384290049685833265106387875258902675129206754599468581339867597928229664925256762710717856989152482152236451931847694296208018530655713256237877890063422748078830257957563468439910857784750439632216755839402728282680231057850846923941387165886334070451460516305988412635057031817147946463711036311285086768446743400525303199536353854458330713555595134415983589082175033729806364694038592034163233018729557474668913729591344807095140027967890624035756214387586094334530397113703565291212258297854004074920669505544433160743804986504451702605038407525994284937656910026709217330648936279683081189582128601474952800066437071237338619656928859960261355876527220331961830076433612326221529292371057822608585568361393723184843791749861142943473926320424543236842339094882227285902317714283928580130866754189919284877048310505011750312719455286536422508737530961519807615290651424682518368020754828837660104897186113613849632597429210598150487380085611308865596911376296115178488988960717654080837748870061370529413085574809227067413829720890059194093599856361518790769458028737510613213283887434756777645681983203186863698667542410639712000510356684838905266444009282847168313113224215596644135095133923054248198957287015206882170908995560526838660384162004535731799142276024015962144633780303855711464982290855471128278063177049695311915571962495955924393248130953430987360819310864025052686970009618169899672875766536920525926668321119449862961693251006365760975693593160696334337077523090241469100758870089805373359150411280573746140124139945462214689880636207858344907189441207971414860974812943582875908067379743601472367546113805335569647527883053556034779751314640966648986907497373032887949127917375744810904548078812449025942596367099077096754388263455323760117399425864249041137313984314781481246550584497494964312780397307271794216888911672356062102343402534375767718702212699484162693455791595055812261784330835637833211592256598275631917829430500245673479400124920797507870630618212338026317684062322084612581443414514832150039826891355028508336106133131055083779363136514417149411404262104295528287988787879223771696273151874446882387892558420985308158317188555957902237461295760655224057664385669651204633855439333838842504543070088230614038729711512683211835990567283294686773201037646979195162143204002848261513707494732180478120086408872530327945603393389454634348228992688914300767300190527985446895963460205219962556701350118435739060338469370843481010159589478352905653612064258680099040689414556953745561686575338214385728807835767061954328871990252252699961950120076863797286715944434386763878866982299962033815177908600390732817503041812126169083215692305590211171558162834822645069047893403131574059342370003039499922199673132849951066649342779514492737356053402995315851935624611590205125087566742469748242559399337388754281259183056828467513370613938393072673622768499896084939763499129792750888167023457263281364842664454211550105859396757074979659299702892264031881697570486195506631952675411262621910936894743045004059181993463125596188744354454462181378669965326033895656688239222668333130371128059182919106219508562437586890930030039520611422911556122699807145843061396310065420432014973836493289423952573554971649264552882684172423728512763882447026923930391557934980596952858667364285453592574532084770064446062660441827195021229651598728719919483791555373396947987992951706432490352328170779463323870202058199877591525692834505971978388789851041306894551808574536637228671225043312586134090722057863905273110675356388498362633690763902364890090779343706626855136091393549363226811035805016905935622739759710595808352378499143155939060872025636902329001755788171200404920441241240238554490163665236754583166887941875810382615630615587242860007652598840546472376751270480337422764331263582056253181007156596997517184654467740015491709245678965237593247069039500706009927556957049478968045431800390610047750584803257158520522976892998062312774683085933369032987953313144292582489098341354909395800576626441096536584774781437043318338597212060357411774382457042936397013099834907546103623734268116543436297388967892181502683808834439001073518142737224528821324120551295606986488915141479257824341118315703362088398861414382456652951936751220402974464471117468513169822671374171272152330436926949358573891400316516785000695865262549730751363452895777755155882586009866818294074743562926224708751831798715195446599166305473097453847901727706732715186965502074451194554259255990387597121359272871124493377402952287685242855888180664564149232361024319099088911481676414973111253944816098667984279749199740404961029300135381631991846246650116932215168293388969157834059904758189294443321527551114634412215468920480270396608897021989138386446824775223910881811668248499224428230124382187741224926147292636420611556088555097725102183857661910517405540639937827246117536006846962812118465990777579611134222285046917595525783247763484796330709209769702611466261650229587165331317368884768883251470103385245648753167251117622182802619193115871272968929034622109025749342171671247791592754631575430853995812962983359483429252322552893821802832072424434079588612929698918807980186275743092808677687102094514920481402093491373436115286601539289019433604615441555654719972982349792127688548300605040592144654033209635912541296803919247575941478473480187410152528368373810284136005353849380132293484562252133269798919761748853054869763501736813242124918539900677873766806555125863062956703382866015668293213854771344518192582519352698500479122750674262644378834586272324082459821350251683245897415737019424039404563606129380455326011944822587078729184113072842843794603090091661434542553096869092794511295337819516277550264004516231881401129692969899952171211436075747949436965176486615506101577731685630617799531403573293239073826825747034209518494021144098423428472789523932011692096501003052246635738758415457909672549681664185093913104013624995121371352301194794108301569522523877733501838319374510750596660131133995936662665482966893977488606684585332901670922868678633614216234562717601892810726186801637908506126358471898748551020800431583999112310152879036581188196841800183458844600652832665271058117949113463291399686079873009633097871795076940348020572358773848373417271535193223331774097644887239320453629944307971301171532306084560475090271576910225291603395143809514962770103833204502251451551898254690771888473637992293264419166317707249804261685033342486202141408899501461162641533171012091740778501957148477857395809652866627401108061185956036851231429431616943500694808645716268111611783712020130225497892399067370950726361313468503951149282795288918078373678685676772146418747976908533368462558441340214266921953753956495481751944863208706170081749810885080860966600882574473878345205349709344606204928290663333858310495243848864010491285157036844101730407372223332309405869396761168293598627584373846704897062129900492249877914018539128439395046814635018457793073945266426008503605730480753808605447813311507980630441586322562485825202983210420019458458752634884199703048661773453951359090043625587548185950951636270190338716553686373790309180887448837198464761958449537999907467887793061171620435335212347688812533675860911288197115798122045964546295791516528240284876579505113023461181024504518740224427995620879380544167298803309063071747966400272752896644722808331056333494611476102346095437864868968100676204723492556811638927012605967120106174606454976840529976188186318221974759164247326428577635913526206064522306266484120288890141453352650961677526703880040073224203521885584884750277323054153928856013458315632280526650235647028221100228942289253834357956739691193286929253143796793513979311920244802006632022999663760194079125378091470563002892158529235254748648205633089855100383689882266518410887307230229826233147800581237216985338699238677366077445024152937635551586938336625613041597429882195383465869315108689264538955771349747801615687845308524423809457498592822575053496958199682457798576058808308348655701114099086246017555351915372471602886421477416888326787632909973244766412228180521894596363610355095073239484802119934348787599842196268039947046153309136852896280387439837011453992331865494251202123664841572581509555860035632561337391787239856996735096757550310813436769837765009569422056352576001095311094387384024102641598025472107122670212397541263954771579784098896253345443538428225605862394011299064055998912497461987576590952272922071475559486534501272730820083071957533925931622211708864225786333395443085778790166165183341428740029912441813664216456221147481770991707813574359595465911300249189480639160704479582458341768865386848024075554936427422383091705777073892127350465763204019624316329156712822365569516687331972034518443266323670701636355315102421757476417268985107200195227241468260911517384895981926731321540793298516807111627545308488363896614927763574654502060837251039147061637379064104327509824110185368825017503425425191507775212109015854477308075384274645849888238398649311253868248930900336005500579949162034842823570652555762231386708721899737475963033986542198553094682070407547113167511352325248861523121121521450372557876270416033711318970281186651888493966574245023076795729123716993810839998331719071293969835490862751435802136027818450912403224709144347728958712023588494159823407091422979232508424800622191044953185705891981091409537716418224100410973433303942904520098896332862470745760264217833136336687353292569968975973579142110425739796832123307636306263953140267731514018332074290712812423793005673971178387895566768796055404891739009979158822416965368500585508043499512614372384807210355317465605624805271632451967009859325510873124640379171843461508533470646726253028584184092872570294228189042477700577615347100695638642079565615781518305375729152066050126487255933207320118963616446117593336258776956684804967911834521679955348673371947656383786401426155994949084858263917748356704369972525785574098425646612013233178944838494445461236033666171042574210304307629027978133165683494296709055367971018069976573677118609822890526474214693312164537983530642467448446545948817977041035320201103175191771888994778369770927288973423603726535521722675230631275040148337235760826332596147528312382850864394354270637836077425839558483804851341768571450636095075269544411523134389682270791200961869980124064664515132048735003982015398942625245947517170168577492297397320393691050907638239448443660427137711495650800043216477006122949501084054353605675915930434149981695939535520204798563411227732373648616397124140284261132068506013613287004465887535348778150927969708365976555280538447208386268534442395655791516737826333428204058910496391546323821206824847313028932929714946912121042967713428676812661814755557901395118120251314639186256538750547771621586671615908365239983805454265142702874936989292420262188555334407639392888511517985355896270364116426886820386574289895991242622961095452778273300561168802798962427957837475544700502545044228671826737074744801143377909970323069752360525255862218110013328753781947844384035082269330561822539053607396605792057638446596366838594496916523529830871326611993269582589651932735110545026680065082052819332786144015879540342163820870922086685222348596372790036763830433144390238501401730197080211017852454479681637225000396921749712838865709888513218263907639491603456429561035462349171622090578890690548677882345824016976445893879404854753706372085790635057103042713349642238308466482737152225249381802071987457821530820514567411973861613600565593272240782350131438034603832934041878933488072187402609573232327770532443022006803108537405060584560504363721141441145573374968010094196797563902972398722090660416062242676601454870506459157477665053944222790959955026340893376321718146471363036104248187872934837745990232852239274698311000834606951648879398488707845602310284546378450238747397867862163552898540327837623682890970921834274927257847433046635522223250684910193620798754154460250313913151254846825576892112198145816505759466399773108276284496447091824639450749461171298848029382910484103377507258802072688499041764411216399278728539475132614252920309013785290517121916263222025646387414773669402430325948830622803251641143208263193237950505230715390549511471981392912505335977771779431783954488203074290188745786525534527085941199291142434776533741110901507964699730914900724984008622605716335963144182992375191826353061423236878219490146659726742501437144382827846856070135883531214599703530029253482473215800405117032408865981623834306700659453798810804094417041707276856845892451178603798237207992018284438528537613281343680740394220416143202420932489669528673452557228168397527000197056398623013564030315941405774063685293684659295718422090493126430313865555953156026379028270175716767204281844205438571503768833738907275098165879853940834891984244572812891501453779052877641292072074160792357772400184901212863777374893497534228268735752501727605807137051339349984821577460969033772614873957540061857590877860809418179575475677946112641513179583312972411287967481732840261427790283830190139353113696593992737360560998087612537580033509965310270139990111785616190317829096526987807109842091486083806694300071648876870076317676983621893339383737599505088751227454454673496638600224616816667626244145691369366596773377924954547808108084607302513370418622137285623262731042984521485006601921304645092291122739401759225931531307352133033289256659769536165708264235607736051965227186644683259163249639604382918690657696813292570706019785044918643282012368596173730181913105382906335592884751892796111531442137521536841955984246179226134789417369260847385756426357432512527518931679699488492820837072995985433644969670642296422526917030215320857735978820679897280930512097825349188640858678913475337159183540685656539583097069092032419441626797715287384795913315431195679195158197845861540463459397474520998238513128779091536640863348475140074923797959544170604923201470194145598212704037078241253587507690088451759862017795893179639070658426087126397429542858632364379336275214713986786504084306291701157472700394616906547546011979568662424430328203875407579745421958952283004734943323793339394916752858152480600564150058763506496734413464653751749766684354225487143122093397201817949925366803767431265315267369250769172556018588469368685966565986669092320312901008376687311483919169312472730807654546706636946571946027521736356716962057930704966685116086350776740184165625467297944287666476185933663826716653397249082886492450997029908057039281560689724022932610628001697162079793886293248532485400367485766175332342509296244856301719200518616640086403878710069423666976194796197762015254936999649618828879244888906553075315540117020789114342845631047342397336679012602734611044418447614228814155669250029639677656269168984681966343689120944087457127386492305549316877527838871003703631248163019681990498100582256105413896947441945500675644830305428418167660726477937776247613538088596704471861787889547624368431645565307849308887245041777769074388228066527626047635805895842727677085420720713236141552508665009155841890367832160109306243017552977355254583969197787393464607088642012449117391591312279503814943754634738127409502297701705940087119491948085863564678610820190867121336571061453002120512306412979787679289874756710866517705263954771249095788700286694041246285478143998447102781821899503024604227005286891902409721373561378932582738069592080211047425663914923868978185603271241450894022638042617311450125874861385423091183539205319082448538237165913523165919757538686960324331250542244306774631652438714309029035863487157032330161524689327115072910336569814218347997832784757200682192941517763257458823231932536912618718917488579087573820323530999970195223214326730494387775898162952911611285928209797692117506146431053504819680686959109931541796841779454252494265180155202765755886071913957018710006751532062496711082333378510581485732478481131214484261041234230034492566124118063674841714055246312550577481506949099715788425482777705709643036711359878315717724073873558325891937161697969007165773950069319934209486165337715278778725799123722434920405537370685257557524812300045223663224827245511220991451101254502753894801136562025489224435284078157823424419575720565174788958631691015172093594886636049389987009312347696111847810337719277690245737298784989926140108936814626709177124485897443401469131556584072844990000576042459770661513321980361701605818594525918918757288293302170468584078733058317098720147167334029765184356459912151812826098987261454522538406274109822272189291936890800135971913003951370357036930585363650616183913637469187435594065814790125004440886452929613723221137729973272832626891914719283640489365369039401498128490324971001605425775839971265013424219849237536468245245716926290554671256038936791888770291599396137117408339542397639849547708669991330792985304293377489323804417187788357382330476063447430486236404517481322026805309065513823510428088880288063486552053633992022236330170013700587449384296610648219895446755011270449660625877449108711074551832101651536805119473111296267867646823617396248871158691320382679027635896100573405585378564039122700225350982252470109239534565307517971073064056105615714620681744472097437250089380663565529258826366714770777441335211737209800564698020400861294807993959908289788779067050693277180739710378233737238014954890706233795526025236421067030879581067453902106020937549369919714895557115827661217831902153326268589237391344098827903930309271245402512112002070664987514219866386583606638229982565837959270938638663334202961342791107968949955481619354980441652896140725634657829206203934808614210214460014292851493811561113364876205134141013351789459269446110760859700524074856198565005406193269256705900454283691308154831106928468611903998022335641095580528374386395580655964434287959683801503154894038396346648172397091478769449154987261382617547596521433760512518886305927925937058251744853692667331318047145687247048235771162800042067064006293139122702111241226191240659081327526465011564314315035234019319254265696391653112720808040613320891325431393143591768385803630918153579344910294835303757653669804679919763740062663685236115623503018476659471400642787644226226723625121670419260239372740858790857629018205504936261904296190092137934649590144572822993370254748627171906272755576102218577233674410562231957140296731644908208803373317027061760268023508482814857518018422553401856423086410729223448775666676676235468791470234500813074318185108044921334050700590885601626057055087673016886925689754107875748864744930515507245168144403266074840982242526106792708757202309673289131049747470253174440578408832278516700843799589573918907617115976524263081178326387167552442871971857463347301078629957852737977252251633535283723771728495585025917947409515319964938090092075677070652923889572100186802753173606633249677249257900347446718888481980866551278616271590232495307123236751477301557957707143012561737964410654639662275501057065448525828953115824394804340288490522715832827508931490082912562473127465226308307910500168746409557081728865259745573305955488251122997188806950152381086246240789504380337416052579769375653707459163582313413446661734239854127337913262784708182027959629352634506970140977185317223759219773701162615603887741103296151235082302971661852593307216719889910234061162585700726172543148103642666914387853197584647350742728535167268816385285191647426859722262890480987792938364598402189812187147935306300884163712709482446129129482937470937851305156915885515779041584173070607668194106980720207883210256737666819258241807909946550175584947469317294149675087682602179813268604747485719364234717773541522970807124422230063049223061180621046596976423211998015615907693644104281037515691450852407346886038215153628979078714299903187713589486391686888192054556681082790160536653656280835881318013840204513643322804471320297086050475460076048803040955688532458007379426586595812096289591503142977855603968897747347006797070313403874187778931759337111291075726925144125630963571068999408872147916811773524194319526803834621465057407979681904417088576388141651754173219646623741593413791103818444567468355850401519221489369451815520550825044220570793799001042507163562046723783642966672133811053377711019142271119641370841041814766889512295455497403220531340684415466238732312541201787334986572907182097183943123246256397808302141053422782343968406018121760375848997500313762903908344223381231572074171316738732335768254008120629886851322700361951355818399253760129051594706022065496537077816737262277595585960545834654305117834391269871031686376645067782454365506884399098663204903966825145445899380614433844324946762341412215247822840698875258917416122610153718061926399507927993154432125161041783816177430346409804150480933067194758802588612394716784332868789330821924882818871480021297223405871145190706432266376470291874557577454300933864446159686767803792795593682851021067522733818224056657098950549265708393293414616371648886061672465302556402248003500271211553221901593001693552910603008196128545150195609095057287085590028883826358824484055483310548801495504973902807202782917449086647004322244965253086382485127003297413612243461081344013654768750064726892476842681611983331566963840979469715845399045386958565795747593806273856854669904671328047657767024598282351660961106441165332616373814802710505895091221784099304819716735515829231098414430793242567687883242228011782996431062032628894758391252019540465269106174247226929103644135122877528965472256625849907253432197421348266877375955293180342248119020687446609439871681061439326717259249862953104264651264505723899245638238645934252731137099580764332435103521792070561869404576639243080181039819878135560517801747142205164852557427699471087678278203505064675472456333858156202820581150242165758149609664522453080041082341815860891586764452259332664764041055784902695358533711090122547995271245628313572085800802617616009039618883595373947580814528712157957346589855226568617365531807369443886534625169454054019728373298296857984970641403102477281560318071722062140988164857731331154620092819656788696705168380464554644709879395123648634798054686320377707832952053538727023429234839613240904596367029769187244794662170689445333531587740046321010952716268471513955093275196790730643177002419808283690510442453843781497444227747406255614049907602618304660057483736527108080992342857744635324107259425218681870213316142904262158126166252536564151067441851842104738992701240090073092372498098723934178960687087725379087227298367862788464608388523211411554426442847614057363513673275248134768977423122188009112525984642341623823434723293191731135608334147340346630567510632538511224914755635248103852188750677559449653322891717083525303175202642687524816501321509189607233085669504913595449156626516651048823688841301836999370714311792011581411568010224727943345209645646917637270968247788902328486168285953219886005556134307662985189389750647858481986104519246277485446074380083783171913153459753793021243037213663431653141264697156826676854095448688241154247390692094191357280358773758598815535677498526366940930426180063869134188537155783535989835317205206966991542526389636507829025469544190188636352865002322246960513262426927218917657816402003973818470195100139835708451060004755338086771621602296592812506150040727139001380953426928852359957300714147560134697563292896620768031924226330458215000394385169346784979697274482999882318540728038338043795699570152093457556696236044771473985799740584447618668814113967339523174089590099528879875811324237618883040356085511756016510886347470164805826544210449903633376494729266809310821729280931640858682768669866320349478742175322060808780132543169144469797768648383369402017440909596623875006275444935938036719618733526947272505655196896195539447003122968361279462258142708503355479501955424524153627708978810497261104726712468761617170080085667104551871287095373324010929970688336248286165429912920490636259058202414809184218523799567200046988239931381793128251408744318722119189408673226439222116465489326667159134470012565432489532686322930706063276783290675578725470246215615064262124512955770427366285964907722592734991308173380659559605411622346826054147435825551987797550593981029548106968259681557841130462697261579105831555682733299052307992617688472018424303483427574547644302237812926852690753052019171918341195012388567012241067475615116198901715848097877900011884223872312131825080818728645062025239239443618850594840353836952895064849077720742767743676286821481371175685671032537812194601581863446074263808011399148442763038691540911235044647206685218462491453432293860170462899625781810787535866406417518473920471982683781765590606493060017904845960197311184296974476340172771013765940204414463002477075950244584921129928011538225139795425421779288337356835275087761933668334547463904935092463463309761635234096455196595265942097879861526121977297108191474439187108835255727532638974604804172096166256765419968664374989876183922138990951115863806621845329355189168473614086861603196170313840913671645173336853515319037641724151758135465741080276816722876887439490423693364799703493199966399722501620771379053294412761846717351859391660503803466732356634958894704723608961793290963099651877859872675094928560296804417518038705184622661710366445932680141513087445335998624239140926298568823311594802048516884071558300446996306005009048846465201887565643277046201481939973026828898035574908055626282961451493597712694120266953639040591691368213242443136613341761440428000162435044053336126294688459732628474232653796175381844244096778228881129268747865094463897890223550571525762225204378035066974878757078322833947476372484505021574893525841756183014826596759767456028882241580474033335954080435429734980902217889809674581612583327194770182381838253445081496750700334427665104681596117165276358995380783303023558425578393488806510859445734564335604100727172308163939670238768883282250904468822156004932673051318439269555888292921349157080733015384020595959217902849828536865266992058197897073154242322438398944955178336927458623654980781751080201465365546677495856141172343761508522287928071977580234114208362333713244755501507325732434405522962805894715221166307248738620453478656784570448945882671407945591835143969349659654884015730180377575661033758183214434013133098008078586081834922678428765236793961147098464518873549537009178611607616727951244342438778848021105943684696117519681585780873021288420712055875701389797671007010965036422873839163125230564873130070310484521337596914789693155077781975583934421677287505592875627340009782404712913805215288303515887360927909515689935837845634256038194810993920029012031546830365059275593385425961512181433800075742778392136307145191522782734254351579583458168689415509010681710526975156064892403216553306431281463377802801540239286183362999391351750874927325117731576001875889345282927743367017811408196547046669754375825973200596906532175015274939331272301707737755831095326111386440804988440715803929311771004434734608096653268000628353608410316422856346134915887609501517760464538415683018290715443291534293645023642018800373382772456552001297743067390262412963094822139200899044473387546458408999557106830896207180953077927667806916451056068026378338411014935849930442240727689397861785914536439205244498453720738991538788522896598378311825254780895903038003197487824514251555535309224054035141842686645292037918202493308491258542305453315915145892731688019762206771526889853779270050935729746875799800715464971215583577392783450802010370282267255385674667062782355364034829356646805684651059923183874029446321164507423568050143624713197230333256880960766100052583502539386971980418278605257884335280778507317837934247173813856522225534950926699323152197673548185517150296104116447700508467820327281360854689231999864289375214239605951098606450536845611553805238884603064446872492721964397376546288895996947247812271960807963436977655589855961195047444031460918417592809427209604805527530664577013028377392116775797342170812442537894260778665035194656227288719798398610646943368358972197309365205939650806819158088444704640033943314566828030154267610714452097791673527970728906845758320185482348388674703853342296449214825602260399174575253101001860605635697699214843351771281512932083739377148421370185007787307759958638776067100403622500098841149280333098393323623334188452112875671506809253756001886662984125157570916833366115953838356735946375049457942848847801111672045472491104850538829907793723427297280808282851345777363299150038818278604102441256980351737666243705332456292566453003943965005444051455518056362572101022002311097201255723795964724202338926730392655881497491605942333091125352983184021913477446817787477275680512629452853345772983993081319935967293362944179382026329955099178432633610184507695493060677336213418240171381155565777034420191895814830130558407772643385422485561412887397671493281584528267263792640537116325879574783841217327138921298170527778298152784311610761489607376916658849844269372639121561513114933376833387173333117639626447934637263645421519837243205248364722461448190564337290975498212655141057385769603912074462977126055517511512666456465360777667021185387449621602868930495512322526319183446055243202313553172202383789346837193161335456593309824487915670848112019347435299476092587510073930320444410758588235631225488126955999778375174190882001954419943694974167994798771053743512012507772901021044723058778732756975193743961262969827717905070458048624970032780173350424304890096040279397927950066116998225507461344999202437719133544716019518539418661665674812000072039444029052625696308376025238104912418418501076028659779787674463876658848471368067855067234202962369837131764465193239519110892928031892404910430549015344645854947212431458430348337950373625691922057122357866960010808564053455908673078067438436829682716485048995505341601108561866406407495532813057948712076946238615331049131028105174442848661264376164412346020692266650972842431954200241293293067195974297467813144785793495661070960255529835139381065086304195962216311829000822983821439074818188747070529361277385611773616106511807354052129429346292547133778309690947737135126872149000163101808685435502583324392309299298039043770845373435621465673309414231448080234532961266211055969446495246809448107750312579992301051681233228107415097944229543702308219849394252140206120342742081283440361920622413410905339413211703776154199208281924904397130785235812970582486110612542457131376703456534266890310162269291537698586511349853229885037931838814175723866129660663098968795596061344466269829712300421074036738491545769506876345867085655688088078385466125418459973842329315149368151047083875607991802808346733411471281067421595030558711404492463670698451882597895152099370784602606910645079856785273041147378652825201404008897888527772051937040327112782209393148368718016690926330907800617109908493600254833571109938767895589103914161098419239602605108841245404855020004690524285717088216445788474845650999354793214699451921712389658083678697702813993916737412635268571480941419725089951397865934961859182281832999718055159017383636820887862052348656129880039818105003130145888776142649967075720492106871578924570414531822492520234544272482520866360246829120829499897820617685433726268545582549842350732659555004427903545891305904250262925074197208525084521933880437604133390718943634383678352331244431663169923763706883129863072801802065201670303459012644711936053976553989874592201420908085543030972566695982435465188730137865331155574114644292124179121148451167377340307532600428865768209968985538367669339149912153324513133901969338692240471991013622166384250479009747939439037687293445200908512213767105985599423282086991090004064719728496517058302990001798902598287307253990870270511432836447072056569956154883757452028606192040460821838273251982937804086494613264146608345074899632422995298830583185077053827744108638274062520835146044459081650379780758544626359837309710931510758460280663701020472428217210999618351815331231957062865558786384278538109015685290452720334593399792427147352486048620546337361589786881165771693148498455744061208318870284213714651330847218561016856577120187397574344691670776688324744491552951720459716887515447352732530559751932570071385849902934415004174067265046382445362336442875721582857072488662760936085998917928536348169580489270800675488624564376223212212703833712971954423698770800097842003303213086701969274097181378094253625779225262235978969460304882687712717918958806158223767067345862868759592692599287904646206282252036053554674624909430934372597562773614045837183447425998701600326275387081116640689056556946722484557770743403756302591814213311732694087263248967633805305134836637811057987334777242248810102640877940853928260971629247152342335239806984458548766411952160745548015733360128880693888915473319796103809360076090917765814505952684370474243923630804279497554159112574846110906291282951387719688339976426335634072729799553781779128470859017195861885726287538343056010893125990117586757823818270038876970203990740535038900144193752131529677827094023212575069809318812289198516395120983505623823677771886045946918421582629102764384863564561016591525783083923891120828690017033766009304662585877070768387020711964010460206052451655784284593529844769738735650982167913752387934542636598605318990971149203656664434018641861796050317340248652445782391609892173262598079364352561346981312577883853744602066744195360478041828782204174015154876975719554825421067526985394805456449277232103736727633543734113513478185766613412127704422857941081214247013412996012073364588007789868773462512928933617846322742969836896416360552973512599656491857831593332368431110667586369603116309874898126737735525040277588763114859407942617353404159817188427978054646733472396489725056904846289428189985997928648884777142828425399589548468243546409787098839761102315384419501822773370405744128288779238009154705718671207795357100490707378207815757305520349248699185336622575660918894134384286479588022238268329828841432586985479101389509672072508638185357448132794672382672776088200977702791477249538410581324803044066799163780216285183007987221279237323583108728871026725728680972384633412946898339734007199965969471566514498451711970572159911888967637259297617399319442585710881887600403521971146146518045878978174378947100580824785616401126467759516441001774494490909814676935624531247950576457923038954583490066995903774438766300988377280156691979607044600586013975876637498638400540470439272389950122804188988436923515509382142335569961778520412907808112012204688013980202307571739215744158594250625119396400226827663546160604655778219082025244941614087631959430242801645381112137122974564075679690450927531573692273109476573111816525278513742969288253370696780701494829943619782848444211330553339500599453221273448917795798839152888216920166446798276600237880122652261749431199473334918550275266149670474498884472272580545532477534729808034692462920741519037368433835826813882527020777608857118069076704093757116186075727163642925455202408325405843005512409692472850113400316632169542289306189795529010700669846224497747047149455700369341318594916379918368446926499822400776974595717757472466870427401374761099211010837022992315662662395111355809078987095516409656754627700058729128994157595311983901087833815070727413189550027751919051845980689281072765539160903498573081064680674117429175118249189190607300014759026217687855730472245141767357067134510583759913073378791082963474124055770367807156320934268481167027084736871421191738857553208663687453472555760710994508655850830573764529220733643515633656382649571958613101404663131163674897377771003746503889375863292361781570391459555993057108556397224899515113474831217858590244521520306870671103799782306010953157681939782768224558488740031391313235146211645171432348086761908826451940962769402300897305631602168632805407653509569821002151882890782568385909253186180660441250877282515537807083484115484587182675588482733536321520298237805450266415357766848145480074580976995904287088229180985313622440485290746351537829713357977464677905658728225676857904432488288437867662845822976448909958674331156713957629836664106800586147133218768987574745969552844296635638754891940575959143962352367846154179485323540817128364191628993709150905153703657794554267752350860128614990386670228031529606548157027190946588611168096219635621316801745465896509786342846771056056583997538714959500865499204118149508206028048987427004999158924215180816165976625876165292425129465735821452715261085290655576545849060519075425173539727430135699299241687323542731825831406362361124029071261867183475529607645800972187634967273723981757641541971370750572985528473047904579540792548493539717133095907845641373967643552024679498398105518534540392131190770847222385009345903066355039746297285367068889837542302738917585933052322609650576884549863023040658149942960561705414293571133882325844257723418929415840869545923621280007646101620040512906590218990019008517568687128993559269893519212865905458585467142998072680525695729949542182209703806384628996066696231015146924799863506204389391653737472249564357775438294367300642886780046503238110070346878140669302928240284902706085881884440132257064468772201095766408581507756032530524628793740349735476578432386550397365666143223448639776370428000173473780218797506799354218706426172464483313922470263318908886467454056930507061678324350670763746986720588225781606831899035441417560741745757130433008827611500106769679987921560520312056570679446558706411546775364197730763205599483609084150410602615841531677499948291329545260900546507411874502549621927720428491655762323385127283445246760265558346513387292325804493615697347228545972732116585511984060677552112301507625284939589782889566236223696314259620156802668877534380253296456929118062949670878141684194073189545592380210874430692025180956589772583594706283792525831244806731839633392098467207690570084934215252653670995634180783035346700150311580117877169225912758907161039331792664269132710104265316157263747125369550297565275686300637639408115906003259520855608798285997518236366595489467239447072616025566310650945175929804029475521622126427859879455590410439414785122613280500766973713580319608521642551635757630791208356436070945319585915280509207035925089139895039707033350207264672434293291872169275936531094984606007299733451498543198059334767457507864720740199264468801372672160136665942663807931435823987569559718617942888628467020086879732302864114237531200089410274732174863488687856217178324107401331471578715018941840771533088285092033947004553977773577442099845680268983243178621872266698772633492668478066739887570283048570076902860010013102695265716731560439401165784224579635189317207820560513095754170486769747225243737312947744178343038484282435117426261526736773369455587255412403245242948685430670717982856664114755762275078474626389669673966121929812155056792348439767781311976659680106168890249467521362843092708832815234450633755617458710177528935239571685566677001616506110578087868645283557264634599220442857813384198612057821044192783611706773357470365425334582260890178027369781854462164878821157493626014830171634588614683196782860005262958300851270906883229234064808802987934643448561264242065729262293234604488390631983656288290733918250219763290305460565675807066172402208434839528166712843507315582429204852318461281085406486624816863041260399868594416014197454080244415973111860254552445700423407959292191730702273969704968591070178038115743578898651540127134880612574155349814989254081175847050787274586595355631338106059832918546326482266304770693487658319227741839449704852362224352119370025572160602140898669211396123877984719610543090689451543918504163022530227114426666739396135229672402268486876230122522269110498762695859198525660403812125617736122855739404762793214829490912860707967313254485425355969320279740810342990851774479772705228101097934165783907119373510296864170115605610105456953055262172782382884280053083974584829348280476241838359544383028403625790302841834610185386130719780788391042693763871916484999622565080858163767644914972123656140661869085302272029418377696964402294050951555336769791887987833889343374777783682474591151684468896037086898323199892337545079514118915127699786777460944134604309830404698494419769234524359638004850472977582796465140097173860444042116312807628351697793822198744124806645735386084071052197664072533785963771959036703605053102632483411743022923478714465054742676149460049870569282921754940592253046856340710712973235388978152428232423582480703826905679497610503109577400888313397422132393210330122554208382648137666764056331588528505267115100914981042133489119848398058150999302201524092480515997941171675764568689402016894997716738403398295905787101548103021388401467408120009967197909310835990806028641841604235518659257043053840226056612924720306472684807952461933086507817103222655178965014442823004134809207639307186628575835245622822259194093234223316135234831250120808459120097315962353048163151808525337330641078895800636343401014894606926574731813043421472935004907147923817395003376971815532326271827248726222302891244218475180189974431929716816854116464419359462041329170423803092498001346867289716564402836378075406838318591664415890357817704548477019982441346386938432429331804593081520086044168193285856719028108729469240800601158026449478095999330485765106789965426726800299441220591702664437165568642693429965345520730885546472097995391775254494158193706762648991276629787796152942525281944627112446787561219149759796875665013818923519845612725730060840466055137348291901242733752845192384708791544189440086169832828384432299801681439604242532482815812487093383638070805570481151667449721720741241412551355785326455925289716362468684056254431304050513300291257187132564806825200208318486640550997498151263747138916053242178145138937714513905370728974593390358004687932455592959913730804542097572731415699915276013538531035600402889511740693345915213313772504428716653497231060005009217951816508569498736906861691251800398404680173966036596398897744668462652375976320027054263405221048555864221377314588702037744510098673786362968709280677630168156352099975682999229570771165867386150437249164406047757201974949241987405364284845842555119879661216002960175219365667654344230762469191740465184218954419906378437954976560482428314099285974601615633412876180735257978852025840271005862941245061150689164331459667872988682352245604462856784500353018852116611232365524439853943836761765837160244809832059904525785067633663807340220318011237577598974381217924608628574833686421952318813143374231457836686856535387227876126517768675049689076204807243524737628683919531408215945818491041529927803456876767224408985643428428246410200256105040731094381407745955486918290157592198823903431834522647548599702079113277492307038590390744873728128020955588139067421026995715366217718063163755267855302232138396673647480189378390313180431523667913696095300251657712508682375801016354894640235517171748003345943522250426953060515400952849398438085207529799469865791916605270529167790040050289560541068267674047659044718746757790020790653546494016726665274477513152229128242149061334235271257269809446774770183647459345644938450658674278429891626628551640511937030598887624936066774593273637372025409449638932128670376209773690224633145617734095739602567995226320452255301178610542390081806753383999767538945252193031406566506419701691406334725546682906706958175381076650130565404254768860698735806090127836651521357755052312853436884124333543817457514841826681550533694799185162443653138946417408793376313903797742310408730279472922452227139038453969065918802699547497002665558211405827687908544568212033947336269602642383268081922637334937329637233376384373085096305118653102018381839217681920537846592484671742298939757659376236081592273162478443845101857633105884271865683121950384709955381452740098947116943004313273204226235759761640256878070211901685399387884402674265169131970650736161720459179271026820357048312680801076353956259488164407764081856691657549786000334496246755359205531765589087765868109104991201820376154135667510700542707974707671427281118166493472712945562408915774822943361915484118069419322641761051960891522823806992150481027764658624431042570993758175617284037481179325135992083893691949429030297751064456913992532047135540339140967554224659649896965480116902558583951329761641418473954357811092879015523202015109553692122939551442178910716815259127797829529277016187127009300644711065341633435343765157025801294367566890681967312955030706595748903206054645665759020993903202465652255627042376403927769921688602039417961261703457551717378950969197711273092833166889042772701935844505917242465111436433521795012704014462330571279513579629047504627217238481302445735299217169136370901668129784706629420745063799409318304393468244868761623060199030854455167080742409277944562969421878498969185856447339039772258407785576235096768429290409586547889972678682743426896995764784900766039941128841858788763734824502200847560975568772987355580797091962332384302015194739389928178743201152308609839202753722335775592675156528673716484418075236181954591843107006964706448717654441807867055779308863146160272465021213598428174053382246629157884558223800289227022741438552447715875007604622190256972890034966890804725446222872410803666025777818141538280296646388399818231703715939015492250223259227529851594618673296470298144788092347102409544378644195548162351115211984582722498912193342652835280867302382996608019037848684532644591661539165411034986396156998097267323239202311904439087407978719364827233439357407481401759460923061590752173932413292334471938172882849245148564546652010162606311878223455287580349283337440780578913894524183748206526618484921202554894608305727380474020814051152162216342367204172605049571900976494583271439742822031746413157073894409270450718539745316944228787279033959078573431663250546238547346137378946332539555128912284012864295170461889782486050342779036304640605086629954545947781198531131050509045661131650716612170207415351964569239888019866456653860389098289262045270287028544458682078393310113601382833790771261403245026497751439537956957097897779320444758962945232620026840278233944216445314820296101470349545672383567530368692390465731894571945200152812420045635927542471547028825898341633847291364789590394678492986357785355214300041542601751225998911004953066968170786773881272329696247216797361300933406250773671558298070353747753586148865211778518244378527384253166436475661307515113117825510291585113616579883136353199752958416344829125547995056260582574971262022090722736036820380162468508927315937616400170543862114100081621808744078179700562092794670878137988971666555578318662358376662029593632441386686104282567193462236111788662590650664152023199930746696110920874067719012383253194471107811829279888753091439138404921727332207440226975563053815403028538652847478740688523306731026638011197955246383789507072476102948473552695997971286554140382608827023742421409878697787074721638009862432973425183760861304169582808533474844405912029702364088918840126570740222134217851510476279029166583922655118363214960981423125111406313419291934205559894191766732112094768994098751674892519658874837141756505240550262520643799857275953548154382797395467278966078057990053245434140481606806721720057389842841873285576672402473011659448012640020520885057198593100594968550128427854848963741492161605137931081710202629448493916208290980398905622219591083004444614334032413533007743372258742021023582915495371159397742549058367693087334275550571657472697867210006718875555142605138010307622501151154568526750986876801263496468159604993723888569195247293960451542897210088681555973606365280569665009430312958775016202351811441248714520607556605203707441592960375357907258141674323592500144913743897964131298615658160088460317335647638128815585710292331717596824817806003809031138240477090544952434381909005873020183212552294948424299611320976528605994760166921421527076895892277884359523399329690054709565262879725153853501781141386676116575690985313821560633597141218878702349822280364303641482679887325208608039075488718739426442205359870845183768659077025519273072318681177302056822817806866300611521110699203202137585609490178749930254343802918768831954169227391443208104698503698840563282242594207838105085290396723593655713220186494440619397617127935700737286317248227413919308926757809291935191486216393225858741287378013450263698371606607684064302714405137009258885632779715834282666759397752283016799790282395780620760284481218970155229361828192885979786451454192730517745300438166848604154615622426041591451622677253911855593794492043011648743651958369715613559065671768101909969848397153780573599295862993954968989362236871669779007975326443102519690807335570342718247609999717837348010563462877483515661790241542591620728023366492393982787000234063134223299860081460616970832853977246877487002878642021189528177722549306095551685499393131035808267920393683105100564122986098287674165622536554933627857245659861578810369622077858775184480575927950890486715547474615933798620826356415540211418836052356298870986213551100058164020546602182312771308835722166265198434447234251855019126230669816474178771897873584322299190824819886037969756412205843362166415170557968417158650123195912774570587387209859110114251842698304939158654796246717328929606606902604845486379573478302853952993918787430563486004380965218769292307871776604932595051458151794891362460399112644846107095975643696351598705798442359175676377030019348720898095107311045101262135994964703611187771946940100297280418176818950143420682745132253259749845684959983044506254923113699356897082257598448773196684499390472270504753213530498789006934666033304293912191362911388903406413596649298147339163452451410119858004660288743200817994458640058666515339001985326426591675692036557300195314397203102024170948272821422037536203845259211994352534546292643912215340502784839207644321740545845896966871071031629719785772607610190673341786185185109361961707230087112227016579979433350769093283300985099838752008169265461544632342629577521109732006807965959412580886212793219588241492042920442334458027611002859271159940531610779438431735921628257660580458453029590855410314302768502384594704709724869702198447928522420206762538860380989924335680649394584691269820650290979502055111784709483974352913020581302935572980485147151267825378922123712456087607512481451045563479662617356227671604481215423650792670011744941592435556526382397377421282682153348810180506008401826194369031234711631879075786209405215995435694798267765028661365652479522370549857918087486386461539117864541151343071235032287066879066048324883626352900377913899897278861193338515119550741493964698021983091497896333162131936552642207765259217101979774172801403890425794827656104772707399095553124260092559546064860691510376634406553731658793500413400881692749603557148751933669486234643827991159461741750249249612585930636323749855608446036670895889869093574315232626232981037812853836819490628999941922893280881068298789898246319457973230660766526782901853144456630397274164774838806062159914285975197604695798270888754372664377405382781551172910355867681043163483883793127707598287432311899537888986458350969943589904067886314040661435393285778852082659691791314330502171267439361650704404854978737292330191785976160057284284572359283695027402972142098102716047908745058079224195396995204345875984099160724731784988328950707941519149200472228995519372765053785361447091271315684944043034600501993910408357140608387328699945462620150616028652180070669427790908377328345701234497801185799339167501190714185954531046877452618064577073063332274805374930093020164111939397470961970534855439166448991727816041013190174694018305036996926004859854825834350901730820831081797721378468347214685702768822222617768394114314495258722860840618813031184456520920993681848400921913201770978505232428392952450022572174150715821268446502212740134531623934242835315403579537369707068411996117833725713607333223400572437963730419984410419036513711095383187741074975350457699552881102460361668101937890563037168198227678945387652541370979874943655845868477249053345934019922263148762637295854031139999022718640741790431685877377345891759642505254259608749551819726611016378170462293785621827259919007926971770055305762811978030138753320075725444489060172058947289863272317453210574866354220692917594618182324912221979401339240942099203401501162210890002678270609985958029505796856674891642241791953221672463435404991762642006979276025039703682235946584145363266961147016641176879143095409521417433734808290451584122617768535798569752667439690741433165939963222932540127476123251553524286889703876853501379284897358523640123974295573330334232703311792356641070616994436462791753887173348260755220429304017249679345753241994560103559782536385235618992455262166235233206280377811076343184026337784771532345577621835172025544380778122424850267602814233444216275223502766256413579080659398109957399937031455892396140395060792209046154058922838287263610775660248489785357120344309970394160682959987033567637973054549972640292577069958011166155223474444995703455013370197926151597228529359415463848198243801245828331852506584080359504963299238516787338125833977452469972295665174101807440370057137200874304306488877974933637122721114949699242491258309694490363832292981933897833417553516048813786203800030313142327857669299623756787846024423885979721369620575214635764782214481903755409034572601795792293292430985604438889788357968226936109860411367197237708889248169126081119945376154305802174472659199060837065148107207919145426087070279289365583498202117021899086502776176086396384005992092693820528117920562631283255864939922360521029361615643925863456620164872558530050270677356967843723293062247939226789809640991905757812368402105272202040683199069769237000809230718904475012035137413110608129774367911870501592278021159834832599999760529392094892033463498006199790123441751925356963157877690741407246559252709156332682747210307385840064063118974969102640559411404676015646884932047383360127722128411998743653863057375801199677769331306919511352698207110844138409329699066627159684073565116322799738544938313655249672697690803602716869505826856195381028619420063519247623790294175658978476287835262394792748834841044725478188176185601678394122202619910902407506526225556946188549259364318084720945708056364521686236490618859007233271623142723057295724575471273387362218236587853599800860994496754592918492851243703008797105745493104825797222144518160034697131243210828992925690724131204734848636973852728362069017871552933045294998533063946189015392681834242387246722820455200512613017736269121127678297043241960414904411854539792664952245120767258303670243925215122201854932951807629546060822876135654875120557611867942159578466620978544756643037758616263797634935307793476919374479480031688910477879220374655613434627430225092669563780369294320017948719132387083548107556121757103092147048494225184841060610075047275369368816069717363055360781743869919590047100390985624984221301549638697594677526653662012354415236677829857597116081398760141046528401236618741739773747693071714932163485387632078543956526598379497990819322204076404119539696292551458566942812621289875054480036031502575470404990929928940842716674056250764177853336105463868720196765339136731020504465543671665302741398185520206329117135773471919036033408197956278835953321049463593154045797245639786421710572459375854564326607885794320126337816074708811952590383710510330275506390926157724954019330855055158024247863160371439887768451077201947688993642379684714346813817500301995941048486895090968198151130657908476183997123248089800438255832397098134195677522913370628038885370550507086151050502572567991705798745174865211235998708553413567219900756273875154532540870335005229795185841815222851330356152941169912787863694806072709613809465911699558548543429795982985022971998972921048474687419907622363047042093614304197175252485877501536919327360823222830761861933867478896537955677442904729666089282154313179695520361821005351647086050267620744588431404025680046517966296505808508563910794979293828270563904840356908828576481539866129719709376464277597400493138013078860058692491534969996323934036048688634658677371910504029152124628450989031064259563395391036088112436023825154216297260523245460095501382697544491432026336683664437240887505482905563192014998105363976070520034296447093109446434374444836576358548826534886949239034200688310813575978691301758081240871194135590359859271426075315998138739337674508816860724796833684241008533492801423494924442845478711715459551858862875124646191461298690608459882743504666915540804285363450703701658890581525654742757066302253993130930230376985515103735863276156601906221864361838317908590983481507606126946936403529608458639826196042938943078650109190966142503875458270520959768421143834264484300035144292661754553521354281183165730682813805704059976529538137279920119979195295844099351187974746153541452297265500117908528753102239913814176394712450294037120423749399038711582716201698850171876342170072604121325538029332904894275596206104384211826518937734865942043306506856428268010979326463112598418588367650295396950482574008574507418963137366678757054613396519590412631395559480621929966951744324385918238854866448744343028943616937658284429846364341064704496277131047779404533355559679850975290188730217548366155299444340896688932141026130565202801825516287280863902852969288229442019815668704779439955873008662909444162624526245932735327479446845510843105383261702939451798025744436114766304961085731459301563377376918344118006036423664249983191799990564098842575122699035815478475117238483648395055354969496281752606504752546422422359707689793191468726730522362643631583950823721312887836494021218166461289668951940545664088643287835190788212652900578392108122600229882305101888580735242568454984120714818361261773983632762328958096639729790396195980589742143925108568691104486051200995854988559323627225799568089124759130945109794118117638070925573884087146726104319121964948439149929230048208350188749561800835168278559938032320347614297662074514950944249441110058491094278227592202859154953041284640802685113434301551954336521875239084341306089154029503759344667220988213957357486730534837786961051416492739529409781936238550554203445814678946628620240336749632746118427526087719978452019036151789067345680897267844865599684615920496192446110777496575347374583022522712631059140212036100133073048140290177186518376570790082346111296639981770650955860984916296031842987566207241329436139806466888412184039111891085165278847133041913992748753481074321412259003842051370913108659819760367227912226128666191600428417273991889152674491636853203431654620259776716917206898317857066594499500929009347600271510261354891993277911690061822616477884350324685023626400085966741701749169810618642136889281780750062217776193673226934161664893725984255828178616603193982926701527611873603197729936101001074313296328023213643614547583236201269892563514969504844684831335008572485199028035553087305488513545153113627065473065691124343049084341310997619611205675711844591745602324702645500852531733761471968325433796961789218677833373508005644375079874134969176876947646658677487934441545331671676716187483532223345751785979730332524226708659217721846209226434728087495700023096870588464655840847469931151599238020092253349868451489065524639471321674897141052943983329087967908538793015560548514201898124417322599320273596598626602243852224990615014624090288166894185766175531729604772766600029666987252661712833306758449982082633583108108174691984947548924201405460815656735628255829091159699297884979652459831580488355949059446777283884738002987436667747772830087887873410318008370838450105716847535076350611222770029364813588707384607284567121542848503305439079563970496371375730204736775535504402334594640797781133968974740216845003897472609427685092168207718101534296290656088968746290848394226404937548849855233341694390037241870586921927583191687722844493170238194295680403838768287304038563626951879004921013032449655127479977639816983141814344854055331491722848835934953015864294563300269072166988063165708884776921261082571035366674325182275635297339916099730477215790609416142468355912404644080532938066462772306902863652932005577021142719917421255667638453627306654000967922879857998353265085577109557170085074259262478769100942898146584151326642846482535705600918096305020739281128148815136559878327835510201873825127689805045870866006127644864778452325567560972040802090825046072227424410043577044611649051235572436937140962328807453504140171843022202529822053456996481804518490538592141539817531884010946808296757237021945821343195236061810743680901489084585261913213268940500555270890256319305202765591992071435454548266968257696543039102015629133721713290986022596997714717614366138970149650589286907492606500664526621860654356422895935871757571941904204756980302998519006851528699601472281295798173070185722982917781933656812964345145321846606774081453324929535642193685714539122331433010506107709807513240548167553096614984671074649496104447693517171896858828008471232053030295742254760164766089701460126924887694620175534793647557609044214719401951599394909616289959090851159226040246042242186646123725070141499384433979623196527198664303548801847658723608410578333177593669396479662718198257086191354139779222930120948858241377059259192903762072021513579032553230080495609405399095643075518451858809334264917864037583678807496292263308789521316053568497724414059328617294925867419596412148538720500034801000690347258441413407026876087183474312940824138998700396020885978583917383898751133414213499825327740436376861214698090900880554799925939556781027104720706184170516541002001318259643783443093358596384057201967672846218041965971137743038640478171152017890230147907456850219414726810899385054036982610307267532305570592856352656301627397463495624771348681843318353078445253826893468878801836769603813714103544168524335311378864952396522163079044139720716722066232482569368642081029451287545162734689500123899148549880847283919976723327804493906432647465767243405702286982000860471594658762960275116252186547786600091955089999111084310846230106488306112034617506603199852796266460786380433734537187182289662387286517950258139290560325480685509551769097752251373797769897967930797365582140243653418474188816705768435685678776183138799678122530162735457840839772050766443368085306201900284221545862862622941536357796220031740506624185981376547897542698784551205871144180950457022604169539457236151263863475894823067064705916558751429928825538234924261098408014694275175220697924126634446284273099882444204144744354108522200692628081905230177957192782841258079491767707238512987439455576112204604206830495120174517950995059483038971060552406931884667646909965868044945022145567023563016931564270688272814651613899897195839292709595856988390105610381803150910127749636125083442569074118728228957305648412806155422452150390016380850608382144610843144702763830029106064428976369214737033897996164334440119052477864728400816611235738531477376191594476938658357247065791424121769889036949240812649544068003687485731538943018657824638131659298936915044218382974626364423851772452854551805982225855396963444353611786834397302261900349101412640683011797064691503716631498414532944906023639772851340696405479020257092814379288774755745431349163412904778474175168031804705256741155398116836407539534965858826892790055711097465476232617116893153436697089196769531101464670583404002753037912758015464212041160890079993402739130091459442267636363131924914337632346590752408567752637149060060291337763980469809458709846758505036969714333071551491431535108140306258960933593474974607583231508050984734567586279192804061378639159975834432646748735941618052054956847243842210875012107979250840517252609962404802403334078768312420565654935170147752120987588937234218806815071088911342496549596519451288444700113546433537918379884509946746122063031418426011062412319445099349497381263759712054710019217727375168774369969406712140459659248939124017122170251678443994196535552215625685520556075870204307543922320160375579636018806161790622816713028559379808223031483850613569509014048909554518006655730911631553106406200665404202006630332286132796592971178663129157420194427699864129751995009960357395132087430197343932488420843879025880876630219880650793325837331647329967576274297188394982347279875809305253559564599080458912652964046980230367534465296085876787856412576169609413832141043278477980245551518885562506450309507863651674182756422451760018383037026186034228913870607643967657378327603944371480719172983123620904881906992323910392294638623966760300133947023356567294615808990625787652192062942725921198571698361601804044667563288649734191291254422133917205853992093893299383994607948749041317606838942191777026813209593751977841922162528930360559833474021849723083500501068829538171083423371185865787995906905498809190919034544734125434490338239264914653095711790898236939544182041933284144048574926342095573999837171168330451095294594919531245843644772104134857305149754316623023497150953722188638449480191144746394553300427350471711904867525946901995351842671405604213418650851010881026584910524653496948857166456143932641948187470622008157619864342162542497801389926527949779979978399390665469688142204291764593695696367907708070516748579413562918483576405025794211248534407080173044422059075985151161330585248518754041199397597085368387127868888779203572041341906953351192406013173640057748042034278864815550479033963423881999801230914635750016828377610453510626579892277569591581206040167010413685250619287014089784970872037803559125461565289572202359701347931739550170139118673813969812251863689888269272875335663611101874162236987834224251803571924215552341297303703714000069101072227680237184779793115499525646644536987594717712693502304428746613051525590001385030640804371655001555902508215472067028424924990666862220923983812681034675113033469727593742109917429172966009648557612781116086655287747401026027528423246955674483855809486167150253430124926267105477240905611320399147405810937278326352173136037034155333856482187575939559437321284963493080423130609240928537819581193842962912190409583295066491611861886640294099237961718586357408578038479668147683720960390571033784167378995470707920942834561124762927382036634447959957663936249360603966330394366118077506409895295515787905987303647436016466945717908781681380673526214203492855412619089397606769861147384041322295027524494051016197686491538311657538575507524950145442657831452697044318326815142153475389302193277292882841513162967861757343609345248659999527833596427585594766764240360680302396846612852997749146137780415485090841185200611948209856740118751652972819881145995261461203526686089989034466955849547663811189149727567689284717999599624160896747332210343616192832771976725135803771031844111122659255601012687609656755513854353713867291336987320235292911667467673908527857589405793418882470152037290453745288686445360906188685969538439439995704996158588185996733166907836282500654962293726707932509308595444275634311043989109560569798023731455071461184607794206850459814177327968539736171191006369985535262888712561087381866695955808203434491356242922202423238153074893097198446196749286746093069802243877611208051157285266556265948823336250863480900901445242863335096954643777235000339360484753476764940145861958571797392770522679195566558607402734472836877705208039416648544759325542172465641691134433047947898922677987542702101075623877658648647610865954290227592799390129099604407120060154387341606728387291110254077310904452458399823679194987630168224478657602094186864094288060430194264266977604789927280387661567499049284220609697284875183109105749229968073674216257717679490709600257475627234703082151662565488689078003062212277958220842864147802978516470236309410590132112523897283836316152020302773699261410271625188865054066085535780885529716630240493058841108291797129325195572210286597208952195669655953154304249418236572834386958145203476229922553439675669547386922867084158164925964607842854640230094811411237033746532721769081281102513577348327641647503740649466788550355443842974531012958495452178660386103024842270599395682357202399836717787228942500087204647266747391304045455998213908886608349219090857882804677851272288846789645049271614244409305274091574378676010059615329439050459962762398243403319894995840035172432562299075318499680790206492230127155347901662477749215882438263826752898423340869755773635854333634768849360466988194904132157197527194029902379441552312940168237900514526267130089576650880895024445642856555032221374667324121797107077939433748066401250433773921195232468871305976621215054335985836336222924308750914720891395434639662154474669506147569794276678354632881654516998668344056665388069121208800772255757998044383041091811584393766555653689348969321709680768062076706530627023134215183885460150114067346053187655089538687759097726802418296068812723740184782981679547592779626578209242750758319612227147351413853340016118077667683403634555557335021039397271544531490244105282992187563847138268943579393669740657558665391591686144571197484431082548703301958063422978617836696348803571632414717102803817738669640444494715288861908265715913747791385985842171952242287246984399110903961900120075475750165696592939504280104620725013292846206925745452889269434274094439494534133957395771510316946440701788274979686075353329142076088664076758556195036601741104737460738644028691720799360486906396553815303966503721893995317930803123807691268331935010183956073706277594824626805415876103888995170568097626317978123286009862038539264656188290221021602110632218457422625669509695707142613428700398764104681713677460778529019742203005206672458106802230945416955987901414887047039932962402856335595070385059908318184060297378531656419541544911932472267096549733590056124927463949005258094065203310802094517791698690462872126912534840012763936003655183087617121664495866970646762146663046323731974160384846580461248202529430173578793498115418387357926702692152223289282559216639016841542761127768318724449571032974435577650826969655334057459691806322515068577106511319630003454841271933085496005155070581193663918519048109210286161690852048424142365759627336347745868839420965111755759266762047657775319824870278848359436523906705733259962358631557875984659034219919119092795238539020172011759412838853164569438574605360338501028142724699913565482010847927807810026815278242872552988681541850737302217306014972295710647649966033993906819165451704009677038636423381347341021511971985662856971818583028650341097602169745063088607237010547568695535154359557174748064084604293828595564610694581381747939456198590509415963088134607379384610388320314106210250679176316762209050722023330178566017603596540545452510427718439618652265641427674461197204365568436415437586704781160485002796299934865978993767121206488089829159238177469810310408717745661823713405972636538279541394255194864305634463681008520743978605870587424810001177230667629574123045363558324991216371347287383974938529339948362649154882038256488043164367132562033530015298763287188895788720956999538299191963793425500567755656745879598211475046016015839313722108570758305821433492358397095211196675235126359250538474260746104060554357290756548129775754425563845043240920205294128360206809778477704937016657390583561070810438036889202629725002532786777016698532256848012233254429396368528705664731991307629829420077218062692626318157386902336309849150019126841032771819724014860817355496434584657795811016773016956462296649219769996072855854167129034030415479545238832415694899566558343385582859655659285040715204541809771261746434845256862805563445594760395937359381987985629443304324037450873775741378601225318891123450409798058328310380327946358484225003619870673093968710481046734246664615276974370388623782469822817439381945496979229010030502272079546019863236048855866305950322241075635258551523582702554751116768077557553759627309073755328253469564846126061449899668548076842405495427239894642809881921502253002414252355956627209575696594951317720959924033016032566341778908585293239670935390284947748707247545069507459894301611965559816603663097672909174015018469168493527353905673521900112962578263019592156996636505425440727915476927384293126692438897744119346952617547955246740968016787237067907108651551161802748550720065232780411023095568918082029391882604073679405518464123433616490554078476484021745788435498468807104798087745107017363530561058611316430784422593694751467913603785167505161518016540387960972804032199407591053094333567785839647186209013532110096184773427874418280620628447663923689419487152427251559101237334711835293479118940385448581895520958693250511237443504402087800517316712593879868407892195732279725690590973198479690676045228503289235950207749225140772004557214228195229547338344403982374300812093236179096661251131319281674461385049594498013654976071534305692375396958398716904333874115516013482178338862700044840400673541304750366743983637917395254299252445729615446316763665165911293595939508606899958326976749931962221671033923243122213194706917993555276921771214954873626677516953681212771241076656676133504298554407363417140604217981172957310654371103949679264417097693802291584640480888404370813457583497281320286532139650379237550162964079636735054709722810765909151179095482337523473525596612616183914541920903602749102344625045230034100915818036123267811018585728012100988981379653714562868995758342799783249891618925170816955557905252600659788450483829340648143204527222574637507341581745390257025928750909793125661100633404742530810381236919396437570650927634883028574653174883853516924929739741997139816657746165824297109949584555121504394780520786465633495746894169163176466489149865776394785532849397906486661311338610698885293152731441016642873442963913675736787508702815700166581858683424443822423298665406894599254747286414408510529831884695183348320473984611046692256610816276146085818139888086755404437707962745270982309974999835181838947533380307266208942560277221354447629368049872921199466793503921232906767807636962468766866101717882170836024886847595198845246628586537003122836083460640065689662507103215320779353035341350148520121224961571780311394797443058150341008648158813808645262271111344593008674530595469351524958893587922613638221613988182456341874960492586238306066668063902339910363525241833618969708374575183362485172764133232419454592339657875614378100531267542318639261261009070228120701687533474010935869729500008792336790150160909899957771943282820256786369074105545977351874946803949025072191399816056518392992574183169021183031261974565299666648334339246238922803124138706653129609476892005079893378760531270338701369768626747566772601252674109844011233387079068939327041546210701233636998801305940366722754846444647148939837560365293965489691196794917655676195333026315685240899885907676570343619571235651680316226527960889237973930211829562714384708887714205825692273498075237355305451334704887444594330441547490651510338304427091293636978798502407874400066500274845862552579168298792077093647467012489971343820782042820831458952280089303522765549300728861872909604368129456561578711953218498445338602640348773928782715113066408403442439692828783021470518431734268066058609634202438057691629203179379328409418934862708935035055261356128620976625649972124374424908735937651744490073435785074425464001853697242140917540945613888400779043896063251551537229094608859119489801754188968363317356737616203843599289903279028009341370414707608473478589853300713264085598138499305313169909109741605386943516826948502736757280777938808853246763635579354407302501491978198428780662812011222838382846367530448051185736884810787679661114965072914704724298283820797162716352567668675032884332123953276381287259005620853492492317285974886931181405524945985137597590809364900189493470780512686865025205117393021111596776774018290961143662989257477499907627992537881509380115961435766349850244332911304491811010611959012102632680011106709264507632621774033983529875666138535056182914471317203936426216436362754319954439818850695565922627865295956211051980014822532515872419011591617996656675919897164340740912001393688154393248991470388918631746895141308151289971270875755081393756312428348470309154445556218663358354492891831217627075859269303908278311552173597442759670217125657269555619355013216316364567017739439826203732309231469990634761355538623993730002777177690642728527842844627266402489659797785570060965496623841633348571866296612099608464486317042958097487121528964173344337704420056028287433394322957816057249796275212424342941211204396846008366568812321169100170745183643847822602233191695376569432072993391594303962533132745123942707296128649568422782654378654097943804309469851653241776789670289522127451747153460299456891293792000873519318924258942316005958341313937689806745576317179888883090919280960646578310094206192512224770324958232138156793900768775966512831587081541007239517984543460617091280842588823569443389760841564164878690605897900215471360690794924762124224822728898536405320829543504817350021109238763384849827499150073054383315691263740981334888906933727044334446378459348663390479941875033451345843764843752993357429547146333845419305319881815434236907843455950533679701929533626493959584384859512886160242798817056903168150160312186883335302886241573234021031091827682614155867690513520853622916332727443959438363072377369929763315448719665902836942294971778503233287095874090030660766773937439165763438883032980460627387839399474236434457382172185391717567993218039462659415076003768281067719403014746462087956850027952068944194703369166414625339550115920461610475367286923303659692398657532067984439554575848823000790820881209703082896045218932777977233939680745204531058634290423512352398055491020160501257678010535569895384546332922848992326692358021403249467068282218419663283646418610935352132636865285845540366280556232412318357392609591803657180484021534455568656401041133024381250799631013528829791041446193931460709345305350003764917503363540703234435859498744746949743749384443061426779967797148267928751089514553758608324674638297742289232295471091129445956923322622670383680653057367688579006690843314653289524199360791160170570484140183604011504379560071890502265749555447467961089178992945873103947712810054272965142259736261776314186315625214136837207992346382890838452653000426631999844490325537505368483840039234813948818638373738949331345352611603952609406754162086780632009202227248205534165424218638109079880079319751972258454151881538033648106119793249330463115359639801158759418699273333306123897473698606098093141071215032143364985400326307883616197169505415049529791939089362150908713237261275689221322254953022878678218412965117140337931658865548349884871685492972600887291970571383783190681316168308125482555985092785518943848814157477299091217190035864788909070175679090956879889637483609866193547490885215502059907711576136324914088085875081002052709456957543236266925571640680444796012163401583737375314868761012003714137540098064565782907706504199299707255428184998806321918279487962509090338600248051140052378186294156590249758878257750200629415034460988814783657954316268486060907549819013047135463282249216769330958881523481470907680234255981747028876375107909123807340122624960874636095468913215140772811089713605891931653766807889952865859637901140671771228849279892746695913126123599395940573474299197431009243370251234432267237986245002185569748802593268096771589450079846811574734830440197243848168647290890061731202696876321892765117682450862786049034030706574384470848959902154386208726954320975059091152881377430171031633552598728137691811589129971121744828679098481215199789751619981353262688726177170495578877976205369357587251997268987548954031647831868882896661923960204665180348706118977183900210308343248701542363501320922874091654916500411762642385406184677711466286293541471601390167155020960509836139650340886449200803870984108882370796196604232696528253397402137468574009675020267826339155714390142451255104244374365446505988209355701953853719043572710739699763547118378527273448657634599495636386133340670414734032252322583928640497011704396279302231463059439586404460205987085176207863829794284011723877924951004137723852705762717442817488465532413755060663086209153657349971011144888940631424549368643164685033280429303216469687644301965041373868598167655347881095202625226684404861478803242055504953751539595637089795368855802121209658124201660210865895071599810343780587012275506280969722450116408022509285830508556257188531391323624969676318357897902377551646881998429204234036370831513125601178799676425563637977183140165833333392126662160647787636361615161738772950203855705598628758546805063919606560137684843169551151079541427999852248289329351249541590721690864732381317729133767635640726261613155728944026342485988511069769609511967306716305045701112973454624799026744729425286922605169847287771459952002124340091282871908333937315426839953042232935150395801875983478246891086182269643982160762955031101529363504938822191142500431546400830811082182796856261217829324824607194087675594549921368860402493483703272804730271676856449631033830996812265032477003347329984171088716701087987921533946516992053742162160197252256462260998107734546914114025701747853310742847846193014369165894578245641035292573295683797871742305359299184963747584853791805208815100073636505062465304218078676030358410517972916384166607131211682439155334390465671358727324537629344596041558984412056681396405464313431297166967776778490232116412502220299723595326823376138841764921434034003867300833708302759015230460369882100606482557759775257791885409186723327830860097644401976427287139374115609288972233834781346368437009725819576642646826683340161897097181830542793806548104911434704943532666817104994334067144908043350651268629519084884816304986377263044293414166858732202694685301130042198539997796212325127988666272124417128008779100457034786955640270996344930087058499433407243258673763842791558821420387958212203715767625771101535718343770370996378751443682647720367251359614779133998420733855969331954556675895030886514289068451575250708930968162857132697303300215154697915903064304209866534926328967555515778388052135210954246269762571642911922336262258449257563216050550165212022557567169671044019701951376225703317711118403319688395165861764217792879700462528352853833600220780117238025898740473455445014739694894369352976174434270727726536497046402269236208540035957882712284891305438731418100872677058166245394278922436732026452295597227668517860541087406642201282345876773508730960205876769425635871335437115166334672950379765754522496649573533163440441451192665524771039691137076236571626643951638081245712266434627329277381540847041187163434967442358846267277636591407652842545004706846543867166364752010794372414986262716146018026496872852632137702761003999858932247495982698518380563596355195649099262962127568345122210862449761126144821034144247491913691657334104190801066879521312541454667148854485030418845151690202332974148299345291174910059446208261229451453755189742281035641058914363127081959311751167276380979093447543965913555619520946933994053449764943923503323793053499418544542047073986714357699749709885102534026258232190668211099749795193508832997005133019042245187733875458855021401017996842702657115743882406386133308374739177988868140028830353237000221107064451085594177004971445156818297716303676982181810612089000101388567891722145204673982639544472454900161398662318149955216408358382246752664533142371058646758157827219017335549117640258531900160374252772426586756183006710249606090953453326694321961175552100419975059126838306044991677781072952993241457088851981526377188580972772589984270650984038996903560620944277832439961490538824804001844128335733099428457164416700711857589394382772721874274192167248625982435267136533264017078739323098173741453093689333575285242535645591026262877377448978673931862719451386423412111738090396349489164471288201738852511599361762926806925823218220193780658897854717568103234817448879646365596255492604631000601826484318837392799789711447358645859476216800887012596365869701745224178642592400614992384240492893996615381762397522825174954449562882222171484857728098497332698516289772630024960253116390941839556968821189322655034216590544496343724689613450640532506490517228372584453624035138181604609390949684762396364806154723250300276374809882844075354789273343597131796036273533749873816167931042534651208743433992113014365280933584653165873238008161034378931055833070193803075987319690256544382794023794656060081966333267122376535482094540186745176803678977358587318824824454109792286416711205169059847816021434500301410255371766048458447543509492956818172503060163012598983857126363008643190723794860485217070961540458914828482521407007430122629878130588552995999828695815928067959401366172540535752649947575670631896075065463679108538159727197102693610514145462594756017196950100153854392512488184697062191759770887815488118278788738248093374936943243527734573872009289119068940335579137