Math::GMP

cpanm Math::GMP

D:\>cpanm Math::GMP
--> Working on Math::GMP
Fetching http://www.cpan.org/authors/id/S/SH/SHLOMIF/Math-GMP-2.20.tar.gz ... OK
Configuring Math-GMP-2.20 ... OK
Building and testing Math-GMP-2.20 ... OK
Successfully installed Math-GMP-2.20 (upgraded from 2.19)
1 distribution installed

perl mathGMP.pl

D:\sumio\src\Perl>more mathGMP.pl
use Math::GMP;
my $n = Math::GMP->new('2');

$n = $n ** (256*1024);
$n = $n - 1;
print $n

D:\sumio\src\Perl>perl mathGMP.pl
16113257174857604736195721184520050106440238745496695174763712504960718342823532757033064753153854111107217980956972311094371313807551987645270427615679688389330444133499923357612295105472898569728180212454103335089943629049973591907780692062057296552903280552403216694239075203891327355460071271019202307459542499755131303645773654911843755650169520801985361294149607500956837794546801458249510087206015145950849590956971307083110865729968620669481023248557683622154370297881298560466161255588004643805849285632501063457275606556201834157077069866350431709941244149430340376804687891750978965251971591273251528666837509921501820059959278974772955137066499435490409471962069956797070262724882828175396608842375949253862079040514343986517421482079629239951733227576757861140019256666088017481676787816929626050753513514197997219880636635517074110811110090917718919814526080394093014634680319034280918429077805893913799277691975372698510166677624523615113420055448312509654324275129878416504650858425229867602462924196108810701050280869433809450437796353064226137994659354596448860467864613898876433352470791463814942785502343393473062938759017813105282015317357353936794982542364760489912329987944237397830950164269372928014639443070854650822815514356651960897669142478258221975915064919190375531839883496687104268095384564100781761981553851400836112905388609963306865737671824507168252726831850638694385083478775216005992042813943577935491651062098935775915832229588820317867889367035902796321364702417695064373176131935749829552011220191660916305138249322188182375990720523193993581101039054797188073579289719367633920101802417328162711625452959719023888275970325181461602877510137836219269753293290552689428123837471997147144676279554641219338382818600605281421478609887659834378915030776762175009582951300819040556136027426184867045130244663144953753637822529952539573899772230761617078236015566109248692819139423308222674016049972253136330137814775383241846559753843852858175253058610850847829770607304611716124700187691915857017825082140844518926052368333149254496169541987863381443150983371435049841095258420360369083090103295668638334162824653920097285055010378770414275994926509061040584889124837133768897043968307127952138470872615300450165518102683181254005665179713318415328532389713394405555327504617945823008727675119463672887489448804028948671392868411958445081586719122974263349688790928372140143387287713663300809089802349683864622705829708886636287744223635122172790989703032669329884394037058500143828581214950116716860528315076226477760817964144324748729943067269966484491920136287559912723443616218059824705057505221252584287772642059873903818958395542054498311855040504093132827278983759273901952743640374066833443129339180348794901720439121062595011815290536015800793598971588035725982691325656250421658993992750217769570407199156371342499713209335403268331926928188925916061040172477977503083591547036451896298938818110969658258921342134546078979813635214571553241776199842879454073915459154070443752256871790251807688080294183234647980216888629693731884483776952715044743111932510417226055752254983593141687746322886248817949397875616943177089463482273724996741914742471298389193274629178895751123671079093083823859862474218781527382088357620133485554026665741444384924962487491098346254831515003190218011693146521567017873913667600010316023793869684989408495246498043176139308009095514244188928518617472341476450718550585757427314736099010854358912574655409776135568224967205992618968276136929876717108452204609387075353849590890760173812701782860785041170295447608868245841325130970084833035387972625018732615336881865889102346618250302128107123931292918068737118344338313545322644116076475684035459816775808681366204773537518457467006185593938507894394275319133020246665548824289815220177922934028682011073709243695540220528797188216035063505220992550596941134052174060707304493901052826266164853364626816451469256847109850298847543378453288094059009149293012009178558874974148460461498624809990016284948394870890941344591524747761613600260225600426568174570070045347056341629382557166933434677222614214042092138757715890532132676913787639898243620223799361106862973768594284274043455832279049845160465092789220767646714112126942588742429095504819910231371604370996080060100553100946043950173081477095804496368756478770825917893792367184587264849049607501408296584301947812898746674446463661390110084018682359861055784278997703386598118473386824411884425900743923891632847704500432374995763635114514642211793321534245359832625617218907285949846958338171959464305088922422874915346835163452079196022399867597797151875270498642358977767549548630912843719329065442626372490328088854902525445385704617185212944852828890344516939681736013428678388093318717099393029176054922082896708075278499249327762753380790290331022167959046721733707106603767071755800178878035216340716251277802299688464456855269524478174569713858648568287605824625725224181933891729771334259789489866255517134580570061673257153156886259038274884109335731435506427977689573524134432895773467575553414576194129483412582388516519520272077075593453453309712391026933218291003752842366964826392346249973686284107809735832796709401614378658616463280761013417942978636282203203768333403742037291804901258207555712830451794416027875524272256905586115783507382582329090294154456685241393226382863194328140271376402662152619926621396091859827640193154615302600514682313044672676692772785579861546932337862203629144500485144214220920620504964274906403793380400759683806624256781626139736423909814831026013256846856732586450576393224614214184139324906423745800829875492653101863235542609771582492888109814529526633626102763297644073625487204227577620158078985084218756865575287350465291900491632578645150534642450631134519553694744183118306801392108677266438369422557597062553304608113117614574553892362663424648068025355016607192728787088941248719091144590764576296086737213349155511388871075453626679342507908498924421125135480705061389573563521574374588408724970911316664858091288764884218544916059184427168410036945535917998929621927004264578666500199086043729403586345112128718657515248368913071819431167132071087863595825163699832829880486628736325970480429825203771271646270144067855164136771945088863705208212338393890892339089043039622313258084119434970801031873990546488861948620686361636593121938334101829346708396663536095623553387705273038258582009950145521716721385433756599974426047141252426463813477065837402142547417568394251282485080521381636783698643044180238590302051740235382131516867839209321760950551092781040664950530906393659250310390577375443140554770765626200352591328118731507419233418008195259251202450519516278233172857112414456035849540457132279290528779704622758659983804569324757625808281249658694396781554316393777828373578209339939865847464428662506942945448243995933556838514100572270345840987535866122955269932208146609982766788167050411745972787651653016830080882640689084736114935616204292161454447315719447396478960552299510032150563495711998967213924924261204026578607397951827921171653388147547784366789196624634279261586879091209254605209668016874142841942044300834991040592909973350993633342914690979764928561803595111360263398245785164180812243072377098789529799839095692375445307278510309423391121075487096507316989382380761738773733743090629079470189911572246134970794415725705486860803608401970618647845484848405095069817751467957166796088955017941564110523693010872203757767024879518970026039482286777736274679858798696107948697965132605360449712694500763776264736131595747176257264378385555977015978818794653743451939227551940799300001934352848833919345758688837936939611845519565591621589084295505702543557086645415628615548218821988212723318533933604986615890456772824146420122586057681135080279024654828927716024728152813567431485547958876602767207539002416214122639446318806319412056639265073362903063172479681260716477067202620345532212559767329554760893005200949248589965677383129354497347728742647165682572570830498173141872137976455293717860729652965012971044610125868454358096653555176931556520771773929908690059517059679987457436987262273750125465393042661670626373191795950905579659840066947170524728018719322437663864972649660652137470599555666725142812915016465847178614075083593932991376427399472684942137512658720737576268521632975069656124582815035489601079449210318670149965079822501528403351161013574511977014405691468766512419504137272146292370380373892514366935480048430496357163782041581264343926465653205116056894985701820364874697437073617253179973102868355707947323913830472063964568410687731010929002697131294207196369741812326452371052844029770704542504800744176471756458557387995227003004056068123350592349849587206726996688593251553075952578822619000716568816542363735887809870302621493375113294539382060254211753861190579294066643035755863693886173098320164296643861308375363938474140779306576386862513978017021672012349400669793627412856034471490094553955169805529451669174298412950150850254478017871621041042877793040926570905903164946327555564732964165632731458678836786879470211438595161203901036913107683861647374778139311469037814816324300061989127809519904585473356398821301193866485955287121496624107719970626795200120612559172719663877136294462161209594384286352697882825627400553624338731938607743807283836524648520871728361188100583654791521748175350234812324308781244644236743805389248502737707917442558321040993437679132877756762600166714592838947363886750701164331035496359131715165127547014177732469198380246299456330112601395030069175646690896410971416061054996413437172166657367048279714069164791297818538002601798312594280154770925053182262415422985703712465529129799871565112736700493670503669629821964125203833106740860770221699714111237565303800775313708475720318625744021711808350507918559225700066888577325078229777176428642727359192085627266868386014920582364239766577915812515837243944733041783991166353117328810061472981278928493910380360774950642679147041223721830715711114326628526241728691111734569574696245111443633205635880837641007758654042286705647453479999072309460597885203327685021648811551182074145033328233201616359885504451416192056916527319522027737938591828249533719115542830306058565485211866949730442037319065066071188409576398902742104181290340140616670025082738059212514316121681002615690045127548530828647823304591628098751184492725043199694814145677783128539654189327014333783344975807331793174911313476525515914413508275735185947084418163235857253639989714502299800067382389222874573666120004840281905834903812928827507388499434728083133585286344082739738277228630707692330125653826106743658263598367244205547244387614444022112201170132642471027877617528525762191306557861756797917007678629902625642613170745673376693840513847761678572020301677291983585349974686542644198832714093326084038219973754116482309069016131785074659874280289235059026942725935819706701264935694618990246100418847293138592147165981983424047719116492694892235758328431720451252036781309472254377089996160754641336772142283555310193420129993736373981798185394494154194139886942349242884626627695145637944651910943603426272643785626820287153824743828680675054672201523835454936459420842216710840149966230539754111445212749302013658874747849766102631275922326141257253236652323420478625229355132520998054618429633390639603645105517752154225544172732952958578411368480162071005931282394982840379690668301921845417282761681137892533293546818211897208982306403321131455163634527922634152763973788064494818757730826876361111776378220459670837674335147607697923788944553603008514400693141822208370222302934755965208223389626362892852356434100402946973137876120906766964705251209501129944948274772756921857524766203657641947430633360270472652172204782577924887475034606642791115695067774174405268772117626165844023601108210166117197535320930606130805193178048851920401760657496337034998270148512837588042928028622232452754359801549386555345474344625618614094089096644783763800716806373447645421500142419998544123558509893246899097116566708377658077107507327035081904307991991804550468411665752604222917418632477529295669433166643468995557602151108168766247593811449013793031185360045458384923153541010492084351735063472929842302958211409368168642445907157133838642642050106728111930620127281883253759699201702830749729908587790210094767508520773344999474531150558975569804372813443859628142380952778669798006518295889883537870330971806443619576437084653576372046893840431410810467495063074899177549549765478392280872067262246060586960433199487292947701140059142402567666028387027031621158753180603384271166423681775122558262777830937328618753236095429230853812978176943468141241867925928254686687934543986925205764645522504900928622639777377394448744246991363914993688426260612772294511379613492269800764229636361194516354685142214078555837385692055399550422747160388448783164023242944736877692198867883877669349766312031505125342618158587210294291436922785517171028415724984971992733256660037585894691423027160168174776733210546671445905994571491511245722087019385561304668966565541797027372221594683858311680472505528784156180135135295163148128960053379321047428127200942639207331483131676808339277292350979841644863865262431367620729236393766911198365504690219264398643762805037959161005322767126589546436393494528280998155568520940615684411170898745949146339642462665245225875915483337523239846667738061865684234325478942262312888744735900989685455179980222685827919034227143955530808587837496136249094143183636735676511026650730664478561686206976693106435935328909596273665055251535911353011753557396394500483383650726181911969944305122311277206823917016603494044358500694045656404123315985364233665313930406742090854323516907820090276739560961781799613769742324750124257366617554771514704068720774975981354092705291779785573461627141290804137112211162778000875495473271506505948553224936749021250254200745669159231422325722591263257285960217792315983245785388316685918678332276256179389412608582512143643525027920388751702540281806469505098821104548696487939879098120753148180351040504232405186865870370945692747824515295495985348147056139382763254511400707577720875010160843109225374666599234135016877288629586849700550686964793318551903174420820697937866159134119533305676160673753057646067527696151320677761828558616835796317170118374144153627484133391835151755708064987669218505826732979913542865821890443424015012080550160589522217652796485347544336138700304614075911139873257197441021033462976008958444873245411245589106803355019013832898237929930955627502445932328063984227125923131561847625308482419414394443180601555767609711311087559198853606290167019685786823450056251079222395625169006309086118708033677325320203968586919924589922396898377885207461888541962337333694782816053864489692980813353048191466455298284215791571374747092387552370322210166900202993218652112193418570555180862819103676436529727333227276997148004931559155948050806990503660123335204883403362684526022568624337406217240436346330596308266093209060476400900501736461866833734721684113743098974014126545713298784200033212311046363906402437682722468862706147524520180612617517346471922273350966161722761120740476082741542044983423078444274728318013662953684403965367951809405919848230074632428438325015596151549239910119214080283697321324049390268426265222078512272478813187092360177680944815011008988016504613066344857982241662543766424957465151032435033534463426010594770563961281488267268706418995653918080411295807051697482712993395741124043554924346788670478671492757704038405330601520669980771391901776576185882543330315948219174420947487068531614185091707373599505760732217627065777133041579974407907125837267208533840797090136198805538070774030210878094190371249371981055588377353074995281634320002647054578003162225500029811960672186465007672830325748726949784333913664200225697626474535621483841413515083504956184266271390877306176727347330187484973333510980344690047872625386793499544875810821414768769738319399150839803968318470766231632066769327531130762627074644649130204786526005866060615281804824177101685018240184206997772524405532698271623424841611142284230900889020763447071101301954756708647611568216578737176223564135806223063683265381070325052445480230145258070042568105305065663020094945608606900973587424360221749554142756969249273715864071681578590887604607999042808968297707048268999904082324268495094010801466557042728178029022640042656810991230993139513842129055175128969653358917210438390434139581500910536274792698594317132875843870957016735530216907362394319532641556843104482934284778876656959548567764456783001879599562908635415898858311456240476773620585555344590807987152068127668034689956648669994206542664048016307836214901135295834613801153247643658100630582271741201570270808437105436504503782537814629870284465026158841615547423364048845500201014957454037204462955674604050862312104524203011680544045023525994623675686459359580261888128947840824378535198059322177257652535615624320463088199043094202026934409205713886851708201930462163612755000123066997643804232730216335291210029549280678608166384319463515639076481804131675284791777199019909696371867051271795266010914817358426119890461015898635574787165094043006162336604870524471371030174464620625751915194411249905503358242066953762631713700993178551080186525919789366321304271278658121485437460836319374638161490369536587323427553071630452891109544915285201702418157370604574958286027703724696369341853223943354718492097642593325444780743868682970310024765609342494739337628395429116030436220089921399103503716732260334940757373972466026379170046718770502699655978592143388941803817875573206584577577603892391126288150975341062435633328037381001802715313087203002468520135941520006398941857294348070151548835655640238493071426585614661812047850027350324883599555435147330551128542723022115461936064387066014087443730152420872248360256662077740235321589378801234643609372780257755415288985401052406609444416005122225069117331581393952818400980803060769874033536024289125951007264097707218662139987799114107904456207965031325490656774371474437202342939183047411473204076423028352099634365966445782122377780452520863519485660273948679885652203147136004430583530694582657742915805516220169326452255513822070023244436143824921724913303547015418964621126706036448073154025401300997767860171083779303498348861662171771299770713060016422703281719390757161516092714122653517584650372813692153497455758662296062679485058414842327320972418377941910931615029993490538826447984237212288016849023779243483629587494002312740123191551083737294496001489710037223907390326017200678242963390317536036900487922851084841071020445052673521569041849682094721554711885952823695333367457973451374071507965491842933431248116892356100677869900544469506155489044772623906721391011334771041849306813657556859289338043411410296431800234178209798153476408805616712392786919272431114217659988166354945717434473388793031586970236229449561923828149750160029515851499861560916475158670776410533410181557030008096663858289664193808670816065113813423016410165414766617058586516916789912325953004524732091073687411082706909950614219618351130273043299160671063108199868361774557412371658406616928625622725012299903278156664855803025238357295957200884782636823136854622027534983585287738898023386839841138896619944868698001451104719025046111282838758216645148438720171851110428013877174809618445155736491520745729904720523246556082724800657398928746839986438734915688453853039675042133490295145835386108884299321330650391655985424533914299037741683253428192908870925509652667658720126312233896557590053248026040311443618758685047355720712880590961516101607474539010722315420569807051586702456270515362309735232500200398034728604816704978661170296603654583138773523007460054065887516544434413978946601727159875210083810599676843227835932997285740075397993950267721847892905773590352149708586854711084070957541870896790448349675571527983600679021827411806196431508606605969536436343226414585771659800318665646821206734303194351407823299097340039654693057669905441536067495132192561427322039826304425550632355235766422944903543748768406311183323429859160263077281059067063248484091782775322273967164738287644688805953240905112974691226747087985799681406450161694403055589456505489259726361778091269407893861879115080331745633199046493657013524098669031832553860726864006228326588225290480484363676746575187810597009227047178615664399401875183734811954887981036159493353024161758214677966253334568190436415308366399849861034093873192270315844217201697813565209227337091759421552741838380721225606983843897755873943319444831582473784736220178233524448000663248800112782060451282188812640156154534166043185637728275224494656800145269147487405326240002454665000695350583164896744668898174403818052498491766451252091944255872679811481985535039482455050455114737962741723328374895244156421090398805091089776965119798256551260850589125447691956216152918842947655600441563954414760451586493780560358926857593880024662215889771865252165836560273970906476521950202528404602062371283000022934716165041128187914152610524896941707407221753994073228711011145256526889738814957168837416585906704837778090333197266280914917945945418229627397793786806002529254662841997250796048088450047647248782961895413432451577808479412730119918960143752820968994109839574774089984333382990160173005735275712968900714241583007704100702696114918567285391258373735580858083185400275043534067425514617729293065225083065016733022499743958009250880484226772853839405891976634374451593155524122914576700631711226175307934685061830339933940197781852436555195159952457463688337113591009088624615674787480267757603756882108927501376052642298370655244132134911337010635291718402515130463057503796408035756626618758229190034319667523278624054122493005440901330596622753645084644435916157179929071940972394533211845731003027323788864924307030660560273990663454776490353239452862217976344138514017237639777544435530340448465845330889676210760847933105703466837802583640868648626653518478370621469617789239366231059973418609304773802723978620069251384058928856015008671960380623315276332139257723382777916908967716057739042180059105533590805921459852181484932716837281748023189616105120850957219928671171047656045718333753333201081263487594704015652256666517609131276951943326706814998312986442880105780040222898275053679867299529606852364008146563759436214715122703952853062118924288988578673629523855435447039521741601387312606740279431319187009388258503892695013482280709270016346298923463764536962469408008329522396337912597075507853288017978606385728031731376637902345914248172233563526143889766575011501195896803301206934608655199652201051725601854881870016223767962783448614069323186962054616839865634102258722003082123534608119116978858510974144530914880517413209529977234247126418955499335670889797843516811173269701124266478072289144158172170058027436109228769666460024676518776942773638176257307346480441232216734116646862579436484792517463431685313507664324678092937414866101763842977508792047135407893725728770395624491987041705014209767472443715360218851354843938158665704027052484247158563405027573197855266010063522766245080868652696701033448085444727360587333217001015659602666871277068263875317549527758833818799437637194264268394294152028110178420332313740496374360793709716016025741446465222550498799198857458840421759849924646878725715009057083172419529990585268317917087338913277667223972661829336659946045031402992138450343238200083130633535502440052517958462675785379083211078960116239980319816558332556653640586541156610434903731793085155409104037836577371366643295531460320799726425627431413593554865877739847314988733197652277539707821953382657715634982270009019772973735652986835756612579095390433959508208464608403883513643367891308048407279059342412470690352746052804908198666619124905026626319823012548652133983376231411923140170876953043236297201274258025177427713744042675336219594821253250026610516838138758362337965377356843447590506268539901309408265380139979067746112527830734778056287470928537011125974065558816539178486412879081281222825773986147363150406559308622984068941751289876731549276217748046673546519980971212975819169420603754588373729989869776284783413505832742993334238580227141137574232396158336021212115635511232982413636078832197634529841968004383062171378533140721762021871096776116621898371554621322797737446997788605781451604598548724421764773857754599877311934510777240314723679522899957904387294804556219674841814846736380027905208188812013352249461619658053965880002012474740979288303265403133118708869080601517534459014292583491460903732740245714952518259444880880818851318235708285881799008716962687420026764312233140315452307628668248906073259243590974746867509063087656977613308082374548157016477776958582035446252836625359602247626889565913650781861401644522434466173284122311185023659568773339287105121482423021663597503239308989176568573904795888044635584325923678062519144755387462619489775957317974195520913033294091034350975673707620042205668975891921595816359950324644444581990161404780658892021549388832922106671632312197769637117429011132294851387723034376126907003843483646405998759538814052771466109729290657890275958776510633926455391818545131485492568531609949064791153985569842510448419351858051835125793688915203476242990681248673955896407167303955578392568786032616002407877588048711182183976026437504427746637662154033677569758091472328769042694220235681040477953950780207569724373104757230054952903127595433356180167988606726619460206922988502249405894222673342388306613098068804407343475831095303847205026390718476648561502801809297514393759346232143636534735151570427674949999408568792174522063283498623426197687985007338395089431714656156537042324932284618713440762708146569505542089566691646795549955942443965412195366260640765470463871746592338124169819121836392516582760089406364245822692935413677999189114050808508660078607838433788078035136979874346288501165533200267581565753564571576288365988708218183958333920668908740128382368454046726771824777517988623209605047285482962079847969483702776467096565438563647223490440649103288541673534346816535851354884831438539782862218809387337282430845353605022731569094938028229982123328582739462059037197660583120853858916012044881188595082236836147345560860288864977588966362403291015086171869155861949454628475344897593375423399657314856625652822735935026684788257703744431630037173209641928488322494726093996423373830544655277722884659356482525328646222066150881155665422619502958765262888120310375211613738970168308106868070201017352551665735043443610938605426902041410944403396602792591980181988675592160649987159949298138864644373475895736188369785621768061787916321908685230415943318360486991964484571480648913183219982821376086288833654283541529337173401961031487676949314448037642152051634193142900499024736312203614499423450223236752951075279932749410708038651938262017436268605551863691567016009440850649855698665556210575604663969880416797062717451726379280792416012425338297754311371869404126278929569165110116030788352539098738719623400802704990472695130598275763113885343971559709986758620040736055548866474046640816411952238404626496881447203273108623399094616035945119772337024355276436738693456888293165355826434926391271333729504044063445831448669036595540877908661132169676560299095476213215388737285738004972743688161677762349660411694287783856203941127059859312944850963364559361319469658052465582307435296549645813927762573630459036269077365748291824735094157064696066417157357687452756922422734618089537080483812020397880192888112739026738849852858927798810801173023649735126213215656863460596939102663432774567603731861529885289108985811134006723934675188624941786361815183784197684787009338249356171263739486981293216945696329972072143487114568702612488994452421322618785297950072405440191628778621761740455752432820192828723351439266880321392827729219342631011185615261908061235417092587695612425659629846624885146489663681517105394965523331030899408755061844651325180185154415355391058573671769603913366320966890717389936815997897891545530304828295132305363372828969357225783226685887270407465087032049336754441959752812086809279387739494677550499684763743269211201297872487477996121679168362371620047038998901780165524878700627775042977873789692447724149050374155120173035106881707523076203002299094957386603771469279512581695197476298287765043653450666623693268494765381940248336042797849155215927313578595859576229239549320528314495148277476557175508609059643130401797542196284968006361790409340734622800399759879808423268016226579741492649201559392842574755186542512660509177093789828541462005640222676558162948188709711872363603590001323278775655506961432310455985831926926161591654290867873686815250096601492847655802591440963339478017971156779042181997252271499320073210311769002562064035772958277566933192880926534275793171545734587055781576305143499648224402862501463233720739689004249011234741345403248171278102987789292540127007948647485858916625445299030715390189123191261854084073796009130586338070718068926955566033142472702507558624471361973654606927668165914780609749546167941341127080027658038886484545337200051540889065702764152362831234672751403716193538457512697070537301094445531979465701812190845825260146008237049458489019298079361626821557609625971976076456048763664229379402490111384453698080760559969998025364317619120903789556968006695211979237801443277816161870440177924236444506800394646699400032765399602751263018097599539443635394805185560013784503078004923858771074419280471801441164107307680405305043815633003437772322147886808773380069528050388798331285988651871763171927239902716799240581972257606807021547480133987817869861555401564376448432643374426830266532162759178167772704523004064442183592473355597913704317674684669166811344099154121249191783821932534110460569622673646939198182584460312380365855875249025167261890418507214673859199578857601210879250090503373475767074759127881029789555723990463670460830874180567393561079385355022940392600093120117575308160619399203025833248535585072637266792372564314595865996867915218927399721260533577078598445480682642448232529442658479791611110749667840570619840361603542460525128148359953045007952160663982580928747569674210151407749707912000147369434231594392099137345584025158026682891889386790762156538563945965678224934282497873798232603310545345600568899154417204081512224601146974945363474969502147623744166763353723437192642367340754629517465007382776482630057299130645835145359744168679110926189332917764869997549950702200119851569275361670303004870709801455058646752380730319824501961709057858208776676075920343284725825975459865094592442261759956067305329136799401375202438005556384222770257781221892006356331034697264382723071442572859702771747947123897262563463400118642092977260226800080125548801659233697128380536274880650286568935848152158363273468492345583610895254102221223913585813398097546588251514748212799285558170492401930024376999106167834448471893919415314638072855407892802697378859727076035214218314222359868836009010336867574666811528698196353683505618114897782586077112995682865073790515778942146602255142038486158192145656558116548768738658828177036634985629485867962418160411632255098526160400151956994694380086620365155803503021311520766402394013192722110718344588748306445977841813737792590050821609664191914661850253143648599819021733915985456138919433579597142748915425651772060468106657964238131856660986578439668355822813994345080227453658109104125581716218623345696804515629408477829791677717698610922738414386444311384119473908956508912064971476574526231628094998962690103884201649816495206161712055278940565704537264352800318345290041266171239768586071858227336937478586709470235168044422445603881353365753039629114917667176403032147108196885302800431529355968903007916746777321515025539695011225409506764671762835029837263893300157157333645553305238043634294485062503736735065995610398324058260791586605631299384582255720698183803251487120172461157348913330780378013252197377741653188380389943126879431066478528423159421665623028119477979077229955950946492586001459608516384505872266225612436289353841525845750263957105653137368265215097262988678027008801196270932267601761411006782162880982394894925055901427908573509194919541969395746737919766729089131639758092739919121314700980071802325359366163102200000272514413074525256877463800707830899507132296735232932426888755249857369258117795452438558511747719280093755921463732453461927845542823841885349194464214733027560215202389902651636739108367277613979791230639298590177071959745687251655270442323883810421329898174739926647462003082203957601420159212066277823404662773294144114657310089154215044884990087869185092142223850327774215635437418691830396166032977803192329225925876736304144029379203141939085202045519345591710729062885681507750119337444695916763040559613354016125836390129353287168715823255241535831215474783634061626022023950862411896848961833151593511444042184604354526917242811184934449761229533699096084448562333152495711884885973147029650996476623670827829319820803551559006280068813592993493680035437107702693544881508819730138894359666058987389493762511987292635875832498507768517138267468038487907169274233670952303100107204263410157800238207487350024298008748223304519969287151952624844621951684553357324979317860416175535818087686697316633750960237572138162387545687218691270287003842213349228813338862217345678985889870305172505932337802840561169601331878149715341622945195654387920807172042900775317677101919056106716783909574362145577191839023308952350574681913934728311927661917987713960687358680291484972281651198207659633987400754262830682668954435511455121727388019711727694048164247234122871545337674599205008048387227962747919786800719369538436285587662801217999760196555619272914490573910772761039585805866051478943136795024861067124316660052669155679117322987411984718926517816922176359811026741217430701022209405616337887755952644580226801972844111843543548504677056097373822234217214898859048537463160664405503973633797288384959241004580321766996681294299624662294270204987383789659086701847429832026767230048135590659175705348784757911930240558200229618495501402029339575903572758237507202546673704063207584833784803077201463704617955744596747132281163642735668198503639763459724772119553483895980562914816439356362959386228509691565297857787448008561687070331844707862506761344548290920600524522638471871683535647841286422235515692813343971890620905505261707674457790210127681215380234402191204155554614811085116922545837037385095033017992884253838015465339253268829976338935409543985718333270000888178749984982852672190680599651708960943790367467213760104019262197448592503641718895932487669135080288241957741881903553072178800320613863517571360520316224539256722127794531019951763881657930024865079712675770701383112095001918557385638774629771408431603264806680575619001853546569525571062230140159499745782694677141570187045275785077103770692064202599949527258525665594371179435504521935002034448674443948126749421960720434647116500204871990907321600238879901308357451626639454117133900049254046349060603252843130957471207171273557005104647246287206799335738425325309939970069290245444896845140504830337548997991664915468815751732733748587803164696447112476233845245764114983422483991682215726945729703862241915339957217115563530958820401034016326116971972696048808581541743861456127624589906997346760366094766902049973258807483070722571539040503275191424974522995868709944629298052514294061380477692552536825950444353753794388979003107516149046021533307351097727704482286501035988770951186121919366081418706982127097453682312272202393109238731395649062890670144847849051067861435801958410934699694534737200770467503963981568061271915024712172778894311060354811492339863524911611769346482128769059095661096339704546032450198336896156516684286178780923092400190904725229219634773503751436642973703772973706126053236404713797375017807223992548659549990832510530875292173097152666731536721347138096605575560163195020749322780936505574390949344506393666725066324268047726260993530332565380345689210667976918203284605219524076560268261667922609341588312348753324469620221291840493754464776609537905498124052931749528154865019973713935195108424214354476330948530385185889359477821191767117079624146577044446108741805443251245276292519698982880387726753657514408300532589916250583644213917483095627434929285443706158652953956963045084564742371463975517463788798389022272820031669775093771039248006980147125961374266265567029191922463125548586946146737596380532231994671632839957813159006266654106092851204656700406327435535605099144657132816916783241857417125459142053754027702519159966500878221656543810127474758157519897845269164632764259748411881256469322268852791554839998920121745805775436188136868162488357228897962196967373903876946010153890851106123060357168276533332029296583153179511687892012639566044546886135084021723033912387343029586707865032061634126963381060209001391135573100082066232122305559019854262000346057530020907053205493125314224720681493499427484565839252677401469979240258999379222716286115993598958371981150461365827236255467330356035412918452471562119957989135636514041163383733274411056403058814996219632263685944320693897230455825840502435826665055057813711287208051599256674561876638082178596585913164749487905320168768921599080819779482459876913816737071117186645768598250315766366313046075989693932206832946859104425826492403668099968523570152747234459353533063967646254944748730445159563303723988867041749370168230285150413841047058917161531356446751027454169090985707464252249267138605130250475544647871602306024951603897855380278332579583991912595437523742581460415363924240006244532936838163852927106140905860773078462428380028991951957312411082228584131993038676994733707765690760543212988792899274548857395062190813058631178647348515268393935704298068002101226931093316388729908843100173280001842519815301249107407296506147874152254816123053250872967416805629953194331710904277351350572440832584586652655380493202734183799553576602382985038408856215516583361614787488061574445701500788376868905522451835596730161970580312314510825885184528859100983160758389139916428035681723568665819046588232253953648310183926389241321427539603337522236206982481837231825079551720155142012096372390378529335435963262717094079500192749505742564665704113757438481659987288903197462085131530022276972382561010640062500458681995623937998538150642745981592453854426762250370557819327627103126605944111198642296935623120442045332172214028282416626649684486123713903692057605856740527804342653586677114253931425814505438794883846728994584201263458149032148101752533446610832563503011066461300221332769162685304465234634647730470145171653447215376691388791986616628429166572346461781720635028044672440513337428949074052204756193915709747578709056368614790044629013529911646796485010051955746524070186997212587359085975232793463666254211333132962554088429930686869913510621313247707948361880059027765582418911247402157580466303678515179938255395112865718569477868794159566712289089590672040385513549930663362283899132302666335083039761567001085147884115449449209592081776993967186413721178719604679671410896390827143014340534781822537840557366423118836589695339011956069599114399248671706946173215901291402082217249058481393149180850001695762849737640405191453021641178581735518463134755263680874060194929247342765852007433618568515422077535971058655431912685128718726266708031977556238893266046168015350273559635428925393880123486455724762099615363582185886504358563754054523384162297213966550453957415900964069337712235484320463105899303396219238002385327913444747436175312019938235691920235872405835652612989186969627327847392552710049457799923484043606176477217039145216149691534241624074377916740088041038994971078287468213179031338919123512131288069387945995937838409862529045742402399666772625910250152039684812577241582493982224237359506638352401364246479057710331976659975343134761046220525981107343060432974228647211279574038798747011559085863842870891936004946918991292389567573310455822006799748528405843610248651522870427262501707886244325625347561638201284400671795683538825198931606761426398928665926447401643342672122800721360996836198003169008636690279309065756658668702169070679822708915041233949124477147372040953403088475891237919916256197587641307507519468506688159237263839382134782588304846527775724433043653745856715252996284057386273568276147178672162628443434032383838463301373402816434806954359179155589932623794654326396074257539914789017247021466351958629003708577499551491804349629756524143190860737377620885715933762899814906407514835619445559994569893971511359133574530824855869724760307136573379017511362058720612056022000204507230052779044361624973260071504261016233944884290857486724921551658178815230490384824663837943991239139467820687154685578467368204010988778022841121526354941839247012819773217058573582801506358636123338629207375718768278273806045050869811005234481252729295649725618306963935065993235305388582389503576079089983112733132250430793475051157115017292521436689993220520881824783656938696858341723743726298085726930703812688620125494883073722654502945991862766651917880005315659670590695523676858235597726166307190029856953078356933148516302271041969125576456863658908248173612720894653472074192580775470888030917372422015442846829110905440386233178080143443799897537625085221053713334560984417745731930368579661785693531892708546181657001311921450313341529444392017221528860696592260632590979809353309870928080069505302055858695262666487217096137100671493181834671589177420642531234204009714174640931039129666175308492307316176557830592797155518896517590303408929673067747011026047132234679280646478272739419924963732822676891776959915071138967851412528239808392043203471374185013703935850775256796384432568429188702758435447130979360882290342298772254793928322894132620793740540716387131173261486578188219772109763445626361160878747405249873114743769988904687074092210449066703180940848156401703453401177717698754388382129341660449617934634706985007016661558218532120190291565284039520140134288963718230454196274306111970524102654580004605822299369603851957077921165417342759372699686089205888774732349894550064556463362462708487795741043210675330136469301509820571208337619369824048205747532487237780868387424120351377131636999407847242918098463324069882501562498942688380764685616480179312098222767578553495612397464313114063810378117541216125723617568929947972789595933724643270879842337581270272752670073059837241773030410006243989075683417654542746873324192820227793790761157483854410602778612779681404247266755174274322298105020796113643818299547265770406137004374721379198835263610195944145332172436339775352612462944623853498661607475464672546856711436807319427498270678217278152218888931455155071175858332307476379415733912122317739369813403211487906788463125371346644870222866646959907031291609372320354086226775529076780450448636303033616185733252638683393587229904005780732936675333085045501806679961195860589975745560507473279119629726886708609381304965276123381054238794311547182607760149278982390110600429988492039125015312885980683066195748361653945966532445778806358730871322629656024533199628313157197997684466319316741457914276897520486199495520643579106235798378921202558746850497277996964535514446034982179043095136685599360539282267308534336275351981368311591965318223587400140845829901671240954413780319904565107240143555388408463012801588172340481985673722204371357650242870082794659739029388792082300950238519098495212570155165239867470189909113718691860524432896548998567458928897978651533251515494444517953593328065524548994385447678923927981612032495805525688065556768984011986579777787790608084116787055780449812367582973543799505983903053748660555862987577131665651847817885530701363255343301543692552704443669681659181290553039394780984796279307805159405367781254724983406751038719066211290735600915924838623666444636322042978055573634645494869670237985186313637573106176323913315980693374486115328697547259818297806639329207176267148703238588559569020488483984299015651083527147655051202466430549105913942767726655893699658476689326167694177152379571544854749101806304838169179259217995627774518113404449739183495647951266088160481203738399072340689673293049414378265842639924094677844441781225875793849215103708975724813971846876139483276675698026104149766179881572200688013081611801005802615053565900295602079773973835927994398119059827714517092576239396499509684627211508850404592585188479606106926222459195988607863986961716180606270666451652695611765053076881418583881455989013879645746623504924159162797704180300210563496189442733911744352586551504321938717866407028700139242721425982555186456738375236034781488220687561840275378623738710354954386665899726768309859811525416344180702049233144402840906617089529411297064585361796989231049123424938755060999696975985515675159659442503694194995313165308680670671756951234475454305168080834793697693165913070280292639105387318288458773681380414830521693384475423754495681675815567882481573279416814119975855238958365392003350329301815289493890919197172008527278505423685129904600178036867805721983843555419142622527276668198739522612450812734021416572988453946625487323750465043879546439177821936468673216119047807552683923769153961379672946231041335441140122315712448121032399001776913511221502376643137059555341282512255302681198336570184545438872323751675754921805078240635475012203767172496882439513247663393302157214694933519253196609901946662608272734539353968936933403095091666554841385624555493139959971008819316677638341715690163673712887764385879589970763603888629080832475766570712580388760158626624629943646550637655873994929925598244797845350169483791545764893476328605458001136172290880756681220393832413575909211337386686201229433494377372788420275297127749406431284970696469792021977337523333910948062407426686089848058540756241818481445833597455397689893272633737406773745406874142823143889312372436458174651101060677198604108441896561831802986252408193273976638669465820339101701834118326400342126946135595515304331408850973160648940035008520892707195372421048071601099686357581429165048843101295516400641071583101195383882368011539853983271072569092643793195898607670965074448649049809417814833453955992940589274789533516277011076026869648457362628426908071588247985244174098166079431306230237319104107967951168331148755053804992116646451258520724232950778814535136683353824135745629635709138068042782295318122908402230705723741104710240705764284103215525758155483648029307444251387257134918029005615728026491268821017061113605728422275100623513213651906864073171676426371797431835954524605033748812516462701209172438179072704974436051361274225275771843152970224204368156078174165217807890394084748581074126131458212041248197901726023316960675820129904924604174656258641892793341842164735295566263211600699139050920771261383577588371428183925479822529058641168397382878035777351780312786885109003850787092176060285728742125432057845479606515156478051468822339852949643479075172310691040442714656743885471462142906480109869031192981576679460246310010262844036359285011053241199043322191375573548431730159745710350007197796142292461940070594571719001342886963741977837222196262822034738632330875177006446720331774902363858828945780953082049933863666511841644637044761181992365822428015637869083076032752089973271552979051503889095282126255830559697654446479394031629428853066241642864923069160882460324080053333947331757702929758522550903972474250614222477250899565911633438596807227436276339415629242482224259116569799104952521788175417134561624334063808818121525965737030491233785379464393888073679759122737961485257588784173286173918564366871472489728740023585659410401906339257680928624791796154338186433077083998927732403809685098979421149743341729040424731373155543095155200320388025028799011424045409138110801204440488872634516790077721029045133005455228806149855545926974180666285457130942348234641047934555776255887476957596659739722577806061665557190618998414132432757629301353096312291901273849473601482736467433729076571828399544830855900020618890291035531415572864457217393949463575378833427928191451381915929313364261624561088778574315325893328013393873078190223500665932516952844790798798337342286027458799883316157699080328558984652665576200490426301489389218335244987791204822933478173122724209341253991256396963779858207140454510660344153357892978749280164703166556384662602432800529586980439364314635086509366433853708930174778376447277507019818055358381315649867000546194532872414481939283939249054610259828178407079245832965980654691215679060083537644284916906588225060460963882395734393445636931980620165776119896672702429199134095467710833346229257728414618789143249730428897659504659820752847129566264529340495163716895226412439620396528751208379991661100308482909182985765025961528322833435564675863461434064006684909246335229220960197875877874423955697653658399014908158937028592249659954801700680842755228763922295182056772139856170403867160525732641990061303872081444488219241642733028634431932983768697488869399186635045507690311019378655215811533898108592299256817078329087005754540628623211232967412082795161552655487294257045053333061658565513482181149260470505229098943746448039951330219832820562582463536879928316931764839902628224781712845835969574363167375822407505864712364765012381459441527452029284145439120953961966995815879070750470233418257819930075695729403737255085204370561633009520765003956471588990477697233404253968330375412316261355256388688508082385745702537953273972070992506492848067330938989777725700336125455648413737474113668554865215940413528299577877594496689645536796172088692291279321372748873992702608127899853613313744480536713351645769645782122867277275707606833388412158554643584839639802565448635157061193774320330623934694370651616571452821618979375312730027270169830087117300380253803030121179339868905820689163514874230738838368075928354932849791071617862435874355742044866133742066738849435084355870277201755256078587765142099802075171396691186947224192079303883072365675633608506955414119653252950247821092055375314998137550519402422824928530914428093127117434601100896551782834085183567184056608856653480036730331104108629148761203384157351118411884824672192324107409050741539067370489973781743971063462643272771423021916057444072860452230903226294507879571089206387994256277101287217542823105014674564478191955544906423908893786526179878211556869306952561835029159838751738257123286394406704961437113279430641425630846052656503663568097366023482951861554068247827732559076582510507525847674665157596618526904002136910217579918917412256752451318312865159825507795331618730186001913662449974706936782766867399386487250034968267508838834323332380135087274522546889066185564975041734300365710764898220357163786019535837065855545125855017565690368746360664322016300631633872096285982124781977352059430451298178395495033310367016467980399528487197561187553600134242284143260159196557915131249188031598899481003401173655417171919206401903089542055595458199998167088187015488672167814959478294092832219884009609970033036343826692187135874051350558645501237426905964935739816508975227067283665577786650599594809964255658914186575776546417921261162545755966118499647282255805583571242438809854106436303762718615752019932549938835696826979817405088913561820067935145884375644396449226017661537801907417787716198921303681125894838521772515280260545587183003371332172031170600933341931325036892965155715945368272306039575574806505383201597336979861741584170535810466483748281048146772256322197406786135067643083214085478527905190742923453657293910422574159203434906454024891486405846728008618353898532827854737923026834459590176406523718385292854620550042543214693903526759748610081888534750715875679186164538434249508573145655512510602485781475867493584233680010980235324836672293520404985767104434131555909673691517549050313642070343908189090315612732585531181203470305009349390139393009312219358454673613323194470727377759823288381123950794834746746043152317250336056706312742820820634468280060720281444516327470308879951019058139242016896208495086163014988404619508578165637878281124639674780701578382741748333708964852273057803546312696387179297539395121991705667270417778056641651453616307012263291872304741307568605029098982856153889675401983328771319233748155488286316922102725747438537629551818099691391011862020093895210621544385228758706430896653140994936840335722068041307431587487455085885402461485007490759332125198120917088420414537684651581674949990832898728479935891377150776237137363393324601846582103801360655141911838900080724355966145873798929995646480867720102302929238023432265692692853800123119974104144562710920394321092715790831406768981112046919872994769419196743302418012060041022011526893927135872115614121987942060957108035430514039432169870414616572278651200605508847797748266350316280753975859462836109484196571976705645233068930619673984710686766399476588322651456958437191231563977435005899944324784168232310085753627659399288976264602480278855100016563938262563093670209708870098992890880822826303997756891187710934846739139708115379862353624288516989135601807613090874746974590672982135595152231531970543119909560083513912593656162058316521204648564520655593189716303735703443200324235560444794650396127204469964473065277635609551214888581223371736468029900323319361737380276033468985441202016098313762160946795076717717270172154618525190472795494229768001215786352684203236947372634478520586256998538066557156295754902262453588422016681016717554273959039761154934719259993311228604701786878817089405764894863249266428717149516476870075642487139623684600026344928488834569624953333671764015237481457969689971377229263874173541943556305595691941285384560982193674533615785553246628839325558001303001491509639758488305997111312198874791517212753991675078126102643458732872281475050424097334121930619737336789244282706402553026965061696823682583781641182736932429894663642900951361522634840736868754499281592500985367619698717469986296421225873123812301820316260337666292066497454535672185202629111300657868714232657921005464227218907362430474333792111525680909192224848751832863527243773491657078698757415619947648648791120515336984287493542502507467005610056763345418873745056497134890593280716569599184837594143208349459849360164805471841825440069805160666128236184843346969616224057273858390493337478116277168719579147981992850628366644801986410861643434793677484955497595618721454578915421183924106352000729258716304884474559953016788380585724333174865413456523963062687648290829557625447107931205441007065161322649056954507260948368478021792176306947397696662838145746914543454226219060286748561747965829249138884180100276280223156492882109177682407695372732329227452896573880556486830115072116949319490848415221331875988446386792223063287381885972345262799144026136688925717402045634643250982446852857787436400545348244774911893886171233649618037026932050286238291275212856885311282174490349803429898294517018466485892462561675375116352393900661499656289114371351462511241033469500857936799052360120232603318206789515597059112180307981276336255152800578419420505023079562586782268881742333563045412060700832435947787989589391079481587860562225849119280981107449436575581289460933760656707830922234801700365580712903964174389259979601697300038803776761347420971071412748976033826228688291071511290662101053204755261550516014033078054233734516131820450814435776752207954056596734378102382229725968767154537716444829064284235607865722259863864667989108312657323285810826133095367062818163030909814477867629836366804533512743838323258815952024151360611941263307450865911118553089635627175391745578720327388432456045415369175663291270851159654484849427885440662264998194038224711728311857007875930616604133588545231582391413261855886702563234642028729263296121121371556400184468648739630688217048702702725035881210884707483350975711465291697789027754342813806178725411408209645656061074178193510125415669733599029861825147625024626216138444358024177573141411161237818512529773222458008149856643930047612506758184170799774286956144169701235110566519233239716661311656151979636917474650199085543616379445936022309655167129873162697272142645131690338056439553884002466664875159571684303970220897596970815854036128775915903029641616221998325492540509056745253447497600240278599555236896638567702391153962376003679433632810423815606159058314759125595491041060404028009808962128863541928463293565915515550551887725254245893728273350867674307978288682053929131005953850884939288686905639656877050966934058594660795661246239609904689041430593334754721093749932185605583040422325139217538691185817250096543961037406899189196227562620148932853791925004500620854724027211220199908537045200538742836375701813089094802961091983029812393320875430744122061545312609265134697700941573776331344891193321348950726440228287253573796814714779427836565831663174826541336928701214140890915980409442241104197221806055702644113161010651048759833681946450285309719104721318855793266532472666671407645561958305766268427654941497838929905342043805957200656371695428098570069697714052648769105190671345947421563945617269224313172098483417367034037400542137425113283213202927890240800561130690070953278122904257346792393153351509310396852653674130181898961356707115110016372496303780310431540749975647572499583641375405384204153280672336589108804130821936756781341162212527760993913759946655433701423763799729717640688010103070450663903928968620852566797573497869648955629610925741314583244065954329981454661315841030329704037275872117082475843710394930126401216589590965467716227687525338121456604437471430988168627070436145502176645900532889183588880389086540704990517977404458803771968729631200528217786192113042906508309242203371069809966017178444269969716595395525425665848266293728391087583780859197554642032803692285974585543512663189271912067599995237330987334394628298377974777637074090509646193842897862362558822554105527610042881603866155580487980296468770088475285519884429350363631016391818482128700239917162325859905579523952121341021944994261352892240075162125280344304677084334650827924456434476636270642782169402335101985900340090373111961518392931684583570374059329704266428698605928137811185246277729925840251232747465416555420271059935184831102029774902908376309298375478470359112871466624208817930505281570494878559005035337750796131230657437387451465749419696616950203267250652525427502542637529317953042297115901233387322186747724449797804941763420498951173050579319780005464456019197008823037516660855765474777416100384260084713400025264166885583522161305294521162436317092637653457157437899950542631841908924776774656313548671767813274993117130364036112657400602724800981820459747261071941735483212603300722681619657284390355082878751899646765980354492042576407126571749250734150410247951920844723441591918207757981454828634588928662341639550360885848172008129012511302221351967722005710096804348473649589491950285626115731784846984049670310033117301848296319001943688166429719778331248881956475405698982163140285468448385122368356146233081694189681974607899181707332386490872693189094130145376614984202101207132461763214879256198729082113204734748362070967115381141814810715936656274732734968909213489752922286435336952351331687836392049318581080512171001941938085891743650669946745589289247782646817353014639390233246816767906750030700491356939729162407964812781179686737653872543570624659217109495787503545561765225888940756663158778646673839695349360953079891078665422250612371708708346285949571058394939852504213261701786075688102546218677159506278220710783899361491046177855469532991321006444283722305109971683052816028276090277453774572901281155219047977222352276991261152592525358115766871661990017791723870991620653139684866601057285507908407916561637935541336397370638168801838642280342517145368090270489701568782628447928982737559177904622744070282700322403217795661375243725630077067088312589444827635538618233290677935535750204922294466080191714927611642215348797490863948029682694730974647560389624342086411779884113146891964197909607996217084580329164687206186909029040110242890791159037952126315408912436479193661096015660237028635354224073925291383541330264142224467051089702421614983534432284268430306537296478319016469719193230687433305189109831273699575247590174727002404774665201413989271587253097211945015214136188550906747047045412618574459257376528867417433621946826019584001979169697294218026055574150997707459349227247008945623680996565545633999162323093917091981987337683926144449849309045689590384324317220655411419536067249787242316192743375646924489742685762654217540058023830922386802680449656452642643872737602489370508189022948692584363089967460446640006459663654283135634676973116276772653314189030520223157860751329763846379492363522435030376718837369109029513908493350487587917689607387804140874729990121666131730030092499419378571637143546095282365653098334199939083036904274690868642103868054165370614089325709199752466330865469993424328586775066153331460045555670628028156233446499344568677894244871054504622990880631905005679457547221648616817529907698258708124302601384869544516117374272755349155744463528505655019542421626961082887911952200827378136232918887211315352949296471318265488544021128764874637211378287645940604804997429385989328433983685269229621969883124789854610329870758923312504834614335219873081959066447168996503080589924718185736110636234708241040819259088949623593847206972894770356049744713263076076330389958983979886952137890020042037702645485260900662916027025361405845005910914870924682692260606773857138563047526946853183984433336342612810332003086131061587495297407500615029631283154533986826944627054524962023286096674239903750000760809248360953948247849013915273476890263515165677014897209319925759407886027412138666283309417342322911107973767578302144712593184863422480168530874862071684132713653868794435985015770060381831619074539185516290948899881381228578071853143070199528782323307621630460490380389354473765731988838953866724430538978250145515707137332666681125618396138859826790736549588126672493637365889025233307769219516592910980421557127639460829831913981839223302528331589893381411658553459391995527155652964528531027985033261070315282448538786861170984462075153308744160364364504143737251393398766452582379931160572069489038524992226029161214658409043547319499057496500110052504629390308665742173031893776010913637183431744104516042030421372408276499566060173353390456771925321495755247566573432418276013509170208490113230664562064089311249241176011208548858491923081528706608747050954359878631963867215938697019384196165672084371036585003853092265031087883899180229660827574456163517339676955625427000711619049223530311471528735720866441160486179727893908280144248345029280715007084334222312368056324026655415210116764532233772123746509573174694019418149015784440646903372454361716752853725991946028442951429027515305276524811697200073271405180159590906147412757022436359972447207889805909378531532705928842273911356566316200020886396526389060546675632811590590062202108845691975137732159650996024872105714325556701110261376264385285417858630300576770195825529144548853133381225186882539671753259689222989744528484544961060802253597372543602562858586139980205788382841571269789045631628256360814400632709593024378244350239751677874945301452021511684129245541074394346348017005819240045736794186406548653655047181878506210122249330373800411731580853978471330343870098050120718685556697317497354173913492205919902680830336326578533930986809230611735629868115947124064840614968352530515707988179105899165390727317884568390430701811115378595491225088114016381911983332310866436135047595308339901186634846596445509551905500594084503751152330734882711329611027275075656276650760147694074621456564641422040086733473610662910322377072991516046725643356671635434331980462151069736008589278571617727853479197797400851521814321014926049517697732087391523710071471539496532007321165321589137767026492118999105306307943367521653780396849078886363297737049287238800484995485369594332809267353448584747236690391721505746740984960453131493661361394010867924701049617040414772139254305096400885900325389867419275142655435005620029110571275080714144603435745568915626657190889642503096718823173773094816381573065455195415373830301497591399674528266720122140434826232718098683093541856597260649678795606874103072640291195044499765230581103357644980449460291038980252460307581149649376181346808736353135196618591434390882577741795884381659253572042051544687597168434786697393766539538537897425613981915416306385636657832811390820684513935230706389052243540666781949466494992208967452831339939636750912155634977622219647569275899391848869642742227370492280823645219973095563806341124477462624696702043104218958374942896009057395329186232009294554932120827012925525455437178200567874188561537098316103756403711314034464960093144705149930818753520620009463665797454176108391119870880771817816015071656385828911170107294638270451561603099681454972697075550288702114060243770814120365091445587355451898097681482300757747530778251897538230332556393922884938791570078773342173490178176118442447932443396278405281812764261885975154951079407032270818160391867919914514847930646406873857622459495973444074545074269402353922209089430317559014914174638145529991354159143765333754730233295179144089072382273905532348285075744348805188246497034789308796800937509967765542315905717585103796163184741412969340167416386957941114906255744015407072022864935728021461522052197109450341526309110417367662164133233379085236981614341374173889787429659973524300058370840327894471536330686870427626459586863348664811081566750745206970105669433074414666954021943745476139834700812393339681832873003536377295763707491625734812015286541137709718223574978107723141179286450807506522534098138048224081788092506127034467389807626466667469852655963712914474420929368841882009698623368017953445378549898817525848377220916668608899777258318020172530749861752204954875951105577500684971923209453366806419176631849578284614685673476128492742246344271434050268582330191509654291382301721518288594078166396303084722703293588578953459240898565319590435980726358347600342707123949654321040905733680820781015405425586227807091434080585327226040650324495511444407830841384586362137389188960784051621622538934137113396142579265144103902712108436238478162293249045939990611112723269291729977267475563922912210428604685314529896270098142151937576374137328147441401997970407522657417953944807364407594748604361321816894544090670079397376452382015603493816411619551420709366192228166812636507448466413296171938314285167945679747018177651398997480279847925039452289986033324396180741414564511351132876890278231851416617736889254930838155526374808370519320345870883131035587267829531760633533607427218976199621217384636959422816814729067547090527066091899063862792590250206610260742633409490649915752462159968964966946148771085587309647759583237054596701645413216396228583450966876408886586847976157182940396398356701755419467102149489603442245634573187243103869596931032115692033648372808373067799139385134115794618014794273342630300208487732167359060812729100574941554496718903135470408577904067397042005717535132541601235253289338978693042209047558505184048560273247200524525954380031766331260309210402442687358012003133331853067900340383351423237251108708828162351168720425898042070969185531111489927544981331461169951497456970114302935647016958157291153633601743599092529916252403699817346200659172702187378926252719301651336078019315115262695198003652938335207026026689986757124610126889186820156032549632120747054550198638011172545303402734648795284859783781497086450648917445069382779217452114120351149468818484973222425284518800115631444330260317564302841456939579934696340193375839423700409519947843050301152360629240004925667482439236160250470068226518725483768957945368621731325585404460423493992318465624869023685656001313936223534136780229671521863580408795519193743254050912140028593860213909641113947222477339527708342881823288940747372852107768414817028163056407132402640266090100496723934042312697828590429982051621485570922009109160940167121417335633249544546322894871002985662285806688190565423095002700790964145028601466870080616876220555669090527079783919450450330196955611564105364215162266456481080502445772631536648728780176538669411556846494142230202517088143339935465120166250495962069159007171387424030932595873075561873173885287689942011768378729646802181738316530418947812140936824695116226720386362661226031266981574594024376558439451900514088068233599598965741366293433766491033656162595466719317002902029318310866589481126381075360194743943459295890045648274300065742202095593744585849076538944499539089991045189463493757393672125199202123320155411938334173265634292837709780221453416313763996090676668656838482617860646133418142957581230100700872765767836596056279562222274686161048565210300907380802636790493471401976098091869538384171829811705296944904430676536725764908630904856273520519580738288510223043271189389024622612287335320784689283280440364895730984377452703387756321256028470514422959568599413862302269961172242095875563792955294086001932385166000220309707396477793092643205454263709192441135846095304377136624947649547056497693864818713202462728976032034452318283189100527668039113709858863396673872212454034967113493705197754117034635062379286674882217821483991129840397654110807020893008798925745164283670110996897711375021620138102891175734772561163182381763738526902773160578788954366980519037451852624320453573197868603529588311291154820669460521954911363838414859460819927644195729312064563594826954631558402419984962664690166607844694643951225244904128288427405283958140676584665974420758480358764097101094638311071033976411421032633377978464970552276876149304390224397712908718115962498337854763537337041424595338110745716125546190401425692333739033185912083060909825683462853511256012049060828772354093845797080667047381791957224487466679569426640595729278383071827604273920781417585884965781195747464591953109557172562679554189084451808807742596248945450159190841861396597947174442815820241187174595619776799322568661322148817172915221568731129105138099106661326066381638029078570993677641994753262597497503311693339173636625549784681787125106095848766983079303882089591139755108505853330378843099699739483749208340555860472392887564146780941182320541145468277398237458270951283529333475884757417966043443045104601775213420363268870063648065519256018776753196156743625385229372170066533622184454019905913928435079196463126999208047061857482161640345432525389224293314933957917802545453386017545917695788233677443116800617650956227142084505740146615555708869516114764358621928247205531632875021020125103764651138873407018768679311090560897923593534670358096536084463418834586945384933874887796802930698681958364321425822286621743609458585785968656112354995850470917703695886826990972196013065838494388768518963154570550984676499254799793460316407337591997304570623096449781567592983051599191713720769495528457915926642280595080117954445815527377382221714966716669165488735799843644682184142359338802550913277911664535102354510286723822211250445464990169739506906115915356803532834048881501000744566430043546070993994692943013773187386132932104390711557542054064548604514284607351919016381843444416643313069397068919866491354773222345204925237038901436463023602315802803610314178811597428124914919119736479608883679515507723766201474754871260233775443055787173514411284548418981913420388863580479580241109378905187438628652098131624091316432267383078491590319805106727379401350407412803047142090169063512613920806511403849867745335846521901247512891844469861283787651413486868610995162457214052249970297637742408112548598068903711496107889918242325131837064751665085339319931917901488924292503273830763353534339856142200294887742549795752938994601219858670779258091875228170394132261912300860984341806456729122753771635520976181473694842081650957692854943781215297552623457352800576323192604333140870706269833809505947490735748040860353955999327118958469044522217534687536860079167780651827798049896709184672018358908777045182582194405133233174527002719574295221715218104447000355466264145715593294545416779132191945573906369484244081204288776313162428114773790361703495345143854243967624640487564155096086322751487294738034934866266255021011496237480246668746608926710661556131581296097672298361222015661386393432232552236224105055992897538809271471500070555433579491379187067399633702431869060169378317937961262640774376916737190458013613821418942186135410522363852200290152251963967320521909527032810323612105910807677385639306954696617228512904079232186396076941266611766571596351325789663164813429715040394618564607845020528366779753679634975395040730411888884673298388430449225041091945857122218880400366793244036739630143863200506054793716068417460254102118175221818854383360129416175486349570191497744873810496346861293270644646178688762192053873004379568597300011175331334275011644418381191256399490700770030535038867964031815667328160462185257096688618082756120515614171161499280696389203259875578493870985118628107700681615210145880020814443512284339917427442169965731890676356775874864753885803213593435183275879295866811801595440322201708211861669752345481569176631699642762911059568718139425419562702900169612407242892094746225981552738553763924442457346875914432194556421698266643837404766067270958122447322726983656811158919101817483532877661943041601312315917829041511177135532563394843365281005322481636627461794934231416637800205740048277012866543702522701804274555874968316255594014675566424490346799655856833220095158058554832992111244378861402855077010588833985337871332581054407784945839206561474056977774485775694714143476360636390623852050916197660653346387715602946763117077239494031809154234314105763721869408797529528503124768626487882804949886619527575243080750332878080388687705534958569905311850508499615280208584271790435172392921225264680429245300833521394139272095160035170431496844830578005242146936737400802624851975938567386299202833586392710714197789704323667477185180888822688354102163598285412644144218252378436717173820965231211332752419552141604556731263315414146069758127701751130758657557682142079615263636581650430343313639827743435026071643280244602491537692982178288286941339726651286586899310064828400125362684772585569700689552239188272151623961083592971360468839153493958836686129200556069280103448711541576229087641339940378738264531928355180393746593185129446182746464124194982240920651774664456797241789690474557550098983595945624994050329237271719615624944968045664222469681940699887464326589035274940713414736552410289088334372960661824427263878155000891868069057790038413259531856854975647508602930224963343655199131794024644527636976805944159218541329495966384566258420223938828450819530573415182798906126856851999916205669706719682516516720397674922642501493226682184182670123167826898821311457214579392855073202129825356706318552711924320079613759974614577981502088477155333689696992142088946890545474155279376740953084675314856836871716356093652532572661581792310488714086403778451479727173987065132092679054532210415557362702796089495731629862071579532687380181749306395480631029941936341067656361547034371537659534706071826293844728612343576578613571782511280751326424492442096852157100146299694731189163404163904959911721784238979159191979929678409809710223091429420804517671127182309976094771022763155349812580570538031428231310626819216341111395713911085937633440811719611236527194011296921369121780925248764968579432632208035576609039336824794816805403298939259168606072524363971252867471817430171458829296330880687039296490939494275020002810992391083334873994685669635698301816697210321119314781904791803484900655521684897880987727148336976005671716586701860139573074356390153249917230498427764829449639863866037364941250672701747782342847511157647873888049073543206262742809426947999614383741822894901650787155662884935742945713661071391798298798227592838081178839540452934807378001800047769349050445721775765774647426217417646144344425672141752606281987480282829367080778770221419176008101496858674352656993462914400134654815349284538953305408100802161100434227470355317124401685295927923163954094789535592105449486064687251677372480266065861113658918755210048450207344916339043799535770722187626979166146756682066045250623334940941167515156504752147658954801555141771222184602726077359791427567956634212593223580972437891201565811000822797129865808865275324554879231368131275584185609420152054332273588208485600178142355325718273687206284306667710783381779755922926468821894900037314911123316641837772024296573187375408481165850664330220289433841835966445965942162213596642691960607357255067445445501033908809215511666112694388740887871017173632824703768275986719074077976356516470233502200559195290952210853183267643716527511627104922315050867652572043812616250182059581702891037212814920102239333611227357651186276379150673920680082014814259315417463213534787905670646512698208669821624707421720138997946148398548725110228081355882372762921119023616947735756059368894437424445248004153469058785265735620772349231137532854406367470905183065659680825784644875933271868518921119275689676301589640270906655865675362884522280052739870680194871827368595567412473579929749996735937934241057634316159800859435873214689908355167611770051320718150876673150469295532928666224223546231342868131373734926466118683030256466387722238035263580189766795317849800586034531873077479117047785935093238621142764664288120472045981262250762754551400119546043691248558995220054311954776982626670013756583807212030750931494460469813228407223235875683132121612573482375907407842286306608806954725886973013042452380797730220521165782096488927915309029566497211174750117424926892016747201896372809215145133448018760388598890742338506490021468573272636889957172086409151885265365626972205604952212149840532483781169450314075232499386029233943989419187432561794218826496877109273254597963236258281854816886684389335757483177626694737079518943920781885348018560630442020759995248521709107828661970735906712465820255475170515495501433083773513336093850749065680831534336354389742124869398405602308913985033056854898644583312535332524326499137387203650107299993809500432559730753862605349934298300415
D:\sumio\src\Perl>