2的次幂 -- 程序员大数计算必备

最近做IPV6,需要将IPV6转换成一个大数,方便操作。因为ipv6格式是128位,传统处理方式已经不起作用,只要找来大数运算的东东,贴出2的1000以内次幂的值,大家可以参考。

顺便给大家推荐一个大数计算器:Beaconaut APICalc,官网可以免费试用30天:http://www.beaconaut.com/Downloads.aspx


后面附了一下自己的代码,欢迎大家拍砖。。


0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
11 2048
12 4096
13 8192
14 16384
15 32768
16 65536
17 131072
18 262144
19 524288
20 1048576
21 2097152
22 4194304
23 8388608
24 16777216
25 33554432
26 67108864
27 134217728
28 268435456
29 536870912
30 1073741824
31 2147483648
32 4294967296
33 8589934592
34 17179869184
35 34359738368
36 68719476736
37 137438953472
38 274877906944
39 549755813888
40 1099511627776
41 2199023255552
42 4398046511104
43 8796093022208
44 17592186044416
45 35184372088832
46 70368744177664
47 140737488355328
48 281474976710656
49 562949953421312
50 1125899906842624
51 2251799813685248
52 4503599627370496
53 9007199254740992
54 18014398509481984
55 36028797018963968
56 72057594037927936
57 144115188075855872
58 288230376151711744
59 576460752303423488
60 1152921504606846976
61 2305843009213693952
62 4611686018427387904
63 9223372036854775808
64 18446744073709551616
65 36893488147419103232
66 73786976294838206464
67 147573952589676412928
68 295147905179352825856
69 590295810358705651712
70 1180591620717411303424
71 2361183241434822606848
72 4722366482869645213696
73 9444732965739290427392
74 18889465931478580854784
75 37778931862957161709568
76 75557863725914323419136
77 151115727451828646838272
78 302231454903657293676544
79 604462909807314587353088
80 1208925819614629174706176
81 2417851639229258349412352
82 4835703278458516698824704
83 9671406556917033397649408
84 19342813113834066795298816
85 38685626227668133590597632
86 77371252455336267181195264
87 154742504910672534362390528
88 309485009821345068724781056
89 618970019642690137449562112
90 1237940039285380274899124224
91 2475880078570760549798248448
92 4951760157141521099596496896
93 9903520314283042199192993792
94 19807040628566084398385987584
95 39614081257132168796771975168
96 79228162514264337593543950336
97 158456325028528675187087900672
98 316912650057057350374175801344
99 633825300114114700748351602688
100 1267650600228229401496703205376
101 2535301200456458802993406410752
102 5070602400912917605986812821504
103 10141204801825835211973625643008
104 20282409603651670423947251286016
105 40564819207303340847894502572032
106 81129638414606681695789005144064
107 162259276829213363391578010288128
108 324518553658426726783156020576256
109 649037107316853453566312041152512
110 1298074214633706907132624082305024
111 2596148429267413814265248164610048
112 5192296858534827628530496329220096
113 10384593717069655257060992658440192
114 20769187434139310514121985316880384
115 41538374868278621028243970633760768
116 83076749736557242056487941267521536
117 166153499473114484112975882535043072
118 332306998946228968225951765070086144
119 664613997892457936451903530140172288
120 1329227995784915872903807060280344576
121 2658455991569831745807614120560689152
122 5316911983139663491615228241121378304
123 10633823966279326983230456482242756608
124 21267647932558653966460912964485513216
125 42535295865117307932921825928971026432
126 85070591730234615865843651857942052864
127 170141183460469231731687303715884105728
128 340282366920938463463374607431768211456
129 680564733841876926926749214863536422912
130 1361129467683753853853498429727072845824
131 2722258935367507707706996859454145691648
132 5444517870735015415413993718908291383296
133 10889035741470030830827987437816582766592
134 21778071482940061661655974875633165533184
135 43556142965880123323311949751266331066368
136 87112285931760246646623899502532662132736
137 174224571863520493293247799005065324265472
138 348449143727040986586495598010130648530944
139 696898287454081973172991196020261297061888
140 1393796574908163946345982392040522594123776
141 2787593149816327892691964784081045188247552
142 5575186299632655785383929568162090376495104
143 11150372599265311570767859136324180752990208
144 22300745198530623141535718272648361505980416
145 44601490397061246283071436545296723011960832
146 89202980794122492566142873090593446023921664
147 178405961588244985132285746181186892047843328
148 356811923176489970264571492362373784095686656
149 713623846352979940529142984724747568191373312
150 1427247692705959881058285969449495136382746624
151 2854495385411919762116571938898990272765493248
152 5708990770823839524233143877797980545530986496
153 11417981541647679048466287755595961091061972992
154 22835963083295358096932575511191922182123945984
155 45671926166590716193865151022383844364247891968
156 91343852333181432387730302044767688728495783936
157 182687704666362864775460604089535377456991567872
158 365375409332725729550921208179070754913983135744
159 730750818665451459101842416358141509827966271488
160 1461501637330902918203684832716283019655932542976
161 2923003274661805836407369665432566039311865085952
162 5846006549323611672814739330865132078623730171904
163 11692013098647223345629478661730264157247460343808
164 23384026197294446691258957323460528314494920687616
165 46768052394588893382517914646921056628989841375232
166 93536104789177786765035829293842113257979682750464
167 187072209578355573530071658587684226515959365500928
168 374144419156711147060143317175368453031918731001856
169 748288838313422294120286634350736906063837462003712
170 1496577676626844588240573268701473812127674924007424
171 2993155353253689176481146537402947624255349848014848
172 5986310706507378352962293074805895248510699696029696
173 11972621413014756705924586149611790497021399392059392
174 23945242826029513411849172299223580994042798784118784
175 47890485652059026823698344598447161988085597568237568
176 95780971304118053647396689196894323976171195136475136
177 191561942608236107294793378393788647952342390272950272
178 383123885216472214589586756787577295904684780545900544
179 766247770432944429179173513575154591809369561091801088
180 1532495540865888858358347027150309183618739122183602176
181 3064991081731777716716694054300618367237478244367204352
182 6129982163463555433433388108601236734474956488734408704
183 12259964326927110866866776217202473468949912977468817408
184 24519928653854221733733552434404946937899825954937634816
185 49039857307708443467467104868809893875799651909875269632
186 98079714615416886934934209737619787751599303819750539264
187 196159429230833773869868419475239575503198607639501078528
188 392318858461667547739736838950479151006397215279002157056
189 784637716923335095479473677900958302012794430558004314112
190 1569275433846670190958947355801916604025588861116008628224
191 3138550867693340381917894711603833208051177722232017256448
192 6277101735386680763835789423207666416102355444464034512896
193 12554203470773361527671578846415332832204710888928069025792
194 25108406941546723055343157692830665664409421777856138051584
195 50216813883093446110686315385661331328818843555712276103168
196 100433627766186892221372630771322662657637687111424552206336
197 200867255532373784442745261542645325315275374222849104412672
198 401734511064747568885490523085290650630550748445698208825344
199 803469022129495137770981046170581301261101496891396417650688
200 1606938044258990275541962092341162602522202993782792835301376
201 3213876088517980551083924184682325205044405987565585670602752
202 6427752177035961102167848369364650410088811975131171341205504
203 12855504354071922204335696738729300820177623950262342682411008
204 25711008708143844408671393477458601640355247900524685364822016
205 51422017416287688817342786954917203280710495801049370729644032
206 102844034832575377634685573909834406561420991602098741459288064
207 205688069665150755269371147819668813122841983204197482918576128
208 411376139330301510538742295639337626245683966408394965837152256
209 822752278660603021077484591278675252491367932816789931674304512
210 1645504557321206042154969182557350504982735865633579863348609024
211 3291009114642412084309938365114701009965471731267159726697218048
212 6582018229284824168619876730229402019930943462534319453394436096
213 13164036458569648337239753460458804039861886925068638906788872192
214 26328072917139296674479506920917608079723773850137277813577744384
215 52656145834278593348959013841835216159447547700274555627155488768
216 105312291668557186697918027683670432318895095400549111254310977536
217 210624583337114373395836055367340864637790190801098222508621955072
218 421249166674228746791672110734681729275580381602196445017243910144
219 842498333348457493583344221469363458551160763204392890034487820288
220 1684996666696914987166688442938726917102321526408785780068975640576
221 3369993333393829974333376885877453834204643052817571560137951281152
222 6739986666787659948666753771754907668409286105635143120275902562304
223 13479973333575319897333507543509815336818572211270286240551805124608
224 26959946667150639794667015087019630673637144422540572481103610249216
225 53919893334301279589334030174039261347274288845081144962207220498432
226 107839786668602559178668060348078522694548577690162289924414440996864
227 215679573337205118357336120696157045389097155380324579848828881993728
228 431359146674410236714672241392314090778194310760649159697657763987456
229 862718293348820473429344482784628181556388621521298319395315527974912
230 1725436586697640946858688965569256363112777243042596638790631055949824
231 3450873173395281893717377931138512726225554486085193277581262111899648
232 6901746346790563787434755862277025452451108972170386555162524223799296
233 13803492693581127574869511724554050904902217944340773110325048447598592
234 27606985387162255149739023449108101809804435888681546220650096895197184
235 55213970774324510299478046898216203619608871777363092441300193790394368
236 110427941548649020598956093796432407239217743554726184882600387580788736
237 220855883097298041197912187592864814478435487109452369765200775161577472
238 441711766194596082395824375185729628956870974218904739530401550323154944
239 883423532389192164791648750371459257913741948437809479060803100646309888
240 1766847064778384329583297500742918515827483896875618958121606201292619776
241 3533694129556768659166595001485837031654967793751237916243212402585239552
242 7067388259113537318333190002971674063309935587502475832486424805170479104
243 14134776518227074636666380005943348126619871175004951664972849610340958208
244 28269553036454149273332760011886696253239742350009903329945699220681916416
245 56539106072908298546665520023773392506479484700019806659891398441363832832
246 113078212145816597093331040047546785012958969400039613319782796882727665664
247 226156424291633194186662080095093570025917938800079226639565593765455331328
248 452312848583266388373324160190187140051835877600158453279131187530910662656
249 904625697166532776746648320380374280103671755200316906558262375061821325312
250 1809251394333065553493296640760748560207343510400633813116524750123642650624
251 3618502788666131106986593281521497120414687020801267626233049500247285301248
252 7237005577332262213973186563042994240829374041602535252466099000494570602496
253 14474011154664524427946373126085988481658748083205070504932198000989141204992
254 28948022309329048855892746252171976963317496166410141009864396001978282409984
255 57896044618658097711785492504343953926634992332820282019728792003956564819968
256 115792089237316195423570985008687907853269984665640564039457584007913129639936
257 231584178474632390847141970017375815706539969331281128078915168015826259279872
258 463168356949264781694283940034751631413079938662562256157830336031652518559744
259 926336713898529563388567880069503262826159877325124512315660672063305037119488
260 1852673427797059126777135760139006525652319754650249024631321344126610074238976
261 3705346855594118253554271520278013051304639509300498049262642688253220148477952
262 7410693711188236507108543040556026102609279018600996098525285376506440296955904
263 14821387422376473014217086081112052205218558037201992197050570753012880593911808
264 29642774844752946028434172162224104410437116074403984394101141506025761187823616
265 59285549689505892056868344324448208820874232148807968788202283012051522375647232
266 118571099379011784113736688648896417641748464297615937576404566024103044751294464
267 237142198758023568227473377297792835283496928595231875152809132048206089502588928
268 474284397516047136454946754595585670566993857190463750305618264096412179005177856
269 948568795032094272909893509191171341133987714380927500611236528192824358010355712
270 1897137590064188545819787018382342682267975428761855001222473056385648716020711424
271 3794275180128377091639574036764685364535950857523710002444946112771297432041422848
272 7588550360256754183279148073529370729071901715047420004889892225542594864082845696
273 15177100720513508366558296147058741458143803430094840009779784451085189728165691392
274 30354201441027016733116592294117482916287606860189680019559568902170379456331382784
275 60708402882054033466233184588234965832575213720379360039119137804340758912662765568
276 121416805764108066932466369176469931665150427440758720078238275608681517825325531136
277 242833611528216133864932738352939863330300854881517440156476551217363035650651062272
278 485667223056432267729865476705879726660601709763034880312953102434726071301302124544
279 971334446112864535459730953411759453321203419526069760625906204869452142602604249088
280 1942668892225729070919461906823518906642406839052139521251812409738904285205208498176
281 3885337784451458141838923813647037813284813678104279042503624819477808570410416996352
282 7770675568902916283677847627294075626569627356208558085007249638955617140820833992704
283 15541351137805832567355695254588151253139254712417116170014499277911234281641667985408
284 31082702275611665134711390509176302506278509424834232340028998555822468563283335970816
285 62165404551223330269422781018352605012557018849668464680057997111644937126566671941632
286 124330809102446660538845562036705210025114037699336929360115994223289874253133343883264
287 248661618204893321077691124073410420050228075398673858720231988446579748506266687766528
288 497323236409786642155382248146820840100456150797347717440463976893159497012533375533056
289 994646472819573284310764496293641680200912301594695434880927953786318994025066751066112
290 1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224
291 3978585891278293137243057985174566720803649206378781739523711815145275976100267004264448
292 7957171782556586274486115970349133441607298412757563479047423630290551952200534008528896
293 15914343565113172548972231940698266883214596825515126958094847260581103904401068017057792
294 31828687130226345097944463881396533766429193651030253916189694521162207808802136034115584
295 63657374260452690195888927762793067532858387302060507832379389042324415617604272068231168
296 127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336
297 254629497041810760783555711051172270131433549208242031329517556169297662470417088272924672
298 509258994083621521567111422102344540262867098416484062659035112338595324940834176545849344
299 1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698688
300 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376
301 4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752
302 8148143905337944345073782753637512644205873574663745002544561797417525199053346824733589504
303 16296287810675888690147565507275025288411747149327490005089123594835050398106693649467179008
304 32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358016
305 65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032
306 130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432064
307 260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864128
308 521481209941628438084722096232800809229175908778479680162851955034721612739414196782949728256
309 1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456512
310 2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913024
311 4171849679533027504677776769862406473833407270227837441302815640277772901915313574263597826048
312 8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652096
313 16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304192
314 33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384
315 66749594872528440074844428317798503581334516323645399060845050244444366430645017188217565216768
316 133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433536
317 266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072
318 533996758980227520598755426542388028650676130589163192486760401955554931445160137505740521734144
319 1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468288
320 2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576
321 4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152
322 8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746304
323 17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608
324 34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216
325 68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432
326 136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864
327 273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728
328 546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456
329 1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526912
330 2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053824
331 4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107648
332 8749002899132047697490008908470485461412677723572849745703082425639811996797503692894052708092215296
333 17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592
334 34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184
335 69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368
336 139984046386112763159840142535527767382602843577165595931249318810236991948760059086304843329475444736
337 279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889472
338 559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944
339 1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557888
340 2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115776
341 4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552
342 8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104
343 17917957937422433684459538244547554224973163977877196279199912807710334969441287563047019946172856926208
344 35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416
345 71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832
346 143343663499379469475676305956380433799785311823017570233599302461682679755530300504376159569382855409664
347 286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819328
348 573374653997517877902705223825521735199141247292070280934397209846730719022121202017504638277531421638656
349 1146749307995035755805410447651043470398282494584140561868794419693461438044242404035009276555062843277312
350 2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554624
351 4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109248
352 9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496
353 18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436992
354 36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984
355 73391955711682288371546268649666782105490079653384995959602842860381532034831513858240593699524021969747968
356 146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936
357 293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872
358 587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983744
359 1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967488
360 2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934976
361 4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869952
362 9394170331095332911557922387157348109502730195633279482829163886128836100458433773854795993539074812127739904
363 18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479808
364 37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959616
365 75153362648762663292463379097258784876021841565066235862633311089030688803667470190838367948312598497021919232
366 150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838464
367 300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928
368 601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353856
369 1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712
370 2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415424
371 4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830848
372 9619630419041620901435312524449124464130795720328478190417063819395928166869436184427311097384012607618805661696
373 19239260838083241802870625048898248928261591440656956380834127638791856333738872368854622194768025215237611323392
374 38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646784
375 76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293568
376 153914086704665934422965000391185991426092731525255651046673021110334850669910978950836977558144201721900890587136
377 307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174272
378 615656346818663737691860001564743965704370926101022604186692084441339402679643915803347910232576806887603562348544
379 1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088
380 2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394176
381 4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352
382 9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704
383 19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153408
384 39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816
385 78804012392788958424558080200287227610159478540930893335896586808491443542994421222828532509769831281613255980613632
386 157608024785577916849116160400574455220318957081861786671793173616982887085988842445657065019539662563226511961227264
387 315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454528
388 630432099142311667396464641602297820881275828327447146687172694467931548343955369782628260078158650252906047844909056
389 1260864198284623334792929283204595641762551656654894293374345388935863096687910739565256520156317300505812095689818112
390 2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224
391 5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272448
392 10086913586276986678343434265636765134100413253239154346994763111486904773503285916522052161250538404046496765518544896
393 20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089792
394 40347654345107946713373737062547060536401653012956617387979052445947619094013143666088208645002153616185987062074179584
395 80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168
396 161390617380431786853494948250188242145606612051826469551916209783790476376052574664352834580008614464743948248296718336
397 322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436672
398 645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873344
399 1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746688
400 2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493376
401 5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752
402 10328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973504
403 20657999024695268717247353376024094994637646342633788102645274852325180976134729557037162826241102651487225375781979947008
404 41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894016
405 82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032
406 165263992197562149737978827008192759957101170741070304821162198818601447809077836456297302609928821211897803006255839576064
407 330527984395124299475957654016385519914202341482140609642324397637202895618155672912594605219857642423795606012511679152128
408 661055968790248598951915308032771039828404682964281219284648795274405791236311345825189210439715284847591212025023358304256
409 1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512
410 2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217024
411 5288447750321988791615322464262168318627237463714249754277190362195246329890490766601513683517722278780729696200186866434048
412 10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096
413 21153791001287955166461289857048673274508949854856999017108761448780985319561963066406054734070889115122918784800747465736192
414 42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472384
415 84615164005151820665845159428194693098035799419427996068435045795123941278247852265624218936283556460491675139202989862944768
416 169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536
417 338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779072
418 676921312041214565326761275425557544784286395355423968547480366360991530225982818124993751490268451683933401113623918903558144
419 1353842624082429130653522550851115089568572790710847937094960732721983060451965636249987502980536903367866802227247837807116288
420 2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232576
421 5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465152
422 10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930304
423 21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860608
424 43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721216
425 86645927941275464361825443254471365732388658605494267974077486894206915868925800719999200190754361815543475342543861619655442432
426 173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884864
427 346583711765101857447301773017885462929554634421977071896309947576827663475703202879996800763017447262173901370175446478621769728
428 693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539456
429 1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912
430 2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157824
431 5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648
432 11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296
433 22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262592
434 44362715105933037753254626946289339254982993206013065202727673289833940924890009968639590497666233249558259375382457149263586525184
435 88725430211866075506509253892578678509965986412026130405455346579667881849780019937279180995332466499116518750764914298527173050368
436 177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100736
437 354901720847464302026037015570314714039863945648104521621821386318671527399120079749116723981329865996466075003059657194108692201472
438 709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402944
439 1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805888
440 2839213766779714416208296124562517712318911565184836172974571090549372219192960637992933791850638927971728600024477257552869537611776
441 5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552
442 11356855067118857664833184498250070849275646260739344691898284362197488876771842551971735167402555711886914400097909030211478150447104
443 22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894208
444 45427420268475430659332737993000283397102585042957378767593137448789955507087370207886940669610222847547657600391636120845912601788416
445 90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576832
446 181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664
447 363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307328
448 726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656
449 1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312
450 2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624
451 5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248
452 11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496
453 23258839177459420497578361852416145099316523541994177929007686373780457219628733546438113622840434097944400691400517693873107252115668992
454 46517678354918840995156723704832290198633047083988355858015372747560914439257467092876227245680868195888801382801035387746214504231337984
455 93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675968
456 186070713419675363980626894819329160794532188335953423432061490990243657757029868371504908982723472783555205531204141550984858016925351936
457 372141426839350727961253789638658321589064376671906846864122981980487315514059736743009817965446945567110411062408283101969716033850703872
458 744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744
459 1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815488
460 2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630976
461 5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261952
462 11908525658859223294760121268437066290850060053501019099651935423375594096449911575776314174894302258147533153997065059263030913083222523904
463 23817051317718446589520242536874132581700120107002038199303870846751188192899823151552628349788604516295066307994130118526061826166445047808
464 47634102635436893179040485073748265163400240214004076398607741693502376385799646303105256699577209032590132615988260237052123652332890095616
465 95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191232
466 190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382464
467 381072821083495145432323880589986121307201921712032611188861933548019011086397170424842053596617672260721060927906081896416989218663120764928
468 762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856
469 1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059712
470 3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119424
471 6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238848
472 12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477696
473 24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955392
474 48777321098687378615337456715518223527321845979140174232174327494146433419058837814379782860367062049372295798771978482741374619988879457910784
475 97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821568
476 195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136
477 390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272
478 780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544
479 1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145088
480 3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290176
481 6243497100631984462763194459586332611497196285329942301718313919250743477639531240240612206126983942319653862242813245790895951358576570612580352
482 12486994201263968925526388919172665222994392570659884603436627838501486955279062480481224412253967884639307724485626491581791902717153141225160704
483 24973988402527937851052777838345330445988785141319769206873255677002973910558124960962448824507935769278615448971252983163583805434306282450321408
484 49947976805055875702105555676690660891977570282639538413746511354005947821116249921924897649015871538557230897942505966327167610868612564900642816
485 99895953610111751404211111353381321783955140565279076827493022708011895642232499843849795298031743077114461795885011932654335221737225129801285632
486 199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571264
487 399583814440447005616844445413525287135820562261116307309972090832047582568929999375399181192126972308457847183540047730617340886948900519205142528
488 799167628880894011233688890827050574271641124522232614619944181664095165137859998750798362384253944616915694367080095461234681773897801038410285056
489 1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570112
490 3196670515523576044934755563308202297086564498088930458479776726656380660551439995003193449537015778467662777468320381844938727095591204153641140224
491 6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280448
492 12786682062094304179739022253232809188346257992355721833919106906625522642205759980012773798148063113870651109873281527379754908382364816614564560896
493 25573364124188608359478044506465618376692515984711443667838213813251045284411519960025547596296126227741302219746563054759509816764729633229129121792
494 51146728248377216718956089012931236753385031969422887335676427626502090568823039920051095192592252455482604439493126109519019633529459266458258243584
495 102293456496754433437912178025862473506770063938845774671352855253004181137646079840102190385184504910965208878986252219038039267058918532916516487168
496 204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974336
497 409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672
498 818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897344
499 1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794688
500 3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
501 6546781215792283740026379393655198304433284092086129578966582736192267592809349109766540184651808314301773368255120142018434513091770786106657055178752
502 13093562431584567480052758787310396608866568184172259157933165472384535185618698219533080369303616628603546736510240284036869026183541572213314110357504
503 26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008
504 52374249726338269920211035149241586435466272736689036631732661889538140742474792878132321477214466514414186946040961136147476104734166288853256441430016
505 104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032
506 209496998905353079680844140596966345741865090946756146526930647558152562969899171512529285908857866057656747784163844544589904418936665155413025765720064
507 418993997810706159361688281193932691483730181893512293053861295116305125939798343025058571817715732115313495568327689089179808837873330310826051531440128
508 837987995621412318723376562387865382967460363787024586107722590232610251879596686050117143635431464230626991136655378178359617675746660621652103062880256
509 1675975991242824637446753124775730765934920727574049172215445180465220503759193372100234287270862928461253982273310756356719235351493321243304206125760512
510 3351951982485649274893506249551461531869841455148098344430890360930441007518386744200468574541725856922507964546621512713438470702986642486608412251521024
511 6703903964971298549787012499102923063739682910296196688861780721860882015036773488400937149083451713845015929093243025426876941405973284973216824503042048
512 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
513 26815615859885194199148049996411692254958731641184786755447122887443528060147093953603748596333806855380063716372972101707507765623893139892867298012168192
514 53631231719770388398296099992823384509917463282369573510894245774887056120294187907207497192667613710760127432745944203415015531247786279785734596024336384
515 107262463439540776796592199985646769019834926564739147021788491549774112240588375814414994385335227421520254865491888406830031062495572559571469192048672768
516 214524926879081553593184399971293538039669853129478294043576983099548224481176751628829988770670454843040509730983776813660062124991145119142938384097345536
517 429049853758163107186368799942587076079339706258956588087153966199096448962353503257659977541340909686081019461967553627320124249982290238285876768194691072
518 858099707516326214372737599885174152158679412517913176174307932398192897924707006515319955082681819372162038923935107254640248499964580476571753536389382144
519 1716199415032652428745475199770348304317358825035826352348615864796385795849414013030639910165363638744324077847870214509280496999929160953143507072778764288
520 3432398830065304857490950399540696608634717650071652704697231729592771591698828026061279820330727277488648155695740429018560993999858321906287014145557528576
521 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057152
522 13729595320261219429963801598162786434538870600286610818788926918371086366795312104245119281322909109954592622782961716074243975999433287625148056582230114304
523 27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818219909185245565923432148487951998866575250296113164460228608
524 54918381281044877719855206392651145738155482401146443275155707673484345467181248416980477125291636439818370491131846864296975903997733150500592226328920457216
525 109836762562089755439710412785302291476310964802292886550311415346968690934362496833960954250583272879636740982263693728593951807995466301001184452657840914432
526 219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864
527 439347050248359021758841651141209165905243859209171546201245661387874763737449987335843817002333091518546963929054774914375807231981865204004737810631363657728
528 878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456
529 1757388200993436087035366604564836663620975436836686184804982645551499054949799949343375268009332366074187855716219099657503228927927460816018951242525454630912
530 3514776401986872174070733209129673327241950873673372369609965291102998109899599898686750536018664732148375711432438199315006457855854921632037902485050909261824
531 7029552803973744348141466418259346654483901747346744739219930582205996219799199797373501072037329464296751422864876398630012915711709843264075804970101818523648
532 14059105607947488696282932836518693308967803494693489478439861164411992439598399594747002144074658928593502845729752797260025831423419686528151609940203637047296
533 28118211215894977392565865673037386617935606989386978956879722328823984879196799189494004288149317857187005691459505594520051662846839373056303219880407274094592
534 56236422431789954785131731346074773235871213978773957913759444657647969758393598378988008576298635714374011382919011189040103325693678746112606439760814548189184
535 112472844863579909570263462692149546471742427957547915827518889315295939516787196757976017152597271428748022765838022378080206651387357492225212879521629096378368
536 224945689727159819140526925384299092943484855915095831655037778630591879033574393515952034305194542857496045531676044756160413302774714984450425759043258192756736
537 449891379454319638281053850768598185886969711830191663310075557261183758067148787031904068610389085714992091063352089512320826605549429968900851518086516385513472
538 899782758908639276562107701537196371773939423660383326620151114522367516134297574063808137220778171429984182126704179024641653211098859937801703036173032771026944
539 1799565517817278553124215403074392743547878847320766653240302229044735032268595148127616274441556342859968364253408358049283306422197719875603406072346065542053888
540 3599131035634557106248430806148785487095757694641533306480604458089470064537190296255232548883112685719936728506816716098566612844395439751206812144692131084107776
541 7198262071269114212496861612297570974191515389283066612961208916178940129074380592510465097766225371439873457013633432197133225688790879502413624289384262168215552
542 14396524142538228424993723224595141948383030778566133225922417832357880258148761185020930195532450742879746914027266864394266451377581759004827248578768524336431104
543 28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208
544 57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416
545 115172193140305827399949785796761135587064246228529065807379342658863042065190089480167441564259605943037975312218134915154131611020654072038617988630148194691448832
546 230344386280611654799899571593522271174128492457058131614758685317726084130380178960334883128519211886075950624436269830308263222041308144077235977260296389382897664
547 460688772561223309599799143187044542348256984914116263229517370635452168260760357920669766257038423772151901248872539660616526444082616288154471954520592778765795328
548 921377545122446619199598286374089084696513969828232526459034741270904336521520715841339532514076847544303802497745079321233052888165232576308943909041185557531590656
549 1842755090244893238399196572748178169393027939656465052918069482541808673043041431682679065028153695088607604995490158642466105776330465152617887818082371115063181312
550 3685510180489786476798393145496356338786055879312930105836138965083617346086082863365358130056307390177215209990980317284932211552660930305235775636164742230126362624
551 7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248
552 14742040721959145907193572581985425355144223517251720423344555860334469384344331453461432520225229560708860839963921269139728846210643721220943102544658968920505450496
553 29484081443918291814387145163970850710288447034503440846689111720668938768688662906922865040450459121417721679927842538279457692421287442441886205089317937841010900992
554 58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984
555 117936325775673167257548580655883402841153788138013763386756446882675755074754651627691460161801836485670886719711370153117830769685149769767544820357271751364043603968
556 235872651551346334515097161311766805682307576276027526773512893765351510149509303255382920323603672971341773439422740306235661539370299539535089640714543502728087207936
557 471745303102692669030194322623533611364615152552055053547025787530703020299018606510765840647207345942683546878845480612471323078740599079070179281429087005456174415872
558 943490606205385338060388645247067222729230305104110107094051575061406040598037213021531681294414691885367093757690961224942646157481198158140358562858174010912348831744
559 1886981212410770676120777290494134445458460610208220214188103150122812081196074426043063362588829383770734187515381922449885292314962396316280717125716348021824697663488
560 3773962424821541352241554580988268890916921220416440428376206300245624162392148852086126725177658767541468375030763844899770584629924792632561434251432696043649395326976
561 7547924849643082704483109161976537781833842440832880856752412600491248324784297704172253450355317535082936750061527689799541169259849585265122868502865392087298790653952
562 15095849699286165408966218323953075563667684881665761713504825200982496649568595408344506900710635070165873500123055379599082338519699170530245737005730784174597581307904
563 30191699398572330817932436647906151127335369763331523427009650401964993299137190816689013801421270140331747000246110759198164677039398341060491474011461568349195162615808
564 60383398797144661635864873295812302254670739526663046854019300803929986598274381633378027602842540280663494000492221518396329354078796682120982948022923136698390325231616
565 120766797594289323271729746591624604509341479053326093708038601607859973196548763266756055205685080561326988000984443036792658708157593364241965896045846273396780650463232
566 241533595188578646543459493183249209018682958106652187416077203215719946393097526533512110411370161122653976001968886073585317416315186728483931792091692546793561300926464
567 483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928
568 966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856
569 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268096883290961288981231808015751088588682539330521493827871454336733540374348490407411712
570 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536193766581922577962463616031502177177365078661042987655742908673467080748696980814823424
571 7729075046034516689390703781863974688597854659412869997314470502903038284579120849072387533163845155924927232063004354354730157322085975311485817346934161497393961629646848
572 15458150092069033378781407563727949377195709318825739994628941005806076569158241698144775066327690311849854464126008708709460314644171950622971634693868322994787923259293696
573 30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392
574 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174784
575 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349568
576 247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136
577 494660802946209068121005042039294380070262698202423679828126112185794450213063734340632802122486089979195342852032278678702730068613502419935092310203786335833213544297398272
578 989321605892418136242010084078588760140525396404847359656252224371588900426127468681265604244972179958390685704064557357405460137227004839870184620407572671666427088594796544
579 1978643211784836272484020168157177520281050792809694719312504448743177800852254937362531208489944359916781371408129114714810920274454009679740369240815145343332854177189593088
580 3957286423569672544968040336314355040562101585619389438625008897486355601704509874725062416979888719833562742816258229429621840548908019359480738481630290686665708354379186176
581 7914572847139345089936080672628710081124203171238778877250017794972711203409019749450124833959777439667125485632516458859243681097816038718961476963260581373331416708758372352
582 15829145694278690179872161345257420162248406342477557754500035589945422406818039498900249667919554879334250971265032917718487362195632077437922953926521162746662833417516744704
583 31658291388557380359744322690514840324496812684955115509000071179890844813636078997800499335839109758668501942530065835436974724391264154875845907853042325493325666835033489408
584 63316582777114760719488645381029680648993625369910231018000142359781689627272157995600998671678219517337003885060131670873949448782528309751691815706084650986651333670066978816
585 126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133957632
586 253266331108459042877954581524118722595974501479640924072000569439126758509088631982403994686712878069348015540240526683495797795130113239006767262824338603946605334680267915264
587 506532662216918085755909163048237445191949002959281848144001138878253517018177263964807989373425756138696031080481053366991595590260226478013534525648677207893210669360535830528
588 1013065324433836171511818326096474890383898005918563696288002277756507034036354527929615978746851512277392062160962106733983191180520452956027069051297354415786421338721071661056
589 2026130648867672343023636652192949780767796011837127392576004555513014068072709055859231957493703024554784124321924213467966382361040905912054138102594708831572842677442143322112
590 4052261297735344686047273304385899561535592023674254785152009111026028136145418111718463914987406049109568248643848426935932764722081811824108276205189417663145685354884286644224
591 8104522595470689372094546608771799123071184047348509570304018222052056272290836223436927829974812098219136497287696853871865529444163623648216552410378835326291370709768573288448
592 16209045190941378744189093217543598246142368094697019140608036444104112544581672446873855659949624196438272994575393707743731058888327247296433104820757670652582741419537146576896
593 32418090381882757488378186435087196492284736189394038281216072888208225089163344893747711319899248392876545989150787415487462117776654494592866209641515341305165482839074293153792
594 64836180763765514976756372870174392984569472378788076562432145776416450178326689787495422639798496785753091978301574830974924235553308989185732419283030682610330965678148586307584
595 129672361527531029953512745740348785969138944757576153124864291552832900356653379574990845279596993571506183956603149661949848471106617978371464838566061365220661931356297172615168
596 259344723055062059907025491480697571938277889515152306249728583105665800713306759149981690559193987143012367913206299323899696942213235956742929677132122730441323862712594345230336
597 518689446110124119814050982961395143876555779030304612499457166211331601426613518299963381118387974286024735826412598647799393884426471913485859354264245460882647725425188690460672
598 1037378892220248239628101965922790287753111558060609224998914332422663202853227036599926762236775948572049471652825197295598787768852943826971718708528490921765295450850377380921344
599 2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688
600 4149515568880992958512407863691161151012446232242436899995657329690652811412908146399707048947103794288197886611300789182395151075411775307886874834113963687061181803401509523685376
601 8299031137761985917024815727382322302024892464484873799991314659381305622825816292799414097894207588576395773222601578364790302150823550615773749668227927374122363606803019047370752
602 16598062275523971834049631454764644604049784928969747599982629318762611245651632585598828195788415177152791546445203156729580604301647101231547499336455854748244727213606038094741504
603 33196124551047943668099262909529289208099569857939495199965258637525222491303265171197656391576830354305583092890406313459161208603294202463094998672911709496489454427212076189483008
604 66392249102095887336198525819058578416199139715878990399930517275050444982606530342395312783153660708611166185780812626918322417206588404926189997345823418992978908854424152378966016
605 132784498204191774672397051638117156832398279431757980799861034550100889965213060684790625566307321417222332371561625253836644834413176809852379994691646837985957817708848304757932032
606 265568996408383549344794103276234313664796558863515961599722069100201779930426121369581251132614642834444664743123250507673289668826353619704759989383293675971915635417696609515864064
607 531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728128
608 1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256
609 2124551971267068394758352826209874509318372470908127692797776552801614239443408970956650009060917142675557317944986004061386317350610828957638079915066349407775325083341572876126912512
610 4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024
611 8498207885068273579033411304839498037273489883632510771191106211206456957773635883826600036243668570702229271779944016245545269402443315830552319660265397631101300333366291504507650048
612 16996415770136547158066822609678996074546979767265021542382212422412913915547271767653200072487337141404458543559888032491090538804886631661104639320530795262202600666732583009015300096
613 33992831540273094316133645219357992149093959534530043084764424844825827831094543535306400144974674282808917087119776064982181077609773263322209278641061590524405201333465166018030600192
614 67985663080546188632267290438715984298187919069060086169528849689651655662189087070612800289949348565617834174239552129964362155219546526644418557282123181048810402666930332036061200384
615 135971326161092377264534580877431968596375838138120172339057699379303311324378174141225600579898697131235668348479104259928724310439093053288837114564246362097620805333860664072122400768
616 271942652322184754529069161754863937192751676276240344678115398758606622648756348282451201159797394262471336696958208519857448620878186106577674229128492724195241610667721328144244801536
617 543885304644369509058138323509727874385503352552480689356230797517213245297512696564902402319594788524942673393916417039714897241756372213155348458256985448390483221335442656288489603072
618 1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144
619 2175541218577478036232553294038911497542013410209922757424923190068852981190050786259609609278379154099770693575665668158859588967025488852621393833027941793561932885341770625153958412288
620 4351082437154956072465106588077822995084026820419845514849846380137705962380101572519219218556758308199541387151331336317719177934050977705242787666055883587123865770683541250307916824576
621 8702164874309912144930213176155645990168053640839691029699692760275411924760203145038438437113516616399082774302662672635438355868101955410485575332111767174247731541367082500615833649152
622 17404329748619824289860426352311291980336107281679382059399385520550823849520406290076876874227033232798165548605325345270876711736203910820971150664223534348495463082734165001231667298304
623 34808659497239648579720852704622583960672214563358764118798771041101647699040812580153753748454066465596331097210650690541753423472407821641942301328447068696990926165468330002463334596608
624 69617318994479297159441705409245167921344429126717528237597542082203295398081625160307507496908132931192662194421301381083506846944815643283884602656894137393981852330936660004926669193216
625 139234637988958594318883410818490335842688858253435056475195084164406590796163250320615014993816265862385324388842602762167013693889631286567769205313788274787963704661873320009853338386432
626 278469275977917188637766821636980671685377716506870112950390168328813181592326500641230029987632531724770648777685205524334027387779262573135538410627576549575927409323746640019706676772864
627 556938551955834377275533643273961343370755433013740225900780336657626363184653001282460059975265063449541297555370411048668054775558525146271076821255153099151854818647493280039413353545728
628 1113877103911668754551067286547922686741510866027480451801560673315252726369306002564920119950530126899082595110740822097336109551117050292542153642510306198303709637294986560078826707091456
629 2227754207823337509102134573095845373483021732054960903603121346630505452738612005129840239901060253798165190221481644194672219102234100585084307285020612396607419274589973120157653414182912
630 4455508415646675018204269146191690746966043464109921807206242693261010905477224010259680479802120507596330380442963288389344438204468201170168614570041224793214838549179946240315306828365824
631 8911016831293350036408538292383381493932086928219843614412485386522021810954448020519360959604241015192660760885926576778688876408936402340337229140082449586429677098359892480630613656731648
632 17822033662586700072817076584766762987864173856439687228824970773044043621908896041038721919208482030385321521771853153557377752817872804680674458280164899172859354196719784961261227313463296
633 35644067325173400145634153169533525975728347712879374457649941546088087243817792082077443838416964060770643043543706307114755505635745609361348916560329798345718708393439569922522454626926592
634 71288134650346800291268306339067051951456695425758748915299883092176174487635584164154887676833928121541286087087412614229511011271491218722697833120659596691437416786879139845044909253853184
635 142576269300693600582536612678134103902913390851517497830599766184352348975271168328309775353667856243082572174174825228459022022542982437445395666241319193382874833573758279690089818507706368
636 285152538601387201165073225356268207805826781703034995661199532368704697950542336656619550707335712486165144348349650456918044045085964874890791332482638386765749667147516559380179637015412736
637 570305077202774402330146450712536415611653563406069991322399064737409395901084673313239101414671424972330288696699300913836088090171929749781582664965276773531499334295033118760359274030825472
638 1140610154405548804660292901425072831223307126812139982644798129474818791802169346626478202829342849944660577393398601827672176180343859499563165329930553547062998668590066237520718548061650944
639 2281220308811097609320585802850145662446614253624279965289596258949637583604338693252956405658685699889321154786797203655344352360687718999126330659861107094125997337180132475041437096123301888
640 4562440617622195218641171605700291324893228507248559930579192517899275167208677386505912811317371399778642309573594407310688704721375437998252661319722214188251994674360264950082874192246603776
641 9124881235244390437282343211400582649786457014497119861158385035798550334417354773011825622634742799557284619147188814621377409442750875996505322639444428376503989348720529900165748384493207552
642 18249762470488780874564686422801165299572914028994239722316770071597100668834709546023651245269485599114569238294377629242754818885501751993010645278888856753007978697441059800331496768986415104
643 36499524940977561749129372845602330599145828057988479444633540143194201337669419092047302490538971198229138476588755258485509637771003503986021290557777713506015957394882119600662993537972830208
644 72999049881955123498258745691204661198291656115976958889267080286388402675338838184094604981077942396458276953177510516971019275542007007972042581115555427012031914789764239201325987075945660416
645 145998099763910246996517491382409322396583312231953917778534160572776805350677676368189209962155884792916553906355021033942038551084014015944085162231110854024063829579528478402651974151891320832
646 291996199527820493993034982764818644793166624463907835557068321145553610701355352736378419924311769585833107812710042067884077102168028031888170324462221708048127659159056956805303948303782641664
647 583992399055640987986069965529637289586333248927815671114136642291107221402710705472756839848623539171666215625420084135768154204336056063776340648924443416096255318318113913610607896607565283328
648 1167984798111281975972139931059274579172666497855631342228273284582214442805421410945513679697247078343332431250840168271536308408672112127552681297848886832192510636636227827221215793215130566656
649 2335969596222563951944279862118549158345332995711262684456546569164428885610842821891027359394494156686664862501680336543072616817344224255105362595697773664385021273272455654442431586430261133312
650 4671939192445127903888559724237098316690665991422525368913093138328857771221685643782054718788988313373329725003360673086145233634688448510210725191395547328770042546544911308884863172860522266624
651 9343878384890255807777119448474196633381331982845050737826186276657715542443371287564109437577976626746659450006721346172290467269376897020421450382791094657540085093089822617769726345721044533248
652 18687756769780511615554238896948393266762663965690101475652372553315431084886742575128218875155953253493318900013442692344580934538753794040842900765582189315080170186179645235539452691442089066496
653 37375513539561023231108477793896786533525327931380202951304745106630862169773485150256437750311906506986637800026885384689161869077507588081685801531164378630160340372359290471078905382884178132992
654 74751027079122046462216955587793573067050655862760405902609490213261724339546970300512875500623813013973275600053770769378323738155015176163371603062328757260320680744718580942157810765768356265984
655 149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968
656 299004108316488185848867822351174292268202623451041623610437960853046897358187881202051502002495252055893102400215083077513294952620060704653486412249315029041282722978874323768631243063073425063936
657 598008216632976371697735644702348584536405246902083247220875921706093794716375762404103004004990504111786204800430166155026589905240121409306972824498630058082565445957748647537262486126146850127872
658 1196016433265952743395471289404697169072810493804166494441751843412187589432751524808206008009981008223572409600860332310053179810480242818613945648997260116165130891915497295074524972252293700255744
659 2392032866531905486790942578809394338145620987608332988883503686824375178865503049616412016019962016447144819201720664620106359620960485637227891297994520232330261783830994590149049944504587400511488
660 4784065733063810973581885157618788676291241975216665977767007373648750357731006099232824032039924032894289638403441329240212719241920971274455782595989040464660523567661989180298099889009174801022976
661 9568131466127621947163770315237577352582483950433331955534014747297500715462012198465648064079848065788579276806882658480425438483841942548911565191978080929321047135323978360596199778018349602045952
662 19136262932255243894327540630475154705164967900866663911068029494595001430924024396931296128159696131577158553613765316960850876967683885097823130383956161858642094270647956721192399556036699204091904
663 38272525864510487788655081260950309410329935801733327822136058989190002861848048793862592256319392263154317107227530633921701753935367770195646260767912323717284188541295913442384799112073398408183808
664 76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616
665 153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232
666 306180206916083902309240650087602475282639486413866622577088471913520022894784390350900738050555138105234536857820245071373614031482942161565170086143298589738273508330367307539078392896587187265470464
667 612360413832167804618481300175204950565278972827733245154176943827040045789568780701801476101110276210469073715640490142747228062965884323130340172286597179476547016660734615078156785793174374530940928
668 1224720827664335609236962600350409901130557945655466490308353887654080091579137561403602952202220552420938147431280980285494456125931768646260680344573194358953094033321469230156313571586348749061881856
669 2449441655328671218473925200700819802261115891310932980616707775308160183158275122807205904404441104841876294862561960570988912251863537292521360689146388717906188066642938460312627143172697498123763712
670 4898883310657342436947850401401639604522231782621865961233415550616320366316550245614411808808882209683752589725123921141977824503727074585042721378292777435812376133285876920625254286345394996247527424
671 9797766621314684873895700802803279209044463565243731922466831101232640732633100491228823617617764419367505179450247842283955649007454149170085442756585554871624752266571753841250508572690789992495054848
672 19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696
673 39191066485258739495582803211213116836177854260974927689867324404930562930532401964915294470471057677470020717800991369135822596029816596680341771026342219486499009066287015365002034290763159969980219392
674 78382132970517478991165606422426233672355708521949855379734648809861125861064803929830588940942115354940041435601982738271645192059633193360683542052684438972998018132574030730004068581526319939960438784
675 156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568
676 313528531882069915964662425689704934689422834087799421518938595239444503444259215719322355763768461419760165742407930953086580768238532773442734168210737755891992072530296122920016274326105279759841755136
677 627057063764139831929324851379409869378845668175598843037877190478889006888518431438644711527536922839520331484815861906173161536477065546885468336421475511783984145060592245840032548652210559519683510272
678 1254114127528279663858649702758819738757691336351197686075754380957778013777036862877289423055073845679040662969631723812346323072954131093770936672842951023567968290121184491680065097304421119039367020544
679 2508228255056559327717299405517639477515382672702395372151508761915556027554073725754578846110147691358081325939263447624692646145908262187541873345685902047135936580242368983360130194608842238078734041088
680 5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082176
681 10032913020226237310869197622070557910061530690809581488606035047662224110216294903018315384440590765432325303757053790498770584583633048750167493382743608188543746320969475933440520778435368952314936164352
682 20065826040452474621738395244141115820123061381619162977212070095324448220432589806036630768881181530864650607514107580997541169167266097500334986765487216377087492641938951866881041556870737904629872328704
683 40131652080904949243476790488282231640246122763238325954424140190648896440865179612073261537762363061729301215028215161995082338334532195000669973530974432754174985283877903733762083113741475809259744657408
684 80263304161809898486953580976564463280492245526476651908848280381297792881730359224146523075524726123458602430056430323990164676669064390001339947061948865508349970567755807467524166227482951618519489314816
685 160526608323619796973907161953128926560984491052953303817696560762595585763460718448293046151049452246917204860112860647980329353338128780002679894123897731016699941135511614935048332454965903237038978629632
686 321053216647239593947814323906257853121968982105906607635393121525191171526921436896586092302098904493834409720225721295960658706676257560005359788247795462033399882271023229870096664909931806474077957259264
687 642106433294479187895628647812515706243937964211813215270786243050382343053842873793172184604197808987668819440451442591921317413352515120010719576495590924066799764542046459740193329819863612948155914518528
688 1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056
689 2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112
690 5136851466355833503165029182500125649951503713694505722166289944403058744430742990345377476833582471901350555523611540735370539306820120960085756611964727392534398116336371677921546638558908903585247316148224
691 10273702932711667006330058365000251299903007427389011444332579888806117488861485980690754953667164943802701111047223081470741078613640241920171513223929454785068796232672743355843093277117817807170494632296448
692 20547405865423334012660116730000502599806014854778022888665159777612234977722971961381509907334329887605402222094446162941482157227280483840343026447858909570137592465345486711686186554235635614340989264592896
693 41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792
694 82189623461693336050640466920002010399224059419112091554660639110448939910891887845526039629337319550421608888377784651765928628909121935361372105791435638280550369861381946846744746216942542457363957058371584
695 164379246923386672101280933840004020798448118838224183109321278220897879821783775691052079258674639100843217776755569303531857257818243870722744211582871276561100739722763893693489492433885084914727914116743168
696 328758493846773344202561867680008041596896237676448366218642556441795759643567551382104158517349278201686435553511138607063714515636487741445488423165742553122201479445527787386978984867770169829455828233486336
697 657516987693546688405123735360016083193792475352896732437285112883591519287135102764208317034698556403372871107022277214127429031272975482890976846331485106244402958891055574773957969735540339658911656466972672
698 1315033975387093376810247470720032166387584950705793464874570225767183038574270205528416634069397112806745742214044554428254858062545950965781953692662970212488805917782111149547915939471080679317823312933945344
699 2630067950774186753620494941440064332775169901411586929749140451534366077148540411056833268138794225613491484428089108856509716125091901931563907385325940424977611835564222299095831878942161358635646625867890688
700 5260135901548373507240989882880128665550339802823173859498280903068732154297080822113666536277588451226982968856178217713019432250183803863127814770651880849955223671128444598191663757884322717271293251735781376
701 10520271803096747014481979765760257331100679605646347718996561806137464308594161644227333072555176902453965937712356435426038864500367607726255629541303761699910447342256889196383327515768645434542586503471562752
702 21040543606193494028963959531520514662201359211292695437993123612274928617188323288454666145110353804907931875424712870852077729000735215452511259082607523399820894684513778392766655031537290869085173006943125504
703 42081087212386988057927919063041029324402718422585390875986247224549857234376646576909332290220707609815863750849425741704155458001470430905022518165215046799641789369027556785533310063074581738170346013886251008
704 84162174424773976115855838126082058648805436845170781751972494449099714468753293153818664580441415219631727501698851483408310916002940861810045036330430093599283578738055113571066620126149163476340692027772502016
705 168324348849547952231711676252164117297610873690341563503944988898199428937506586307637329160882830439263455003397702966816621832005881723620090072660860187198567157476110227142133240252298326952681384055545004032
706 336648697699095904463423352504328234595221747380683127007889977796398857875013172615274658321765660878526910006795405933633243664011763447240180145321720374397134314952220454284266480504596653905362768111090008064
707 673297395398191808926846705008656469190443494761366254015779955592797715750026345230549316643531321757053820013590811867266487328023526894480360290643440748794268629904440908568532961009193307810725536222180016128
708 1346594790796383617853693410017312938380886989522732508031559911185595431500052690461098633287062643514107640027181623734532974656047053788960720581286881497588537259808881817137065922018386615621451072444360032256
709 2693189581592767235707386820034625876761773979045465016063119822371190863000105380922197266574125287028215280054363247469065949312094107577921441162573762995177074519617763634274131844036773231242902144888720064512
710 5386379163185534471414773640069251753523547958090930032126239644742381726000210761844394533148250574056430560108726494938131898624188215155842882325147525990354149039235527268548263688073546462485804289777440129024
711 10772758326371068942829547280138503507047095916181860064252479289484763452000421523688789066296501148112861120217452989876263797248376430311685764650295051980708298078471054537096527376147092924971608579554880258048
712 21545516652742137885659094560277007014094191832363720128504958578969526904000843047377578132593002296225722240434905979752527594496752860623371529300590103961416596156942109074193054752294185849943217159109760516096
713 43091033305484275771318189120554014028188383664727440257009917157939053808001686094755156265186004592451444480869811959505055188993505721246743058601180207922833192313884218148386109504588371699886434318219521032192
714 86182066610968551542636378241108028056376767329454880514019834315878107616003372189510312530372009184902888961739623919010110377987011442493486117202360415845666384627768436296772219009176743399772868636439042064384
715 172364133221937103085272756482216056112753534658909761028039668631756215232006744379020625060744018369805777923479247838020220755974022884986972234404720831691332769255536872593544438018353486799545737272878084128768
716 344728266443874206170545512964432112225507069317819522056079337263512430464013488758041250121488036739611555846958495676040441511948045769973944468809441663382665538511073745187088876036706973599091474545756168257536
717 689456532887748412341091025928864224451014138635639044112158674527024860928026977516082500242976073479223111693916991352080883023896091539947888937618883326765331077022147490374177752073413947198182949091512336515072
718 1378913065775496824682182051857728448902028277271278088224317349054049721856053955032165000485952146958446223387833982704161766047792183079895777875237766653530662154044294980748355504146827894396365898183024673030144
719 2757826131550993649364364103715456897804056554542556176448634698108099443712107910064330000971904293916892446775667965408323532095584366159791555750475533307061324308088589961496711008293655788792731796366049346060288
720 5515652263101987298728728207430913795608113109085112352897269396216198887424215820128660001943808587833784893551335930816647064191168732319583111500951066614122648616177179922993422016587311577585463592732098692120576
721 11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152
722 22062609052407949194914912829723655182432452436340449411589077584864795549696863280514640007775234351335139574205343723266588256764674929278332446003804266456490594464708719691973688066349246310341854370928394768482304
723 44125218104815898389829825659447310364864904872680898823178155169729591099393726561029280015550468702670279148410687446533176513529349858556664892007608532912981188929417439383947376132698492620683708741856789536964608
724 88250436209631796779659651318894620729729809745361797646356310339459182198787453122058560031100937405340558296821374893066353027058699717113329784015217065825962377858834878767894752265396985241367417483713579073929216
725 176500872419263593559319302637789241459459619490723595292712620678918364397574906244117120062201874810681116593642749786132706054117399434226659568030434131651924755717669757535789504530793970482734834967427158147858432
726 353001744838527187118638605275578482918919238981447190585425241357836728795149812488234240124403749621362233187285499572265412108234798868453319136060868263303849511435339515071579009061587940965469669934854316295716864
727 706003489677054374237277210551156965837838477962894381170850482715673457590299624976468480248807499242724466374570999144530824216469597736906638272121736526607699022870679030143158018123175881930939339869708632591433728
728 1412006979354108748474554421102313931675676955925788762341700965431346915180599249952936960497614998485448932749141998289061648432939195473813276544243473053215398045741358060286316036246351763861878679739417265182867456
729 2824013958708217496949108842204627863351353911851577524683401930862693830361198499905873920995229996970897865498283996578123296865878390947626553088486946106430796091482716120572632072492703527723757359478834530365734912
730 5648027917416434993898217684409255726702707823703155049366803861725387660722396999811747841990459993941795730996567993156246593731756781895253106176973892212861592182965432241145264144985407055447514718957669060731469824
731 11296055834832869987796435368818511453405415647406310098733607723450775321444793999623495683980919987883591461993135986312493187463513563790506212353947784425723184365930864482290528289970814110895029437915338121462939648
732 22592111669665739975592870737637022906810831294812620197467215446901550642889587999246991367961839975767182923986271972624986374927027127581012424707895568851446368731861728964581056579941628221790058875830676242925879296
733 45184223339331479951185741475274045813621662589625240394934430893803101285779175998493982735923679951534365847972543945249972749854054255162024849415791137702892737463723457929162113159883256443580117751661352485851758592
734 90368446678662959902371482950548091627243325179250480789868861787606202571558351996987965471847359903068731695945087890499945499708108510324049698831582275405785474927446915858324226319766512887160235503322704971703517184
735 180736893357325919804742965901096183254486650358500961579737723575212405143116703993975930943694719806137463391890175780999890999416217020648099397663164550811570949854893831716648452639533025774320471006645409943407034368
736 361473786714651839609485931802192366508973300717001923159475447150424810286233407987951861887389439612274926783780351561999781998832434041296198795326329101623141899709787663433296905279066051548640942013290819886814068736
737 722947573429303679218971863604384733017946601434003846318950894300849620572466815975903723774778879224549853567560703123999563997664868082592397590652658203246283799419575326866593810558132103097281884026581639773628137472
738 1445895146858607358437943727208769466035893202868007692637901788601699241144933631951807447549557758449099707135121406247999127995329736165184795181305316406492567598839150653733187621116264206194563768053163279547256274944
739 2891790293717214716875887454417538932071786405736015385275803577203398482289867263903614895099115516898199414270242812495998255990659472330369590362610632812985135197678301307466375242232528412389127536106326559094512549888
740 5783580587434429433751774908835077864143572811472030770551607154406796964579734527807229790198231033796398828540485624991996511981318944660739180725221265625970270395356602614932750484465056824778255072212653118189025099776
741 11567161174868858867503549817670155728287145622944061541103214308813593929159469055614459580396462067592797657080971249983993023962637889321478361450442531251940540790713205229865500968930113649556510144425306236378050199552
742 23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104
743 46268644699475435470014199270680622913148582491776246164412857235254375716637876222457838321585848270371190628323884999935972095850551557285913445801770125007762163162852820919462003875720454598226040577701224945512200798208
744 92537289398950870940028398541361245826297164983552492328825714470508751433275752444915676643171696540742381256647769999871944191701103114571826891603540250015524326325705641838924007751440909196452081155402449891024401596416
745 185074578797901741880056797082722491652594329967104984657651428941017502866551504889831353286343393081484762513295539999743888383402206229143653783207080500031048652651411283677848015502881818392904162310804899782048803192832
746 370149157595803483760113594165444983305188659934209969315302857882035005733103009779662706572686786162969525026591079999487776766804412458287307566414161000062097305302822567355696031005763636785808324621609799564097606385664
747 740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328
748 1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656
749 2961193260766427870080908753323559866441509279473679754522422863056280045864824078237301652581494289303756200212728639995902214134435299666298460531313288000496778442422580538845568248046109094286466596972878396512780851085312
750 5922386521532855740161817506647119732883018558947359509044845726112560091729648156474603305162988578607512400425457279991804428268870599332596921062626576000993556884845161077691136496092218188572933193945756793025561702170624
751 11844773043065711480323635013294239465766037117894719018089691452225120183459296312949206610325977157215024800850914559983608856537741198665193842125253152001987113769690322155382272992184436377145866387891513586051123404341248
752 23689546086131422960647270026588478931532074235789438036179382904450240366918592625898413220651954314430049601701829119967217713075482397330387684250506304003974227539380644310764545984368872754291732775783027172102246808682496
753 47379092172262845921294540053176957863064148471578876072358765808900480733837185251796826441303908628860099203403658239934435426150964794660775368501012608007948455078761288621529091968737745508583465551566054344204493617364992
754 94758184344525691842589080106353915726128296943157752144717531617800961467674370503593652882607817257720198406807316479868870852301929589321550737002025216015896910157522577243058183937475491017166931103132108688408987234729984
755 189516368689051383685178160212707831452256593886315504289435063235601922935348741007187305765215634515440396813614632959737741704603859178643101474004050432031793820315045154486116367874950982034333862206264217376817974469459968
756 379032737378102767370356320425415662904513187772631008578870126471203845870697482014374611530431269030880793627229265919475483409207718357286202948008100864063587640630090308972232735749901964068667724412528434753635948938919936
757 758065474756205534740712640850831325809026375545262017157740252942407691741394964028749223060862538061761587254458531838950966818415436714572405896016201728127175281260180617944465471499803928137335448825056869507271897877839872
758 1516130949512411069481425281701662651618052751090524034315480505884815383482789928057498446121725076123523174508917063677901933636830873429144811792032403456254350562520361235888930942999607856274670897650113739014543795755679744
759 3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488
760 6064523798049644277925701126806650606472211004362096137261922023539261533931159712229993784486900304494092698035668254711607734547323493716579247168129613825017402250081444943555723771998431425098683590600454956058175183022718976
761 12129047596099288555851402253613301212944422008724192274523844047078523067862319424459987568973800608988185396071336509423215469094646987433158494336259227650034804500162889887111447543996862850197367181200909912116350366045437952
762 24258095192198577111702804507226602425888844017448384549047688094157046135724638848919975137947601217976370792142673018846430938189293974866316988672518455300069609000325779774222895087993725700394734362401819824232700732090875904
763 48516190384397154223405609014453204851777688034896769098095376188314092271449277697839950275895202435952741584285346037692861876378587949732633977345036910600139218000651559548445790175987451400789468724803639648465401464181751808
764 97032380768794308446811218028906409703555376069793538196190752376628184542898555395679900551790404871905483168570692075385723752757175899465267954690073821200278436001303119096891580351974902801578937449607279296930802928363503616
765 194064761537588616893622436057812819407110752139587076392381504753256369085797110791359801103580809743810966337141384150771447505514351798930535909380147642400556872002606238193783160703949805603157874899214558593861605856727007232
766 388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464
767 776259046150354467574489744231251277628443008558348305569526019013025476343188443165439204414323238975243865348565536603085790022057407195722143637520590569602227488010424952775132642815799222412631499596858234375446423426908028928
768 1552518092300708935148979488462502555256886017116696611139052038026050952686376886330878408828646477950487730697131073206171580044114814391444287275041181139204454976020849905550265285631598444825262999193716468750892846853816057856
769 3105036184601417870297958976925005110513772034233393222278104076052101905372753772661756817657292955900975461394262146412343160088229628782888574550082362278408909952041699811100530571263196889650525998387432937501785693707632115712
770 6210072369202835740595917953850010221027544068466786444556208152104203810745507545323513635314585911801950922788524292824686320176459257565777149100164724556817819904083399622201061142526393779301051996774865875003571387415264231424
771 12420144738405671481191835907700020442055088136933572889112416304208407621491015090647027270629171823603901845577048585649372640352918515131554298200329449113635639808166799244402122285052787558602103993549731750007142774830528462848
772 24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696
773 49680578953622685924767343630800081768220352547734291556449665216833630485964060362588109082516687294415607382308194342597490561411674060526217192801317796454542559232667196977608489140211150234408415974198927000028571099322113851392
774 99361157907245371849534687261600163536440705095468583112899330433667260971928120725176218165033374588831214764616388685194981122823348121052434385602635592909085118465334393955216978280422300468816831948397854000057142198644227702784
775 198722315814490743699069374523200327072881410190937166225798660867334521943856241450352436330066749177662429529232777370389962245646696242104868771205271185818170236930668787910433956560844600937633663896795708000114284397288455405568
776 397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136
777 794889263257962974796277498092801308291525640763748664903194643469338087775424965801409745320266996710649718116931109481559848982586784968419475084821084743272680947722675151641735826243378403750534655587182832000457137589153821622272
778 1589778526515925949592554996185602616583051281527497329806389286938676175550849931602819490640533993421299436233862218963119697965173569936838950169642169486545361895445350303283471652486756807501069311174365664000914275178307643244544
779 3179557053031851899185109992371205233166102563054994659612778573877352351101699863205638981281067986842598872467724437926239395930347139873677900339284338973090723790890700606566943304973513615002138622348731328001828550356615286489088
780 6359114106063703798370219984742410466332205126109989319225557147754704702203399726411277962562135973685197744935448875852478791860694279747355800678568677946181447581781401213133886609947027230004277244697462656003657100713230572978176
781 12718228212127407596740439969484820932664410252219978638451114295509409404406799452822555925124271947370395489870897751704957583721388559494711601357137355892362895163562802426267773219894054460008554489394925312007314201426461145956352
782 25436456424254815193480879938969641865328820504439957276902228591018818808813598905645111850248543894740790979741795503409915167442777118989423202714274711784725790327125604852535546439788108920017108978789850624014628402852922291912704
783 50872912848509630386961759877939283730657641008879914553804457182037637617627197811290223700497087789481581959483591006819830334885554237978846405428549423569451580654251209705071092879576217840034217957579701248029256805705844583825408
784 101745825697019260773923519755878567461315282017759829107608914364075275235254395622580447400994175578963163918967182013639660669771108475957692810857098847138903161308502419410142185759152435680068435915159402496058513611411689167650816
785 203491651394038521547847039511757134922630564035519658215217828728150550470508791245160894801988351157926327837934364027279321339542216951915385621714197694277806322617004838820284371518304871360136871830318804992117027222823378335301632
786 406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264
787 813966605576154086191388158047028539690522256142078632860871314912602201882035164980643579207953404631705311351737456109117285358168867807661542486856790777111225290468019355281137486073219485440547487321275219968468108891293513341206528
788 1627933211152308172382776316094057079381044512284157265721742629825204403764070329961287158415906809263410622703474912218234570716337735615323084973713581554222450580936038710562274972146438970881094974642550439936936217782587026682413056
789 3255866422304616344765552632188114158762089024568314531443485259650408807528140659922574316831813618526821245406949824436469141432675471230646169947427163108444901161872077421124549944292877941762189949285100879873872435565174053364826112
790 6511732844609232689531105264376228317524178049136629062886970519300817615056281319845148633663627237053642490813899648872938282865350942461292339894854326216889802323744154842249099888585755883524379898570201759747744871130348106729652224
791 13023465689218465379062210528752456635048356098273258125773941038601635230112562639690297267327254474107284981627799297745876565730701884922584679789708652433779604647488309684498199777171511767048759797140403519495489742260696213459304448
792 26046931378436930758124421057504913270096712196546516251547882077203270460225125279380594534654508948214569963255598595491753131461403769845169359579417304867559209294976619368996399554343023534097519594280807038990979484521392426918608896
793 52093862756873861516248842115009826540193424393093032503095764154406540920450250558761189069309017896429139926511197190983506262922807539690338719158834609735118418589953238737992799108686047068195039188561614077981958969042784853837217792
794 104187725513747723032497684230019653080386848786186065006191528308813081840900501117522378138618035792858279853022394381967012525845615079380677438317669219470236837179906477475985598217372094136390078377123228155963917938085569707674435584
795 208375451027495446064995368460039306160773697572372130012383056617626163681801002235044756277236071585716559706044788763934025051691230158761354876635338438940473674359812954951971196434744188272780156754246456311927835876171139415348871168
796 416750902054990892129990736920078612321547395144744260024766113235252327363602004470089512554472143171433119412089577527868050103382460317522709753270676877880947348719625909903942392869488376545560313508492912623855671752342278830697742336
797 833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672
798 1667003608219963568519962947680314449286189580578977040099064452941009309454408017880358050217888572685732477648358310111472200413529841270090839013082707511523789394878503639615769571477953506182241254033971650495422687009369115322790969344
799 3334007216439927137039925895360628898572379161157954080198128905882018618908816035760716100435777145371464955296716620222944400827059682540181678026165415023047578789757007279231539142955907012364482508067943300990845374018738230645581938688
800 6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877376
801 13336028865759708548159703581442515594289516644631816320792515623528074475635264143042864401743108581485859821186866480891777603308238730160726712104661660092190315159028029116926156571823628049457930032271773203963381496074952922582327754752
802 26672057731519417096319407162885031188579033289263632641585031247056148951270528286085728803486217162971719642373732961783555206616477460321453424209323320184380630318056058233852313143647256098915860064543546407926762992149905845164655509504
803 53344115463038834192638814325770062377158066578527265283170062494112297902541056572171457606972434325943439284747465923567110413232954920642906848418646640368761260636112116467704626287294512197831720129087092815853525984299811690329311019008
804 106688230926077668385277628651540124754316133157054530566340124988224595805082113144342915213944868651886878569494931847134220826465909841285813696837293280737522521272224232935409252574589024395663440258174185631707051968599623380658622038016
805 213376461852155336770555257303080249508632266314109061132680249976449191610164226288685830427889737303773757138989863694268441652931819682571627393674586561475045042544448465870818505149178048791326880516348371263414103937199246761317244076032
806 426752923704310673541110514606160499017264532628218122265360499952898383220328452577371660855779474607547514277979727388536883305863639365143254787349173122950090085088896931741637010298356097582653761032696742526828207874398493522634488152064
807 853505847408621347082221029212320998034529065256436244530720999905796766440656905154743321711558949215095028555959454777073766611727278730286509574698346245900180170177793863483274020596712195165307522065393485053656415748796987045268976304128
808 1707011694817242694164442058424641996069058130512872489061441999811593532881313810309486643423117898430190057111918909554147533223454557460573019149396692491800360340355587726966548041193424390330615044130786970107312831497593974090537952608256
809 3414023389634485388328884116849283992138116261025744978122883999623187065762627620618973286846235796860380114223837819108295066446909114921146038298793384983600720680711175453933096082386848780661230088261573940214625662995187948181075905216512
810 6828046779268970776657768233698567984276232522051489956245767999246374131525255241237946573692471593720760228447675638216590132893818229842292076597586769967201441361422350907866192164773697561322460176523147880429251325990375896362151810433024
811 13656093558537941553315536467397135968552465044102979912491535998492748263050510482475893147384943187441520456895351276433180265787636459684584153195173539934402882722844701815732384329547395122644920353046295760858502651980751792724303620866048
812 27312187117075883106631072934794271937104930088205959824983071996985496526101020964951786294769886374883040913790702552866360531575272919369168306390347079868805765445689403631464768659094790245289840706092591521717005303961503585448607241732096
813 54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192
814 109248748468303532426524291739177087748419720352823839299932287987941986104404083859807145179079545499532163655162810211465442126301091677476673225561388319475223061782757614525859074636379160981159362824370366086868021215846014341794428966928384
815 218497496936607064853048583478354175496839440705647678599864575975883972208808167719614290358159090999064327310325620422930884252602183354953346451122776638950446123565515229051718149272758321962318725648740732173736042431692028683588857933856768
816 436994993873214129706097166956708350993678881411295357199729151951767944417616335439228580716318181998128654620651240845861768505204366709906692902245553277900892247131030458103436298545516643924637451297481464347472084863384057367177715867713536
817 873989987746428259412194333913416701987357762822590714399458303903535888835232670878457161432636363996257309241302481691723537010408733419813385804491106555801784494262060916206872597091033287849274902594962928694944169726768114734355431735427072
818 1747979975492856518824388667826833403974715525645181428798916607807071777670465341756914322865272727992514618482604963383447074020817466839626771608982213111603568988524121832413745194182066575698549805189925857389888339453536229468710863470854144
819 3495959950985713037648777335653666807949431051290362857597833215614143555340930683513828645730545455985029236965209926766894148041634933679253543217964426223207137977048243664827490388364133151397099610379851714779776678907072458937421726941708288
820 6991919901971426075297554671307333615898862102580725715195666431228287110681861367027657291461090911970058473930419853533788296083269867358507086435928852446414275954096487329654980776728266302794199220759703429559553357814144917874843453883416576
821 13983839803942852150595109342614667231797724205161451430391332862456574221363722734055314582922181823940116947860839707067576592166539734717014172871857704892828551908192974659309961553456532605588398441519406859119106715628289835749686907766833152
822 27967679607885704301190218685229334463595448410322902860782665724913148442727445468110629165844363647880233895721679414135153184333079469434028345743715409785657103816385949318619923106913065211176796883038813718238213431256579671499373815533666304
823 55935359215771408602380437370458668927190896820645805721565331449826296885454890936221258331688727295760467791443358828270306368666158938868056691487430819571314207632771898637239846213826130422353593766077627436476426862513159342998747631067332608
824 111870718431542817204760874740917337854381793641291611443130662899652593770909781872442516663377454591520935582886717656540612737332317877736113382974861639142628415265543797274479692427652260844707187532155254872952853725026318685997495262134665216
825 223741436863085634409521749481834675708763587282583222886261325799305187541819563744885033326754909183041871165773435313081225474664635755472226765949723278285256830531087594548959384855304521689414375064310509745905707450052637371994990524269330432
826 447482873726171268819043498963669351417527174565166445772522651598610375083639127489770066653509818366083742331546870626162450949329271510944453531899446556570513661062175189097918769710609043378828750128621019491811414900105274743989981048538660864
827 894965747452342537638086997927338702835054349130332891545045303197220750167278254979540133307019636732167484663093741252324901898658543021888907063798893113141027322124350378195837539421218086757657500257242038983622829800210549487979962097077321728
828 1789931494904685075276173995854677405670108698260665783090090606394441500334556509959080266614039273464334969326187482504649803797317086043777814127597786226282054644248700756391675078842436173515315000514484077967245659600421098975959924194154643456
829 3579862989809370150552347991709354811340217396521331566180181212788883000669113019918160533228078546928669938652374965009299607594634172087555628255195572452564109288497401512783350157684872347030630001028968155934491319200842197951919848388309286912
830 7159725979618740301104695983418709622680434793042663132360362425577766001338226039836321066456157093857339877304749930018599215189268344175111256510391144905128218576994803025566700315369744694061260002057936311868982638401684395903839696776618573824
831 14319451959237480602209391966837419245360869586085326264720724851155532002676452079672642132912314187714679754609499860037198430378536688350222513020782289810256437153989606051133400630739489388122520004115872623737965276803368791807679393553237147648
832 28638903918474961204418783933674838490721739172170652529441449702311064005352904159345284265824628375429359509218999720074396860757073376700445026041564579620512874307979212102266801261478978776245040008231745247475930553606737583615358787106474295296
833 57277807836949922408837567867349676981443478344341305058882899404622128010705808318690568531649256750858719018437999440148793721514146753400890052083129159241025748615958424204533602522957957552490080016463490494951861107213475167230717574212948590592
834 114555615673899844817675135734699353962886956688682610117765798809244256021411616637381137063298513501717438036875998880297587443028293506801780104166258318482051497231916848409067205045915915104980160032926980989903722214426950334461435148425897181184
835 229111231347799689635350271469398707925773913377365220235531597618488512042823233274762274126597027003434876073751997760595174886056587013603560208332516636964102994463833696818134410091831830209960320065853961979807444428853900668922870296851794362368
836 458222462695599379270700542938797415851547826754730440471063195236977024085646466549524548253194054006869752147503995521190349772113174027207120416665033273928205988927667393636268820183663660419920640131707923959614888857707801337845740593703588724736
837 916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472
838 1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944
839 3665779701564795034165604343510379326812382614037843523768505561895816192685171732396196386025552432054958017180031964169522798176905392217656963333320266191425647911421339149090150561469309283359365121053663391676919110861662410702765924749628709797888
840 7331559403129590068331208687020758653624765228075687047537011123791632385370343464792392772051104864109916034360063928339045596353810784435313926666640532382851295822842678298180301122938618566718730242107326783353838221723324821405531849499257419595776
841 14663118806259180136662417374041517307249530456151374095074022247583264770740686929584785544102209728219832068720127856678091192707621568870627853333281064765702591645685356596360602245877237133437460484214653566707676443446649642811063698998514839191552
842 29326237612518360273324834748083034614499060912302748190148044495166529541481373859169571088204419456439664137440255713356182385415243137741255706666562129531405183291370713192721204491754474266874920968429307133415352886893299285622127397997029678383104
843 58652475225036720546649669496166069228998121824605496380296088990333059082962747718339142176408838912879328274880511426712364770830486275482511413333124259062810366582741426385442408983508948533749841936858614266830705773786598571244254795994059356766208
844 117304950450073441093299338992332138457996243649210992760592177980666118165925495436678284352817677825758656549761022853424729541660972550965022826666248518125620733165482852770884817967017897067499683873717228533661411547573197142488509591988118713532416
845 234609900900146882186598677984664276915992487298421985521184355961332236331850990873356568705635355651517313099522045706849459083321945101930045653332497036251241466330965705541769635934035794134999367747434457067322823095146394284977019183976237427064832
846 469219801800293764373197355969328553831984974596843971042368711922664472663701981746713137411270711303034626199044091413698918166643890203860091306664994072502482932661931411083539271868071588269998735494868914134645646190292788569954038367952474854129664
847 938439603600587528746394711938657107663969949193687942084737423845328945327403963493426274822541422606069252398088182827397836333287780407720182613329988145004965865323862822167078543736143176539997470989737828269291292380585577139908076735904949708259328
848 1876879207201175057492789423877314215327939898387375884169474847690657890654807926986852549645082845212138504796176365654795672666575560815440365226659976290009931730647725644334157087472286353079994941979475656538582584761171154279816153471809899416518656
849 3753758414402350114985578847754628430655879796774751768338949695381315781309615853973705099290165690424277009592352731309591345333151121630880730453319952580019863461295451288668314174944572706159989883958951313077165169522342308559632306943619798833037312
850 7507516828804700229971157695509256861311759593549503536677899390762631562619231707947410198580331380848554019184705462619182690666302243261761460906639905160039726922590902577336628349889145412319979767917902626154330339044684617119264613887239597666074624
851 15015033657609400459942315391018513722623519187099007073355798781525263125238463415894820397160662761697108038369410925238365381332604486523522921813279810320079453845181805154673256699778290824639959535835805252308660678089369234238529227774479195332149248
852 30030067315218800919884630782037027445247038374198014146711597563050526250476926831789640794321325523394216076738821850476730762665208973047045843626559620640158907690363610309346513399556581649279919071671610504617321356178738468477058455548958390664298496
853 60060134630437601839769261564074054890494076748396028293423195126101052500953853663579281588642651046788432153477643700953461525330417946094091687253119241280317815380727220618693026799113163298559838143343221009234642712357476936954116911097916781328596992
854 120120269260875203679538523128148109780988153496792056586846390252202105001907707327158563177285302093576864306955287401906923050660835892188183374506238482560635630761454441237386053598226326597119676286686442018469285424714953873908233822195833562657193984
855 240240538521750407359077046256296219561976306993584113173692780504404210003815414654317126354570604187153728613910574803813846101321671784376366749012476965121271261522908882474772107196452653194239352573372884036938570849429907747816467644391667125314387968
856 480481077043500814718154092512592439123952613987168226347385561008808420007630829308634252709141208374307457227821149607627692202643343568752733498024953930242542523045817764949544214392905306388478705146745768073877141698859815495632935288783334250628775936
857 960962154087001629436308185025184878247905227974336452694771122017616840015261658617268505418282416748614914455642299215255384405286687137505466996049907860485085046091635529899088428785810612776957410293491536147754283397719630991265870577566668501257551872
858 1921924308174003258872616370050369756495810455948672905389542244035233680030523317234537010836564833497229828911284598430510768810573374275010933992099815720970170092183271059798176857571621225553914820586983072295508566795439261982531741155133337002515103744
859 3843848616348006517745232740100739512991620911897345810779084488070467360061046634469074021673129666994459657822569196861021537621146748550021867984199631441940340184366542119596353715143242451107829641173966144591017133590878523965063482310266674005030207488
860 7687697232696013035490465480201479025983241823794691621558168976140934720122093268938148043346259333988919315645138393722043075242293497100043735968399262883880680368733084239192707430286484902215659282347932289182034267181757047930126964620533348010060414976
861 15375394465392026070980930960402958051966483647589383243116337952281869440244186537876296086692518667977838631290276787444086150484586994200087471936798525767761360737466168478385414860572969804431318564695864578364068534363514095860253929241066696020120829952
862 30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904
863 61501577861568104283923723841611832207865934590357532972465351809127477760976746151505184346770074671911354525161107149776344601938347976800349887747194103071045442949864673913541659442291879217725274258783458313456274137454056383441015716964266784080483319808
864 123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616
865 246006311446272417135694895366447328831463738361430131889861407236509911043906984606020737387080298687645418100644428599105378407753391907201399550988776412284181771799458695654166637769167516870901097035133833253825096549816225533764062867857067136321933279232
866 492012622892544834271389790732894657662927476722860263779722814473019822087813969212041474774160597375290836201288857198210756815506783814402799101977552824568363543598917391308333275538335033741802194070267666507650193099632451067528125735714134272643866558464
867 984025245785089668542779581465789315325854953445720527559445628946039644175627938424082949548321194750581672402577714396421513631013567628805598203955105649136727087197834782616666551076670067483604388140535333015300386199264902135056251471428268545287733116928
868 1968050491570179337085559162931578630651709906891441055118891257892079288351255876848165899096642389501163344805155428792843027262027135257611196407910211298273454174395669565233333102153340134967208776281070666030600772398529804270112502942856537090575466233856
869 3936100983140358674171118325863157261303419813782882110237782515784158576702511753696331798193284779002326689610310857585686054524054270515222392815820422596546908348791339130466666204306680269934417552562141332061201544797059608540225005885713074181150932467712
870 7872201966280717348342236651726314522606839627565764220475565031568317153405023507392663596386569558004653379220621715171372109048108541030444785631640845193093816697582678260933332408613360539868835105124282664122403089594119217080450011771426148362301864935424
871 15744403932561434696684473303452629045213679255131528440951130063136634306810047014785327192773139116009306758441243430342744218096217082060889571263281690386187633395165356521866664817226721079737670210248565328244806179188238434160900023542852296724603729870848
872 31488807865122869393368946606905258090427358510263056881902260126273268613620094029570654385546278232018613516882486860685488436192434164121779142526563380772375266790330713043733329634453442159475340420497130656489612358376476868321800047085704593449207459741696
873 62977615730245738786737893213810516180854717020526113763804520252546537227240188059141308771092556464037227033764973721370976872384868328243558285053126761544750533580661426087466659268906884318950680840994261312979224716752953736643600094171409186898414919483392
874 125955231460491477573475786427621032361709434041052227527609040505093074454480376118282617542185112928074454067529947442741953744769736656487116570106253523089501067161322852174933318537813768637901361681988522625958449433505907473287200188342818373796829838966784
875 251910462920982955146951572855242064723418868082104455055218081010186148908960752236565235084370225856148908135059894885483907489539473312974233140212507046179002134322645704349866637075627537275802723363977045251916898867011814946574400376685636747593659677933568
876 503820925841965910293903145710484129446837736164208910110436162020372297817921504473130470168740451712297816270119789770967814979078946625948466280425014092358004268645291408699733274151255074551605446727954090503833797734023629893148800753371273495187319355867136
877 1007641851683931820587806291420968258893675472328417820220872324040744595635843008946260940337480903424595632540239579541935629958157893251896932560850028184716008537290582817399466548302510149103210893455908181007667595468047259786297601506742546990374638711734272
878 2015283703367863641175612582841936517787350944656835640441744648081489191271686017892521880674961806849191265080479159083871259916315786503793865121700056369432017074581165634798933096605020298206421786911816362015335190936094519572595203013485093980749277423468544
879 4030567406735727282351225165683873035574701889313671280883489296162978382543372035785043761349923613698382530160958318167742519832631573007587730243400112738864034149162331269597866193210040596412843573823632724030670381872189039145190406026970187961498554846937088
880 8061134813471454564702450331367746071149403778627342561766978592325956765086744071570087522699847227396765060321916636335485039665263146015175460486800225477728068298324662539195732386420081192825687147647265448061340763744378078290380812053940375922997109693874176
881 16122269626942909129404900662735492142298807557254685123533957184651913530173488143140175045399694454793530120643833272670970079330526292030350920973600450955456136596649325078391464772840162385651374295294530896122681527488756156580761624107880751845994219387748352
882 32244539253885818258809801325470984284597615114509370247067914369303827060346976286280350090799388909587060241287666545341940158661052584060701841947200901910912273193298650156782929545680324771302748590589061792245363054977512313161523248215761503691988438775496704
883 64489078507771636517619602650941968569195230229018740494135828738607654120693952572560700181598777819174120482575333090683880317322105168121403683894401803821824546386597300313565859091360649542605497181178123584490726109955024626323046496431523007383976877550993408
884 128978157015543273035239205301883937138390460458037480988271657477215308241387905145121400363197555638348240965150666181367760634644210336242807367788803607643649092773194600627131718182721299085210994362356247168981452219910049252646092992863046014767953755101986816
885 257956314031086546070478410603767874276780920916074961976543314954430616482775810290242800726395111276696481930301332362735521269288420672485614735577607215287298185546389201254263436365442598170421988724712494337962904439820098505292185985726092029535907510203973632
886 515912628062173092140956821207535748553561841832149923953086629908861232965551620580485601452790222553392963860602664725471042538576841344971229471155214430574596371092778402508526872730885196340843977449424988675925808879640197010584371971452184059071815020407947264
887 1031825256124346184281913642415071497107123683664299847906173259817722465931103241160971202905580445106785927721205329450942085077153682689942458942310428861149192742185556805017053745461770392681687954898849977351851617759280394021168743942904368118143630040815894528
888 2063650512248692368563827284830142994214247367328599695812346519635444931862206482321942405811160890213571855442410658901884170154307365379884917884620857722298385484371113610034107490923540785363375909797699954703703235518560788042337487885808736236287260081631789056
889 4127301024497384737127654569660285988428494734657199391624693039270889863724412964643884811622321780427143710884821317803768340308614730759769835769241715444596770968742227220068214981847081570726751819595399909407406471037121576084674975771617472472574520163263578112
890 8254602048994769474255309139320571976856989469314398783249386078541779727448825929287769623244643560854287421769642635607536680617229461519539671538483430889193541937484454440136429963694163141453503639190799818814812942074243152169349951543234944945149040326527156224
891 16509204097989538948510618278641143953713978938628797566498772157083559454897651858575539246489287121708574843539285271215073361234458923039079343076966861778387083874968908880272859927388326282907007278381599637629625884148486304338699903086469889890298080653054312448
892 33018408195979077897021236557282287907427957877257595132997544314167118909795303717151078492978574243417149687078570542430146722468917846078158686153933723556774167749937817760545719854776652565814014556763199275259251768296972608677399806172939779780596161306108624896
893 66036816391958155794042473114564575814855915754515190265995088628334237819590607434302156985957148486834299374157141084860293444937835692156317372307867447113548335499875635521091439709553305131628029113526398550518503536593945217354799612345879559561192322612217249792
894 132073632783916311588084946229129151629711831509030380531990177256668475639181214868604313971914296973668598748314282169720586889875671384312634744615734894227096670999751271042182879419106610263256058227052797101037007073187890434709599224691759119122384645224434499584
895 264147265567832623176169892458258303259423663018060761063980354513336951278362429737208627943828593947337197496628564339441173779751342768625269489231469788454193341999502542084365758838213220526512116454105594202074014146375780869419198449383518238244769290448868999168
896 528294531135665246352339784916516606518847326036121522127960709026673902556724859474417255887657187894674394993257128678882347559502685537250538978462939576908386683999005084168731517676426441053024232908211188404148028292751561738838396898767036476489538580897737998336
897 1056589062271330492704679569833033213037694652072243044255921418053347805113449718948834511775314375789348789986514257357764695119005371074501077956925879153816773367998010168337463035352852882106048465816422376808296056585503123477676793797534072952979077161795475996672
898 2113178124542660985409359139666066426075389304144486088511842836106695610226899437897669023550628751578697579973028514715529390238010742149002155913851758307633546735996020336674926070705705764212096931632844753616592113171006246955353587595068145905958154323590951993344
899 4226356249085321970818718279332132852150778608288972177023685672213391220453798875795338047101257503157395159946057029431058780476021484298004311827703516615267093471992040673349852141411411528424193863265689507233184226342012493910707175190136291811916308647181903986688
900 8452712498170643941637436558664265704301557216577944354047371344426782440907597751590676094202515006314790319892114058862117560952042968596008623655407033230534186943984081346699704282822823056848387726531379014466368452684024987821414350380272583623832617294363807973376
901 16905424996341287883274873117328531408603114433155888708094742688853564881815195503181352188405030012629580639784228117724235121904085937192017247310814066461068373887968162693399408565645646113696775453062758028932736905368049975642828700760545167247665234588727615946752
902 33810849992682575766549746234657062817206228866311777416189485377707129763630391006362704376810060025259161279568456235448470243808171874384034494621628132922136747775936325386798817131291292227393550906125516057865473810736099951285657401521090334495330469177455231893504
903 67621699985365151533099492469314125634412457732623554832378970755414259527260782012725408753620120050518322559136912470896940487616343748768068989243256265844273495551872650773597634262582584454787101812251032115730947621472199902571314803042180668990660938354910463787008
904 135243399970730303066198984938628251268824915465247109664757941510828519054521564025450817507240240101036645118273824941793880975232687497536137978486512531688546991103745301547195268525165168909574203624502064231461895242944399805142629606084361337981321876709820927574016
905 270486799941460606132397969877256502537649830930494219329515883021657038109043128050901635014480480202073290236547649883587761950465374995072275956973025063377093982207490603094390537050330337819148407249004128462923790485888799610285259212168722675962643753419641855148032
906 540973599882921212264795939754513005075299661860988438659031766043314076218086256101803270028960960404146580473095299767175523900930749990144551913946050126754187964414981206188781074100660675638296814498008256925847580971777599220570518424337445351925287506839283710296064
907 1081947199765842424529591879509026010150599323721976877318063532086628152436172512203606540057921920808293160946190599534351047801861499980289103827892100253508375928829962412377562148201321351276593628996016513851695161943555198441141036848674890703850575013678567420592128
908 2163894399531684849059183759018052020301198647443953754636127064173256304872345024407213080115843841616586321892381199068702095603722999960578207655784200507016751857659924824755124296402642702553187257992033027703390323887110396882282073697349781407701150027357134841184256
909 4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512
910 8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024
911 17311155196253478792473470072144416162409589179551630037089016513386050438978760195257704640926750732932690575139049592549616764829783999684625661246273604056134014861279398598040994371221141620425498063936264221627122591096883175058256589578798251261609200218857078729474048
912 34622310392506957584946940144288832324819178359103260074178033026772100877957520390515409281853501465865381150278099185099233529659567999369251322492547208112268029722558797196081988742442283240850996127872528443254245182193766350116513179157596502523218400437714157458948096
913 69244620785013915169893880288577664649638356718206520148356066053544201755915040781030818563707002931730762300556198370198467059319135998738502644985094416224536059445117594392163977484884566481701992255745056886508490364387532700233026358315193005046436800875428314917896192
914 138489241570027830339787760577155329299276713436413040296712132107088403511830081562061637127414005863461524601112396740396934118638271997477005289970188832449072118890235188784327954969769132963403984511490113773016980728775065400466052716630386010092873601750856629835792384
915 276978483140055660679575521154310658598553426872826080593424264214176807023660163124123274254828011726923049202224793480793868237276543994954010579940377664898144237780470377568655909939538265926807969022980227546033961457550130800932105433260772020185747203501713259671584768
916 553956966280111321359151042308621317197106853745652161186848528428353614047320326248246548509656023453846098404449586961587736474553087989908021159880755329796288475560940755137311819879076531853615938045960455092067922915100261601864210866521544040371494407003426519343169536
917 1107913932560222642718302084617242634394213707491304322373697056856707228094640652496493097019312046907692196808899173923175472949106175979816042319761510659592576951121881510274623639758153063707231876091920910184135845830200523203728421733043088080742988814006853038686339072
918 2215827865120445285436604169234485268788427414982608644747394113713414456189281304992986194038624093815384393617798347846350945898212351959632084639523021319185153902243763020549247279516306127414463752183841820368271691660401046407456843466086176161485977628013706077372678144
919 4431655730240890570873208338468970537576854829965217289494788227426828912378562609985972388077248187630768787235596695692701891796424703919264169279046042638370307804487526041098494559032612254828927504367683640736543383320802092814913686932172352322971955256027412154745356288
920 8863311460481781141746416676937941075153709659930434578989576454853657824757125219971944776154496375261537574471193391385403783592849407838528338558092085276740615608975052082196989118065224509657855008735367281473086766641604185629827373864344704645943910512054824309490712576
921 17726622920963562283492833353875882150307419319860869157979152909707315649514250439943889552308992750523075148942386782770807567185698815677056677116184170553481231217950104164393978236130449019315710017470734562946173533283208371259654747728689409291887821024109648618981425152
922 35453245841927124566985666707751764300614838639721738315958305819414631299028500879887779104617985501046150297884773565541615134371397631354113354232368341106962462435900208328787956472260898038631420034941469125892347066566416742519309495457378818583775642048219297237962850304
923 70906491683854249133971333415503528601229677279443476631916611638829262598057001759775558209235971002092300595769547131083230268742795262708226708464736682213924924871800416657575912944521796077262840069882938251784694133132833485038618990914757637167551284096438594475925700608
924 141812983367708498267942666831007057202459354558886953263833223277658525196114003519551116418471942004184601191539094262166460537485590525416453416929473364427849849743600833315151825889043592154525680139765876503569388266265666970077237981829515274335102568192877188951851401216
925 283625966735416996535885333662014114404918709117773906527666446555317050392228007039102232836943884008369202383078188524332921074971181050832906833858946728855699699487201666630303651778087184309051360279531753007138776532531333940154475963659030548670205136385754377903702802432
926 567251933470833993071770667324028228809837418235547813055332893110634100784456014078204465673887768016738404766156377048665842149942362101665813667717893457711399398974403333260607303556174368618102720559063506014277553065062667880308951927318061097340410272771508755807405604864
927 1134503866941667986143541334648056457619674836471095626110665786221268201568912028156408931347775536033476809532312754097331684299884724203331627335435786915422798797948806666521214607112348737236205441118127012028555106130125335760617903854636122194680820545543017511614811209728
928 2269007733883335972287082669296112915239349672942191252221331572442536403137824056312817862695551072066953619064625508194663368599769448406663254670871573830845597595897613333042429214224697474472410882236254024057110212260250671521235807709272244389361641091086035023229622419456
929 4538015467766671944574165338592225830478699345884382504442663144885072806275648112625635725391102144133907238129251016389326737199538896813326509341743147661691195191795226666084858428449394948944821764472508048114220424520501343042471615418544488778723282182172070046459244838912
930 9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824
931 18152061871066687778296661354368903321914797383537530017770652579540291225102592450502542901564408576535628952517004065557306948798155587253306037366972590646764780767180906664339433713797579795779287057890032192456881698082005372169886461674177955114893128728688280185836979355648
932 36304123742133375556593322708737806643829594767075060035541305159080582450205184901005085803128817153071257905034008131114613897596311174506612074733945181293529561534361813328678867427595159591558574115780064384913763396164010744339772923348355910229786257457376560371673958711296
933 72608247484266751113186645417475613287659189534150120071082610318161164900410369802010171606257634306142515810068016262229227795192622349013224149467890362587059123068723626657357734855190319183117148231560128769827526792328021488679545846696711820459572514914753120743347917422592
934 145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184
935 290432989937067004452746581669902453150636758136600480284330441272644659601641479208040686425030537224570063240272065048916911180770489396052896597871561450348236492274894506629430939420761276732468592926240515079310107169312085954718183386786847281838290059659012482973391669690368
936 580865979874134008905493163339804906301273516273200960568660882545289319203282958416081372850061074449140126480544130097833822361540978792105793195743122900696472984549789013258861878841522553464937185852481030158620214338624171909436366773573694563676580119318024965946783339380736
937 1161731959748268017810986326679609812602547032546401921137321765090578638406565916832162745700122148898280252961088260195667644723081957584211586391486245801392945969099578026517723757683045106929874371704962060317240428677248343818872733547147389127353160238636049931893566678761472
938 2323463919496536035621972653359219625205094065092803842274643530181157276813131833664325491400244297796560505922176520391335289446163915168423172782972491602785891938199156053035447515366090213859748743409924120634480857354496687637745467094294778254706320477272099863787133357522944
939 4646927838993072071243945306718439250410188130185607684549287060362314553626263667328650982800488595593121011844353040782670578892327830336846345565944983205571783876398312106070895030732180427719497486819848241268961714708993375275490934188589556509412640954544199727574266715045888
940 9293855677986144142487890613436878500820376260371215369098574120724629107252527334657301965600977191186242023688706081565341157784655660673692691131889966411143567752796624212141790061464360855438994973639696482537923429417986750550981868377179113018825281909088399455148533430091776
941 18587711355972288284975781226873757001640752520742430738197148241449258214505054669314603931201954382372484047377412163130682315569311321347385382263779932822287135505593248424283580122928721710877989947279392965075846858835973501101963736754358226037650563818176798910297066860183552
942 37175422711944576569951562453747514003281505041484861476394296482898516429010109338629207862403908764744968094754824326261364631138622642694770764527559865644574271011186496848567160245857443421755979894558785930151693717671947002203927473508716452075301127636353597820594133720367104
943 74350845423889153139903124907495028006563010082969722952788592965797032858020218677258415724807817529489936189509648652522729262277245285389541529055119731289148542022372993697134320491714886843511959789117571860303387435343894004407854947017432904150602255272707195641188267440734208
944 148701690847778306279806249814990056013126020165939445905577185931594065716040437354516831449615635058979872379019297305045458524554490570779083058110239462578297084044745987394268640983429773687023919578235143720606774870687788008815709894034865808301204510545414391282376534881468416
945 297403381695556612559612499629980112026252040331878891811154371863188131432080874709033662899231270117959744758038594610090917049108981141558166116220478925156594168089491974788537281966859547374047839156470287441213549741375576017631419788069731616602409021090828782564753069762936832
946 594806763391113225119224999259960224052504080663757783622308743726376262864161749418067325798462540235919489516077189220181834098217962283116332232440957850313188336178983949577074563933719094748095678312940574882427099482751152035262839576139463233204818042181657565129506139525873664
947 1189613526782226450238449998519920448105008161327515567244617487452752525728323498836134651596925080471838979032154378440363668196435924566232664464881915700626376672357967899154149127867438189496191356625881149764854198965502304070525679152278926466409636084363315130259012279051747328
948 2379227053564452900476899997039840896210016322655031134489234974905505051456646997672269303193850160943677958064308756880727336392871849132465328929763831401252753344715935798308298255734876378992382713251762299529708397931004608141051358304557852932819272168726630260518024558103494656
949 4758454107128905800953799994079681792420032645310062268978469949811010102913293995344538606387700321887355916128617513761454672785743698264930657859527662802505506689431871596616596511469752757984765426503524599059416795862009216282102716609115705865638544337453260521036049116206989312
950 9516908214257811601907599988159363584840065290620124537956939899622020205826587990689077212775400643774711832257235027522909345571487396529861315719055325605011013378863743193233193022939505515969530853007049198118833591724018432564205433218231411731277088674906521042072098232413978624
951 19033816428515623203815199976318727169680130581240249075913879799244040411653175981378154425550801287549423664514470055045818691142974793059722631438110651210022026757727486386466386045879011031939061706014098396237667183448036865128410866436462823462554177349813042084144196464827957248
952 38067632857031246407630399952637454339360261162480498151827759598488080823306351962756308851101602575098847329028940110091637382285949586119445262876221302420044053515454972772932772091758022063878123412028196792475334366896073730256821732872925646925108354699626084168288392929655914496
953 76135265714062492815260799905274908678720522324960996303655519196976161646612703925512617702203205150197694658057880220183274764571899172238890525752442604840088107030909945545865544183516044127756246824056393584950668733792147460513643465745851293850216709399252168336576785859311828992
954 152270531428124985630521599810549817357441044649921992607311038393952323293225407851025235404406410300395389316115760440366549529143798344477781051504885209680176214061819891091731088367032088255512493648112787169901337467584294921027286931491702587700433418798504336673153571718623657984
955 304541062856249971261043199621099634714882089299843985214622076787904646586450815702050470808812820600790778632231520880733099058287596688955562103009770419360352428123639782183462176734064176511024987296225574339802674935168589842054573862983405175400866837597008673346307143437247315968
956 609082125712499942522086399242199269429764178599687970429244153575809293172901631404100941617625641201581557264463041761466198116575193377911124206019540838720704856247279564366924353468128353022049974592451148679605349870337179684109147725966810350801733675194017346692614286874494631936
957 1218164251424999885044172798484398538859528357199375940858488307151618586345803262808201883235251282403163114528926083522932396233150386755822248412039081677441409712494559128733848706936256706044099949184902297359210699740674359368218295451933620701603467350388034693385228573748989263872
958 2436328502849999770088345596968797077719056714398751881716976614303237172691606525616403766470502564806326229057852167045864792466300773511644496824078163354882819424989118257467697413872513412088199898369804594718421399481348718736436590903867241403206934700776069386770457147497978527744
959 4872657005699999540176691193937594155438113428797503763433953228606474345383213051232807532941005129612652458115704334091729584932601547023288993648156326709765638849978236514935394827745026824176399796739609189436842798962697437472873181807734482806413869401552138773540914294995957055488
960 9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976
961 19490628022799998160706764775750376621752453715190015053735812914425897381532852204931230131764020518450609832462817336366918339730406188093155974592625306839062555399912946059741579310980107296705599186958436757747371195850789749891492727230937931225655477606208555094163657179983828221952
962 38981256045599996321413529551500753243504907430380030107471625828851794763065704409862460263528041036901219664925634672733836679460812376186311949185250613678125110799825892119483158621960214593411198373916873515494742391701579499782985454461875862451310955212417110188327314359967656443904
963 77962512091199992642827059103001506487009814860760060214943251657703589526131408819724920527056082073802439329851269345467673358921624752372623898370501227356250221599651784238966317243920429186822396747833747030989484783403158999565970908923751724902621910424834220376654628719935312887808
964 155925024182399985285654118206003012974019629721520120429886503315407179052262817639449841054112164147604878659702538690935346717843249504745247796741002454712500443199303568477932634487840858373644793495667494061978969566806317999131941817847503449805243820849668440753309257439870625775616
965 311850048364799970571308236412006025948039259443040240859773006630814358104525635278899682108224328295209757319405077381870693435686499009490495593482004909425000886398607136955865268975681716747289586991334988123957939133612635998263883635695006899610487641699336881506618514879741251551232
966 623700096729599941142616472824012051896078518886080481719546013261628716209051270557799364216448656590419514638810154763741386871372998018980991186964009818850001772797214273911730537951363433494579173982669976247915878267225271996527767271390013799220975283398673763013237029759482503102464
967 1247400193459199882285232945648024103792157037772160963439092026523257432418102541115598728432897313180839029277620309527482773742745996037961982373928019637700003545594428547823461075902726866989158347965339952495831756534450543993055534542780027598441950566797347526026474059518965006204928
968 2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856
969 4989600773836799529140931782592096415168628151088643853756368106093029729672410164462394913731589252723356117110481238109931094970983984151847929495712078550800014182377714191293844303610907467956633391861359809983327026137802175972222138171120110393767802267189390104105896238075860024819712
970 9979201547673599058281863565184192830337256302177287707512736212186059459344820328924789827463178505446712234220962476219862189941967968303695858991424157101600028364755428382587688607221814935913266783722719619966654052275604351944444276342240220787535604534378780208211792476151720049639424
971 19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848
972 39916806190694396233127454260736771321349025208709150830050944848744237837379281315699159309852714021786848936883849904879448759767871873214783435965696628406400113459021713530350754428887259743653067134890878479866616209102417407777777105368960883150142418137515120832847169904606880198557696
973 79833612381388792466254908521473542642698050417418301660101889697488475674758562631398318619705428043573697873767699809758897519535743746429566871931393256812800226918043427060701508857774519487306134269781756959733232418204834815555554210737921766300284836275030241665694339809213760397115392
974 159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784
975 319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568
976 638668899051110339730039268171788341141584403339346413280815117579907805398068501051186548957643424348589582990141598478071180156285949971436534975451146054502401815344347416485612070862196155898449074158254055677865859345638678524444433685903374130402278690200241933325554718473710083176923136
977 1277337798102220679460078536343576682283168806678692826561630235159815610796137002102373097915286848697179165980283196956142360312571899942873069950902292109004803630688694832971224141724392311796898148316508111355731718691277357048888867371806748260804557380400483866651109436947420166353846272
978 2554675596204441358920157072687153364566337613357385653123260470319631221592274004204746195830573697394358331960566393912284720625143799885746139901804584218009607261377389665942448283448784623593796296633016222711463437382554714097777734743613496521609114760800967733302218873894840332707692544
979 5109351192408882717840314145374306729132675226714771306246520940639262443184548008409492391661147394788716663921132787824569441250287599771492279803609168436019214522754779331884896566897569247187592593266032445422926874765109428195555469487226993043218229521601935466604437747789680665415385088
980 10218702384817765435680628290748613458265350453429542612493041881278524886369096016818984783322294789577433327842265575649138882500575199542984559607218336872038429045509558663769793133795138494375185186532064890845853749530218856391110938974453986086436459043203870933208875495579361330830770176
981 20437404769635530871361256581497226916530700906859085224986083762557049772738192033637969566644589579154866655684531151298277765001150399085969119214436673744076858091019117327539586267590276988750370373064129781691707499060437712782221877948907972172872918086407741866417750991158722661661540352
982 40874809539271061742722513162994453833061401813718170449972167525114099545476384067275939133289179158309733311369062302596555530002300798171938238428873347488153716182038234655079172535180553977500740746128259563383414998120875425564443755897815944345745836172815483732835501982317445323323080704
983 81749619078542123485445026325988907666122803627436340899944335050228199090952768134551878266578358316619466622738124605193111060004601596343876476857746694976307432364076469310158345070361107955001481492256519126766829996241750851128887511795631888691491672345630967465671003964634890646646161408
984 163499238157084246970890052651977815332245607254872681799888670100456398181905536269103756533156716633238933245476249210386222120009203192687752953715493389952614864728152938620316690140722215910002962984513038253533659992483501702257775023591263777382983344691261934931342007929269781293292322816
985 326998476314168493941780105303955630664491214509745363599777340200912796363811072538207513066313433266477866490952498420772444240018406385375505907430986779905229729456305877240633380281444431820005925969026076507067319984967003404515550047182527554765966689382523869862684015858539562586584645632
986 653996952628336987883560210607911261328982429019490727199554680401825592727622145076415026132626866532955732981904996841544888480036812770751011814861973559810459458912611754481266760562888863640011851938052153014134639969934006809031100094365055109531933378765047739725368031717079125173169291264
987 1307993905256673975767120421215822522657964858038981454399109360803651185455244290152830052265253733065911465963809993683089776960073625541502023629723947119620918917825223508962533521125777727280023703876104306028269279939868013618062200188730110219063866757530095479450736063434158250346338582528
988 2615987810513347951534240842431645045315929716077962908798218721607302370910488580305660104530507466131822931927619987366179553920147251083004047259447894239241837835650447017925067042251555454560047407752208612056538559879736027236124400377460220438127733515060190958901472126868316500692677165056
989 5231975621026695903068481684863290090631859432155925817596437443214604741820977160611320209061014932263645863855239974732359107840294502166008094518895788478483675671300894035850134084503110909120094815504417224113077119759472054472248800754920440876255467030120381917802944253736633001385354330112
990 10463951242053391806136963369726580181263718864311851635192874886429209483641954321222640418122029864527291727710479949464718215680589004332016189037791576956967351342601788071700268169006221818240189631008834448226154239518944108944497601509840881752510934060240763835605888507473266002770708660224
991 20927902484106783612273926739453160362527437728623703270385749772858418967283908642445280836244059729054583455420959898929436431361178008664032378075583153913934702685203576143400536338012443636480379262017668896452308479037888217888995203019681763505021868120481527671211777014946532005541417320448
992 41855804968213567224547853478906320725054875457247406540771499545716837934567817284890561672488119458109166910841919797858872862722356017328064756151166307827869405370407152286801072676024887272960758524035337792904616958075776435777990406039363527010043736240963055342423554029893064011082834640896
993 83711609936427134449095706957812641450109750914494813081542999091433675869135634569781123344976238916218333821683839595717745725444712034656129512302332615655738810740814304573602145352049774545921517048070675585809233916151552871555980812078727054020087472481926110684847108059786128022165669281792
994 167423219872854268898191413915625282900219501828989626163085998182867351738271269139562246689952477832436667643367679191435491450889424069312259024604665231311477621481628609147204290704099549091843034096141351171618467832303105743111961624157454108040174944963852221369694216119572256044331338563584
995 334846439745708537796382827831250565800439003657979252326171996365734703476542538279124493379904955664873335286735358382870982901778848138624518049209330462622955242963257218294408581408199098183686068192282702343236935664606211486223923248314908216080349889927704442739388432239144512088662677127168
996 669692879491417075592765655662501131600878007315958504652343992731469406953085076558248986759809911329746670573470716765741965803557696277249036098418660925245910485926514436588817162816398196367372136384565404686473871329212422972447846496629816432160699779855408885478776864478289024177325354254336
997 1339385758982834151185531311325002263201756014631917009304687985462938813906170153116497973519619822659493341146941433531483931607115392554498072196837321850491820971853028873177634325632796392734744272769130809372947742658424845944895692993259632864321399559710817770957553728956578048354650708508672
998 2678771517965668302371062622650004526403512029263834018609375970925877627812340306232995947039239645318986682293882867062967863214230785108996144393674643700983641943706057746355268651265592785469488545538261618745895485316849691889791385986519265728642799119421635541915107457913156096709301417017344
999 5357543035931336604742125245300009052807024058527668037218751941851755255624680612465991894078479290637973364587765734125935726428461570217992288787349287401967283887412115492710537302531185570938977091076523237491790970633699383779582771973038531457285598238843271083830214915826312193418602834034688
1000 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376







#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>

typedef union _ip_address{
	struct in6_addr addr;
	unsigned int st[4];
}ip_address_t;

/*
	ipv6地址最大为128位,最大值应该是2^128-1,结果为39位,
	基本算法是每十位为一组,每组单独运算,最后得到十进制值。
	
	首先记录2的0到128次幂值,将值每十位一组,计算的时候,只需要计算出
	二进制的第几位是1,按次幂相加即可,如1001,则为2^3+2^0.

*/

unsigned long bin_table[129][4] = {\
0, 0, 0, 1,\
0, 0, 0, 2,\
0, 0, 0, 4,\
0, 0, 0, 8,\
0, 0, 0, 16,\
0, 0, 0, 32,\
0, 0, 0, 64,\
0, 0, 0, 128,\
0, 0, 0, 256,\
0, 0, 0, 512,\
0, 0, 0, 1024,\
0, 0, 0, 2048,\
0, 0, 0, 4096,\
0, 0, 0, 8192,\
0, 0, 0, 16384,\
0, 0, 0, 32768,\
0, 0, 0, 65536,\
0, 0, 0, 131072,\
0, 0, 0, 262144,\
0, 0, 0, 524288,\
0, 0, 0, 1048576,\
0, 0, 0, 2097152,\
0, 0, 0, 4194304,\
0, 0, 0, 8388608,\
0, 0, 0, 16777216,\
0, 0, 0, 33554432,\
0, 0, 0, 67108864,\
0, 0, 0, 134217728,\
0, 0, 0, 268435456,\
0, 0, 0, 536870912,\
0, 0, 0, 1073741824,\
0, 0, 0, 2147483648,\
0, 0, 0, 4294967296,\
0, 0, 0, 8589934592,\
0, 0, 1, 7179869184,\
0, 0, 3, 4359738368,\
0, 0, 6, 8719476736,\
0, 0, 13, 7438953472,\
0, 0, 27, 4877906944,\
0, 0, 54, 9755813888,\
0, 0, 109, 9511627776,\
0, 0, 219, 9023255552,\
0, 0, 439, 8046511104,\
0, 0, 879, 6093022208,\
0, 0, 1759, 2186044416,\
0, 0, 3518, 4372088832,\
0, 0, 7036, 8744177664,\
0, 0, 14073, 7488355328,\
0, 0, 28147, 4976710656,\
0, 0, 56294, 9953421312,\
0, 0, 112589, 9906842624,\
0, 0, 225179, 9813685248,\
0, 0, 450359, 9627370496,\
0, 0, 900719, 9254740992,\
0, 0, 1801439, 8509481984,\
0, 0, 3602879, 7018963968,\
0, 0, 7205759, 4037927936,\
0, 0, 14411518, 8075855872,\
0, 0, 28823037, 6151711744,\
0, 0, 57646075, 2303423488,\
0, 0, 115292150, 4606846976,\
0, 0, 230584300, 9213693952,\
0, 0, 461168601, 8427387904,\
0, 0, 922337203, 6854775808,\
0, 0, 1844674407, 3709551616,\
0, 0, 3689348814, 7419103232,\
0, 0, 7378697629, 4838206464,\
0, 1, 4757395258, 9676412928,\
0, 2, 9514790517, 9352825856,\
0, 5, 9029581035, 8705651712,\
0, 11, 8059162071, 7411303424,\
0, 23, 6118324143, 4822606848,\
0, 47, 2236648286, 9645213696,\
0, 94, 4473296573, 9290427392,\
0, 188, 8946593147, 8580854784,\
0, 377, 7893186295, 7161709568,\
0, 755, 5786372591, 4323419136,\
0, 1511, 1572745182, 8646838272,\
0, 3022, 3145490365, 7293676544,\
0, 6044, 6290980731, 4587353088,\
0, 12089, 2581961462, 9174706176,\
0, 24178, 5163922925, 8349412352,\
0, 48357, 327845851, 6698824704,\
0, 96714, 655691703, 3397649408,\
0, 193428, 1311383406, 6795298816,\
0, 386856, 2622766813, 3590597632,\
0, 773712, 5245533626, 7181195264,\
0, 1547425, 491067253, 4362390528,\
0, 3094850, 982134506, 8724781056,\
0, 6189700, 1964269013, 7449562112,\
0, 12379400, 3928538027, 4899124224,\
0, 24758800, 7857076054, 9798248448,\
0, 49517601, 5714152109, 9596496896,\
0, 99035203, 1428304219, 9192993792,\
0, 198070406, 2856608439, 8385987584,\
0, 396140812, 5713216879, 6771975168,\
0, 792281625, 1426433759, 3543950336,\
0, 1584563250, 2852867518, 7087900672,\
0, 3169126500, 5705735037, 4175801344,\
0, 6338253001, 1411470074, 8351602688,\
1, 2676506002, 2822940149, 6703205376,\
2, 5353012004, 5645880299, 3406410752,\
5, 706024009, 1291760598, 6812821504,\
10, 1412048018, 2583521197, 3625643008,\
20, 2824096036, 5167042394, 7251286016,\
40, 5648192073, 334084789, 4502572032,\
81, 1296384146, 668169578, 9005144064,\
162, 2592768292, 1336339157, 8010288128,\
324, 5185536584, 2672678315, 6020576256,\
649, 371073168, 5345356631, 2041152512,\
1298, 742146337, 690713262, 4082305024,\
2596, 1484292674, 1381426524, 8164610048,\
5192, 2968585348, 2762853049, 6329220096,\
10384, 5937170696, 5525706099, 2658440192,\
20769, 1874341393, 1051412198, 5316880384,\
41538, 3748682786, 2102824397, 633760768,\
83076, 7497365572, 4205648794, 1267521536,\
166153, 4994731144, 8411297588, 2535043072,\
332306, 9989462289, 6822595176, 5070086144,\
664613, 9978924579, 3645190353, 140172288,\
1329227, 9957849158, 7290380706, 280344576,\
2658455, 9915698317, 4580761412, 560689152,\
5316911, 9831396634, 9161522824, 1121378304,\
10633823, 9662793269, 8323045648, 2242756608,\
21267647, 9325586539, 6646091296, 4485513216,\
42535295, 8651173079, 3292182592, 8971026432,\
85070591, 7302346158, 6584365185, 7942052864,\
170141183, 4604692317, 3168730371, 5884105728,\
340282366, 9209384634, 6337460743, 1768211456
};

int main(int argc, char *argv[])
{
	int i = 0;
	int j = 0;
	unsigned int ori[4] = {0};
	unsigned long result[4] = {0};
	ip_address_t address1;
	if (1 != inet_pton(AF_INET6, argv[1], &address1.addr))
		printf("sorry\n");
		
	/*字节序切换*/
	ori[0] = ntohl(address1.st[0]);
	ori[1] = ntohl(address1.st[1]);
	ori[2] = ntohl(address1.st[2]);
	ori[3] = ntohl(address1.st[3]);
	
	for(j=0; j<4; j++)
	for(i=0; i<32; i++){
		unsigned int ooo = ori[j] << i;//首先左移,去掉目的位之前的非零值
		if (ooo>>31){//右移得到目的为是否为1
			result[0] += bin_table[127-j*32-i][0];
			result[1] += bin_table[127-j*32-i][1];
			result[2] += bin_table[127-j*32-i][2];
			result[3] += bin_table[127-j*32-i][3];
		}
	}

	/*每十位为一组,有可能加法运算后有进位,需要计算进位值加到下一组*/
	result[2] += result[3]/10000000000;
	result[3] = result[3]%10000000000;
	result[1] += result[2]/10000000000;
	result[2] = result[2]%10000000000;
	result[0] += result[1]/10000000000;
	result[1] = result[1]%10000000000;

	/*
		打印十进制值
		注意两种情况未处理1、前面组的值如果为0,不需要打印,如:0,0,0,1234567890只需打印1234567890即可
						  2、每组不足10位,需补零打印出来,如:0,1,1234,1234567890打印为10000001234123456790
	*/
	printf("result = %lu,%lu,%lu,%lu\n", result[0], result[1], result[2], result[3]);
	return 0;
}



http://www.beaconaut.com/Downloads.aspx

你可能感兴趣的:(2的次幂 -- 程序员大数计算必备)