[ create a new paste ] login | about

Link: http://codepad.org/T06BWcCy    [ raw code | output | fork ]

C++, pasted on Jul 15:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
#define N 2000
#define BUFF10 20000
#define BIT 31
#define MASK 0x7fffffff

#define SIGN(x) (((x) >> (BIT - 1)) ? 1 : 0)
typedef unsigned int uintN[N];
 
void shift_div(int *mod, uintN q)
{
  int cy, i;
 
  cy = 0;
  for (i = 0; i < N; i++) {
    q[i] = q[i] << 1;
    if (cy)
      q[i] = q[i] | 0x01;
    cy = (q[i] >> BIT);
    q[i] = q[i] & MASK;
  }
  *mod = *mod << 1;
  if (cy)
    *mod = *mod | 0x01;
}
 
void copy_uintN(uintN a, uintN b)
{
  int i;
  for (i = 0; i < N; i++)
    a[i] = b[i];
}
 
void clear_uintN(uintN n)
{
  int i;
  for (i = 0; i < N; i++)
    n[i] = 0;
}
 
void output2(uintN n)
{
  int i;
  unsigned int j;
  for (i = N - 1; i >= 0; --i) {
    for (j = 0x8000; j > 0; j = (j >> 1)) {
      putchar((n[i] & j) ? '1' : '0');
    }
    putchar(' ');
  }
  putchar('\n');
}
 
void div10(uintN n, uintN q, int *mod)
{
  int i;
  copy_uintN(q, n);
  *mod = 0;
  for (i = 0; i < N * BIT; i++) {
    shift_div(mod, q);
    if (*mod >= 10) {
      q[0] = q[0] | 0x01;
      *mod = *mod - 10;
    }
  }
}
 
int iszero_uintN(uintN n)
{
  int i;
  for (i = 0; i < N; i++)
    if (n[i] != 0)
      return 0;
  return 1;
}
 
void add_uintN(uintN c, uintN a, uintN b)
{
  int i, cy;
  unsigned int s;
  cy = 0;
  for (i = 0; i < N; i++) {
    s = a[i] + b[i] + cy;
    cy = ((s >> BIT) > 0) ? 1 : 0;
    c[i] = s & MASK;
  }
}
 
void sub_uintN(uintN c, uintN a, uintN b)
{
  int i, br;
  unsigned int s;
  br = 0;
  for (i = 0; i < N; i++) {
    s = a[i] - b[i] - br;
    br = ((s >> BIT ) > 0) ? 1 : 0;
    c[i] = s & MASK;
    
  }
}
 
void output10(uintN m)
{
  int mod10[BUFF10];
  uintN q, n;
  int i, mod;
 
  copy_uintN(n, m);
  for(i = 0;;) {
    div10(n, q, &mod);
    if (iszero_uintN(q) && mod == 0)
      break;
    mod10[i++] = mod;
    copy_uintN(n, q);
  }
  i--;
  if (i < 0) {
/*     printf("0\n"); */
    putchar('0');
    return;
  }
  for (;i >= 0; --i)
    putchar('0' + mod10[i]);
/*   putchar('\n'); */
}
 
void mul10(uintN n)
{
  int i;
  uintN tmp1;
 
  copy_uintN(tmp1, n);
  for (i = 0; i < 9; i++) {
    add_uintN(tmp1, tmp1, n);
  }
  copy_uintN(n, tmp1);
}  
 
void input10(uintN n, char *p)
{
  uintN tmp2;
 
  clear_uintN(n);
  for (;*p != '\0'; p++) {
    clear_uintN(tmp2);
    tmp2[0] = *p - '0';
    mul10(n);
    add_uintN(n, n, tmp2);
  }
}
 

int shift_mul(uintN n)
{
  int cy, i;
 
  cy = 0;
  for (i = 0; i < N; i++) {
    n[i] = n[i] << 1;
    if (cy)
      n[i] = n[i] | 0x01;
    cy = (n[i] >> BIT);
    n[i] = n[i] & MASK;
  }
  return cy;
}

#if 0
void mul_uintN(uintN p, uintN a, uintN b)
{
  uintN s;
  int i, cy; 
 
  clear_uintN(p);
  clear_uintN(s);
  for (i = 0; i < N * BIT; i++) {
    cy = shift_mul(b);
    if (cy)
      add_uintN(s, p, a);
    if (i < N * BIT - 1)
      shift_mul(s);
    copy_uintN(p, s);
  }
}
#endif

int shift_mul2(uintN n)
{
  int cy1, cy2, i;
 
  for (i = N - 1; n[i] == 0; --i)
    ;
  cy1 = cy2 = 0;
  for (; i >= 0; --i) {
    if (n[i] & 1) cy1 = 1; else cy1 = 0;
    if (cy2)
      n[i] = n[i] | (MASK + 1);
    n[i] = n[i] >> 1;
    cy2 = cy1;

  }
  return cy2;
}

void mul_uintN(uintN p, uintN a, uintN b) {
  uintN s;
  int i, cy;
  clear_uintN(p);
  clear_uintN(s);
  for (i = N * BIT; i > 0; i--) {
    if(iszero_uintN(b))
      goto shift;
    if(shift_mul2(b)) {
      add_uintN(s, a, s);
    }
    cy = shift_mul2(s);
    if (cy)
      p[N - 1] = p[N - 1] | (MASK + 1);
    shift_mul2(p);
  }    
  return;
shift:
  while (i > 0) {
    cy = shift_mul2(s);
    if (cy)
      p[N - 1] = p[N - 1] | (MASK + 1);
    shift_mul2(p); 
    --i;
  }
  return;
}

int greater_uintN(uintN a, uintN b)
{
  uintN x, y;
  int cy1, cy2, i;
  copy_uintN(x, a);
  copy_uintN(y, b);
  i = 0;
  for(;;) {
    i++;
    if (i >= BIT * N)
      break;
    cy1 = shift_mul(x);
    cy2 = shift_mul(y);
    if (cy1 > cy2)
      return 1;
    if (cy1 < cy2)
      return -1;
  }
  return 0;
}
 
void div_uintN(uintN q, uintN a, uintN b)
{
  int i, cy;
  uintN mod, x;
 
  copy_uintN(x, a);
  clear_uintN(mod);
  for (i = 0; i < N * BIT; i++) {
    cy = shift_mul(x);
    if (cy)
      mod[0] = mod[0] | 0x01;
    if (greater_uintN(mod, b) >= 0) {
      x[0] = x[0] | 0x01;
      sub_uintN(mod, mod, b);
    }
    shift_mul(mod);
  }
  copy_uintN(q, x);
}
 
/*---------------------------------------------------------*/
#define M 5000
int main(int argc, char *argv[]) {

  uintN p, x, t;
  int n;
  clear_uintN(p);
  p[0] = 1;
  for (n = 1; n <= M; n++) {
/*    clear_uintN(x); */
    x[0] = n;
    mul_uintN(t, p, x);
    copy_uintN(p, t);
    printf("%d\n", n);
  }
  output10(p);
  return 0;
}
/* end */
/*
42285779266055435222010642002335844053907866746266467488497824021813580527081082
00690899047871706387537084746657300685445878486066683812736337210893772787631279
39036305846216064390447898698223987192970889621161265296832177550039924219683703
14690726447287878979040475488416221522667192841096923691044956597173635294840022
38403811206448202308576711045023061748947554283097617817240408053248099278093287
84055486199364548291211876258248802189173977900050213212598043639244626460770511
35884659510867547058583392465522558903547443598834738317898803463300845863151020
90915099356538200109330479657425567419309170551728052002360750859911976352287559
07902043369743123506916831211924495971556267407521462198986233088625998302859864
85757874944596311528697088671004626842364817898990545469086139161321834417414880
71862344481148312094903611965468727677556178868287202691048140924564103418359756
04276458161513178575901661071782544156980883359372729995603371371200471049437656
29114248860533529949964230069997220491812010081905943914067505326500477553385089
90979451015510914869070044071195723360262433681323302187092876991968066565697527
90422258267841561083376425781032629202687211070274681394351128601502326190649959
17189736417637843649121970910984094451489535895910380417694195665783482207174910
55127526391483811720526048269651626427100949193933326610301043605304591170145572
09584714353721948246686793467375904872268133410207860903657108806376616249749507
41310707740168218058594552644517140927746923006269751134604417456794673582878226
16295842486751573791729427241787831054298582451175755118845065744248275746608002
38588378492396247368761507015767725898321128632295537044902516387925127590841791
74464046691353104734798446499615459554201399631735747630174003679619291994219076
28954456562617670417995381611333873128235115341525813090879158836383516647972259
12944270653557142511737323807232632958121797916679692329687096923901003255574789
05509980748706104723064619598495523965761220867386651417169930755769189790267515
73420758647963453384468350859654907273263219105040642897130962245051620646694680
98869917122127404504020684923266241760132910227866687270305284709452526825496617
77249964520669983692591069089408263740104349837159112645582228060636139411534431
67717699343536642849282944364147696158819936613882555774877099370045947539078451
49034434521174560594039916268444697661821387470705325559577933196460996662145377
56493547416970856238921477322286550718249043001618614219276045230767062114296176
72747041236161072200097437586474927536651495321647808490751463300710166913134206
62882562618283865836983632108760710427516073348347788414796732427080410860761841
28188830711509898213533840661065214708704687476099542747367350945155359976904036
73533855510525716826503176824057439934148623923319814325791821933218989404508650
13610998098383993110996355981328001049731588596312131853801205046787642910669365
60043730563343198487904899852470129330078934453286815667976288049553284638602013
34802652798369463933849956750499937078147465615434389304313842378789818478028860
09971088695632988347711863122382785963653115132377931373647397429369411499028751
97222799954518261548829895115192668211245135531847220999043535594988729992203506
20398160110863762365397821723802378466506736245106350344231873153383082120438047
10999419227821039747552717416043890169723961305549371844836119803565896062025009
09366439936017200738361335440509432907247651890950250772467584198941222465939216
31163520381473624795285397320893095334219106357028055766297201565565107677808059
33453631121829561792887673002802450932122778852968418208261778476955644980385691
27578737267804095915871173397110316523267806079812760924617350412018266687426280
53852758439791676090077433807484207511851191029219603393762809867536650852128692
55321536787932521882574101866137054328973735862725370178558806639851350386944039
60492825882018041917807364969388580259775839889201438974716546597351085260570623
44020696370656601295357340435829614734272758056308395106673753492596595185756469
39723218275780003250593895303820539697558870511543073920827422440516299708739599
76846120624662909811236801257989128480250509402891695976507939543719131137931442
74051355996303756422145272943417972461875979640742391478389935415658347161568584
99036773056611353833367087548900413091981676330749041510337597307246885839246941
71554829573075061850588158195952899266022562690343957331345066697295211523066869
62279209477799743365744726734714089280714112838880826933773780772931041107675136
39476200610858040596019639058015761002337463869352228385801434957178125581445862
93004247940406573685986200791460459025541392995008804471038475899032654809733816
69405000854527237135713949024638203086685418028383175276680642784895610057558599
91718966786449154063570014497194249878920859731254275567514575206399118150736397
48310249079384172565342189427676911659815343008463708776951029541513655173467505
40152397060425717460010899684404988459854779779050316325684891565572310064997264
98721480800181770357701502983008879487243887718884416833034708723239505377642232
94409577321913758237167392470421672300225688313577923039468890066246618253265849
07244067670249395796972174674855629981831496656117439976804820941662574638796603
05171274925119226367615337524381656217330771650129520988754856467131862602387619
96433486796151440832890206108283318089122132585368285646991600795210516696045169
54306142123057430068772174071554732179575770175959676405638127291538675136987123
95570542350999228605975469962186195531354132139126436676900465429996811680550737
86677066598802706297250200188284588614534436877145536130441446561336909286274827
69819468364805509529686817587148599729730823329240947770852752799233048927196333
14751563311192746150389219290616780607901383451137066300684376267199885515143681
26613731991210323546978675642121062489900555356402292434583126423103836341678171
99083541404117177401859506066741983481433454442471914368282256543800478603905759
22417071802670646875454211626958746795398540784464654140381751149965273621123540
88016699028014903322513946083266817093071386882654997737428612778941778475268132
83718187591036421408817832207398080597142032853097214430418454591830028334087057
83138284973283761286182927136745161897366207237396132790944984014154408304074405
39306754076712618254759713084347031138981569536597178856402275067423740032362185
00947652675219419012413874782798834264708736168124853844440127725210500722793158
53096279121131160167772077952572613800240684421885453537121341902236379684012385
25528860718996772569422743332394859507557083906187745015965218441499815547610754
80080541923184369481917326314306035483997907833072676367290909807728273558543480
32260067472537097785464567761181807367424367391769863758072145859791485033700592
99496379336910028344455808983805401763540373713301931129308095828761210738037480
06602697678428883582657374865567858688220151430462496559957603797686853181923658
06469199584071845493606922169776137542662239658644989770921478134709127917460871
63022082198143465424506573126268308957903101289336078864410723018480540037313601
42162291591469920198841482900144143128009031021078333050902384357267794161772468
73411503598700003151092815700331081727415624680432977205070450456683898626301702
98930114536447741685673251233037647788174903605257260552068437061611653975513254
13693038677832672082273236642492064323630892687688266509396918616832717397574795
52993242406186992420363781929485368098035256331092448215269276219116259145886393
67703465348036788712613336711696822645091499705544852125975187008472002567465875
24039320610459030700394382520193831024809290196846024721712983216282379946271253
66359971898374425099120673688383738299653892030662843074547559074235345274029211
60609134632768474952204601040957560734815510167720318758008922449475292203109384
16615888235849939317451499143955573576415841854798317024285239654510875254254647
77294595230360946416541997797947136806344915998772409176443137371178542210740572
12116686869215324049008038420592119262287544089826147890812369895636708080468762
85244998974408556779694569090423405303559435246407516778739531139286986143472275
72144946891896093294375476741234907792754338349412323060078767610089949156126934
03892114837021719338761782337035892581711286956345000136761989714540098664346192
21976769759300105552251989130021230217808319343308804465929545521659118559392025
79781122952065357362914478404946474565003115498072056580360667380889572746464375
42805581932229930508928780687453740132710027442831792535500345153669317211208822
76039428097886457273069799712856495769343540040307284405817466483766584980399589
64243370183454151720285337810904113124462432903353964296651109482836884580127588
70129315609922504451812546011327498601447043775731388100131927612467611661483352
89355575031060184497889943782746138546517082416131676814639118700008128451443414
06739985430072772303758111613511094355614896323929750846383152930263582535361784
83755851966694997225193551595380720783861514213028445005179523976096843319829259
89216232235823963902625488568558754581983715590084478600867459457091181287932282
22051767509371866110013193625845223493949829511199280837860523506412769337548130
60959426446342507760114733420913912854162818317226214378306296240814939199718752
81063673488766784816023427432300271581924041876865458265193619906873368928867151
33840245486110982482004482721799496658712257174429044916781194824165631560303473
83331766512121805278079595822029833061194516401941331555037966298021535768073112
45305859159697099739880557435500832790718449597523535946443547896803721263445094
23070253995102864458237454677761013556916212309752286152053213998745673034127676
50336963668230666555205156249113252892615586386850310084918092050768065826591527
61637199286942583506048597322739492860802606406275213410078018151056237879262120
39424781833439433877206395801115809084190794320195178235740190546595990289617711
77619527035405119372722972224844208044009875036941127768659302213301062503186208
51450764210529805088371979860525577503039496061584428388468661375109684415673098
38079394349570013029265177957120625555851951313574029897589283475525334409858911
40069444930843287400501555433258779389508024112853875872594513640083832494447134
64368261481954060041148458702340729266977406313258786347906676982661815012561176
92275715291249164821702372884416357600996851100939411444677628186007072278522314
94104856439625579680822128993579926220855388922116476522085036770647649149613378
93537615373915691778222377448376141202533426225080073005134734227714273331063459
71803240244226950458090539326689103619381998838844036231795282435495362489670734
15594806768851532107306447607785962862785228365724456430644909627751717265695423
83929419584095272532816595725345314283896298940058865394868241171139296273569389
73482935854650278689437014798383826002058208853517073216288725214522205265969614
96214788484012900450773725242460507433966081818296029601919631412499853842201769
51103613805617010163577435425311486693699941309409083682200719364351119785927824
93491477052187226546109199597269439152400467901173602521030051886080337084840114
81024635128826398617008180488838075020352144834874084915471871447885780957451549
95050050707894288428884100278777774559811323199406241765321486863165817367744100
84063436959989519288310869124517866342559353458242589411390516469440377562665821
57784593682990967975454835051047363377083915103385463960275348640163520463388434
23467149356414291608568467248742447820551137591682364722977936129710803025309344
78115527737540458968990354808058309381267323593563098546564376209385371052808344
60718907600338878161801985327375949856691670470344843836350341636832526640322417
45194766781404283193274828518821403443193844454754567652534196591943321325854322
70070759038565239668227171300009189122050845185261514627937717597528852978637931
71121252952944332375791007290900170355876379861248028146309394439191695012933631
50452851635393128685864274372961094461012356048774398632996118997559659966087490
49271167685268675335991297583209089553296409523640116060078495005377892783750147
34412212377790772713414664740448983758948767542329454689935422034166996136669897
65299785807958990558640503885070831373330768397668824636809923552197272418317351
27646189112380485883115569477888101759708977682149644340317924443085170303692214
13762119438864198950836033930645903736184293702871075832196660754611376107636254
39286143162428907540210822336200123093847373122203742690338385799286785729394341
68287053763374091938184632261131740934278117918891642447513543478446040549455379
83455616335381586844169205451869891943417538666390033575676560326436376790672162
66203308784255451572081172463812515126698466858872090131448616325604610195133718
14585249988176629925142145014710206193190373671380347663431029705222414785030188
27510634744624125870793733908509575772431673506688509420876153616444044375586016
06258370913005741620652736709418886679645705507447247141370019681652159543806985
15999483361357521322106131884771926641942395351412233546746461491743013475866037
33817653260455740292547227936028892618938589969565687678301718687398876388762597
27439760628132634466476794136797261849333950746658204416779898066042039371166663
36696282569349097348391155869004856032512219241534268522369316036765491047702733
52154014316833887296840544329696768403607318243533622486543382359812354416751460
83407811666618587817339806241992545778534626780390399375578027599429572052810437
75666979396838109341118959475766220191217535093638985465283078692370662512323684
39023558763622832465716118371407880766116217951788797280184157201963908440026903
74503811927971703144898718150313199921115639083030172880126106420620053592402782
77393918026391717720136125984776933980647063763022608885359937595079088789081791
80219576803338196860512048710761087489841156874015995302063909813899326109553886
82640840121608310405259745392515764037328890867369483664047346227085600408916107
82221943405179794550155347682966855320097501905581419914591124181501062255627411
23157137735869719437413082202738384381594063857138791333759236233044045348723304
72406687841333330478989952552214688479738135680839956445330052225513201552677688
95412770329278670827490041172076663112783638152343547681663121189086864991380236
28177527594606121181334205479180161922034691276038190052801234397359827046149981
45113246181956585282320446582700820649346802515565112728220838115631922565099452
01222666603226059396247019707668580396286975551115189973049085051758765306785758
00066042406689417062030384678586025737063435259958688508867965400446518779020894
29351532173167501137380314660346424294890763222281337632999196413365020286272892
68087560036613770607463575515079087982099722660130472907825746908175451952405573
79131311317061732319159867397158837310816891696865770415069551294765238613481576
69675803647620052890602227445317443054984028630488508695577615286503260809411606
88570698894762046478500884303973107412774191961697450517110329082815201273888663
42263149214709022001694063650481204703601673860229067162981641119820226860796132
47395500575675645682047546190404230110623713673959956789408847059768595145050172
41517746017351430990972615509378334720000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000

from wolfram/alpha
422857792660554352220106420023358440539078667462664674884978240218135805270810820069089904787170638753708474665730068544587848606668381273633721089377278763127939036305846216064390447898698223987192970889621161265296832177550039924219683703146907264472878789790404754884162215226671928410969236910449565971736352948400223840381120644820230857671104502306174894755428309761781724040805324809927809328784055486199364548291211876258248802189173977900050213212598043639244626460770511358846595108675470585833924655225589035474435988347383178988034633008458631510209091509935653820010933047965742556741930917055172805200236075085991197635228755907902043369743123506916831211924495971556267407521462198986233088625998302859864857578749445963115286970886710046268423648178989905454690861391613218344174148807186234448114831209490361196546872767755617886828720269104814092456410341835975604276458161513178575901661071782544156980883359372729995603371371200471049437656291142488605335299499642300699972204918120100819059439140675053265004775533850899097945101551091486907004407119572336026243368132330218709287699196806656569752790422258267841561083376425781032629202687211070274681394351128601502326190649959171897364176378436491219709109840944514895358959103804176941956657834822071749105512752639148381172052604826965162642710094919393332661030104360530459117014557209584714353721948246686793467375904872268133410207860903657108806376616249749507413107077401682180585945526445171409277469230062697511346044174567946735828782261629584248675157379172942724178783105429858245117575511884506574424827574660800238588378492396247368761507015767725898321128632295537044902516387925127590841791744640466913531047347984464996154595542013996317357476301740036796192919942190762895445656261767041799538161133387312823511534152581309087915883638351664797225912944270653557142511737323807232632958121797916679692329687096923901003255574789055099807487061047230646195984955239657612208673866514171699307557691897902675157342075864796345338446835085965490727326321910504064289713096224505162064669468098869917122127404504020684923266241760132910227866687270305284709452526825496617772499645206699836925910690894082637401043498371591126455822280606361394115344316771769934353664284928294436414769615881993661388255577487709937004594753907845149034434521174560594039916268444697661821387470705325559577933196460996662145377564935474169708562389214773222865507182490430016186142192760452307670621142961767274704123616107220009743758647492753665149532164780849075146330071016691313420662882562618283865836983632108760710427516073348347788414796732427080410860761841281888307115098982135338406610652147087046874760995427473673509451553599769040367353385551052571682650317682405743993414862392331981432579182193321898940450865013610998098383993110996355981328001049731588596312131853801205046787642910669365600437305633431984879048998524701293300789344532868156679762880495532846386020133480265279836946393384995675049993707814746561543438930431384237878981847802886009971088695632988347711863122382785963653115132377931373647397429369411499028751972227999545182615488298951151926682112451355318472209990435355949887299922035062039816011086376236539782172380237846650673624510635034423187315338308212043804710999419227821039747552717416043890169723961305549371844836119803565896062025009093664399360172007383613354405094329072476518909502507724675841989412224659392163116352038147362479528539732089309533421910635702805576629720156556510767780805933453631121829561792887673002802450932122778852968418208261778476955644980385691275787372678040959158711733971103165232678060798127609246173504120182666874262805385275843979167609007743380748420751185119102921960339376280986753665085212869255321536787932521882574101866137054328973735862725370178558806639851350386944039604928258820180419178073649693885802597758398892014389747165465973510852605706234402069637065660129535734043582961473427275805630839510667375349259659518575646939723218275780003250593895303820539697558870511543073920827422440516299708739599768461206246629098112368012579891284802505094028916959765079395437191311379314427405135599630375642214527294341797246187597964074239147838993541565834716156858499036773056611353833367087548900413091981676330749041510337597307246885839246941715548295730750618505881581959528992660225626903439573313450666972952115230668696227920947779974336574472673471408928071411283888082693377378077293104110767513639476200610858040596019639058015761002337463869352228385801434957178125581445862930042479404065736859862007914604590255413929950088044710384758990326548097338166940500085452723713571394902463820308668541802838317527668064278489561005755859991718966786449154063570014497194249878920859731254275567514575206399118150736397483102490793841725653421894276769116598153430084637087769510295415136551734675054015239706042571746001089968440498845985477977905031632568489156557231006499726498721480800181770357701502983008879487243887718884416833034708723239505377642232944095773219137582371673924704216723002256883135779230394688900662466182532658490724406767024939579697217467485562998183149665611743997680482094166257463879660305171274925119226367615337524381656217330771650129520988754856467131862602387619964334867961514408328902061082833180891221325853682856469916007952105166960451695430614212305743006877217407155473217957577017595967640563812729153867513698712395570542350999228605975469962186195531354132139126436676900465429996811680550737866770665988027062972502001882845886145344368771455361304414465613369092862748276981946836480550952968681758714859972973082332924094777085275279923304892719633314751563311192746150389219290616780607901383451137066300684376267199885515143681266137319912103235469786756421210624899005553564022924345831264231038363416781719908354140411717740185950606674198348143345444247191436828225654380047860390575922417071802670646875454211626958746795398540784464654140381751149965273621123540880166990280149033225139460832668170930713868826549977374286127789417784752681328371818759103642140881783220739808059714203285309721443041845459183002833408705783138284973283761286182927136745161897366207237396132790944984014154408304074405393067540767126182547597130843470311389815695365971788564022750674237400323621850094765267521941901241387478279883426470873616812485384444012772521050072279315853096279121131160167772077952572613800240684421885453537121341902236379684012385255288607189967725694227433323948595075570839061877450159652184414998155476107548008054192318436948191732631430603548399790783307267636729090980772827355854348032260067472537097785464567761181807367424367391769863758072145859791485033700592994963793369100283444558089838054017635403737133019311293080958287612107380374800660269767842888358265737486556785868822015143046249655995760379768685318192365806469199584071845493606922169776137542662239658644989770921478134709127917460871630220821981434654245065731262683089579031012893360788644107230184805400373136014216229159146992019884148290014414312800903102107833305090238435726779416177246873411503598700003151092815700331081727415624680432977205070450456683898626301702989301145364477416856732512330376477881749036052572605520684370616116539755132541369303867783267208227323664249206432363089268768826650939691861683271739757479552993242406186992420363781929485368098035256331092448215269276219116259145886393677034653480367887126133367116968226450914997055448521259751870084720025674658752403932061045903070039438252019383102480929019684602472171298321628237994627125366359971898374425099120673688383738299653892030662843074547559074235345274029211606091346327684749522046010409575607348155101677203187580089224494752922031093841661588823584993931745149914395557357641584185479831702428523965451087525425464777294595230360946416541997797947136806344915998772409176443137371178542210740572121166868692153240490080384205921192622875440898261478908123698956367080804687628524499897440855677969456909042340530355943524640751677873953113928698614347227572144946891896093294375476741234907792754338349412323060078767610089949156126934038921148370217193387617823370358925817112869563450001367619897145400986643461922197676975930010555225198913002123021780831934330880446592954552165911855939202579781122952065357362914478404946474565003115498072056580360667380889572746464375428055819322299305089287806874537401327100274428317925355003451536693172112088227603942809788645727306979971285649576934354004030728440581746648376658498039958964243370183454151720285337810904113124462432903353964296651109482836884580127588701293156099225044518125460113274986014470437757313881001319276124676116614833528935557503106018449788994378274613854651708241613167681463911870000812845144341406739985430072772303758111613511094355614896323929750846383152930263582535361784837558519666949972251935515953807207838615142130284450051795239760968433198292598921623223582396390262548856855875458198371559008447860086745945709118128793228222051767509371866110013193625845223493949829511199280837860523506412769337548130609594264463425077601147334209139128541628183172262143783062962408149391997187528106367348876678481602342743230027158192404187686545826519361990687336892886715133840245486110982482004482721799496658712257174429044916781194824165631560303473833317665121218052780795958220298330611945164019413315550379662980215357680731124530585915969709973988055743550083279071844959752353594644354789680372126344509423070253995102864458237454677761013556916212309752286152053213998745673034127676503369636682306665552051562491132528926155863868503100849180920507680658265915276163719928694258350604859732273949286080260640627521341007801815105623787926212039424781833439433877206395801115809084190794320195178235740190546595990289617711776195270354051193727229722248442080440098750369411277686593022133010625031862085145076421052980508837197986052557750303949606158442838846866137510968441567309838079394349570013029265177957120625555851951313574029897589283475525334409858911400694449308432874005015554332587793895080241128538758725945136400838324944471346436826148195406004114845870234072926697740631325878634790667698266181501256117692275715291249164821702372884416357600996851100939411444677628186007072278522314941048564396255796808221289935799262208553889221164765220850367706476491496133789353761537391569177822237744837614120253342622508007300513473422771427333106345971803240244226950458090539326689103619381998838844036231795282435495362489670734155948067688515321073064476077859628627852283657244564306449096277517172656954238392941958409527253281659572534531428389629894005886539486824117113929627356938973482935854650278689437014798383826002058208853517073216288725214522205265969614962147884840129004507737252424605074339660818182960296019196314124998538422017695110361380561701016357743542531148669369994130940908368220071936435111978592782493491477052187226546109199597269439152400467901173602521030051886080337084840114810246351288263986170081804888380750203521448348740849154718714478857809574515499505005070789428842888410027877777455981132319940624176532148686316581736774410084063436959989519288310869124517866342559353458242589411390516469440377562665821577845936829909679754548350510473633770839151033854639602753486401635204633884342346714935641429160856846724874244782055113759168236472297793612971080302530934478115527737540458968990354808058309381267323593563098546564376209385371052808344607189076003388781618019853273759498566916704703448438363503416368325266403224174519476678140428319327482851882140344319384445475456765253419659194332132585432270070759038565239668227171300009189122050845185261514627937717597528852978637931711212529529443323757910072909001703558763798612480281463093944391916950129336315045285163539312868586427437296109446101235604877439863299611899755965996608749049271167685268675335991297583209089553296409523640116060078495005377892783750147344122123777907727134146647404489837589487675423294546899354220341669961366698976529978580795899055864050388507083137333076839766882463680992355219727241831735127646189112380485883115569477888101759708977682149644340317924443085170303692214137621194388641989508360339306459037361842937028710758321966607546113761076362543928614316242890754021082233620012309384737312220374269033838579928678572939434168287053763374091938184632261131740934278117918891642447513543478446040549455379834556163353815868441692054518698919434175386663900335756765603264363767906721626620330878425545157208117246381251512669846685887209013144861632560461019513371814585249988176629925142145014710206193190373671380347663431029705222414785030188275106347446241258707937339085095757724316735066885094208761536164440443755860160625837091300574162065273670941888667964570550744724714137001968165215954380698515999483361357521322106131884771926641942395351412233546746461491743013475866037338176532604557402925472279360288926189385899695656876783017186873988763887625972743976062813263446647679413679726184933395074665820441677989806604203937116666336696282569349097348391155869004856032512219241534268522369316036765491047702733521540143168338872968405443296967684036073182435336224865433823598123544167514608340781166661858781733980624199254577853462678039039937557802759942957205281043775666979396838109341118959475766220191217535093638985465283078692370662512323684390235587636228324657161183714078807661162179517887972801841572019639084400269037450381192797170314489871815031319992111563908303017288012610642062005359240278277393918026391717720136125984776933980647063763022608885359937595079088789081791802195768033381968605120487107610874898411568740159953020639098138993261095538868264084012160831040525974539251576403732889086736948366404734622708560040891610782221943405179794550155347682966855320097501905581419914591124181501062255627411231571377358697194374130822027383843815940638571387913337592362330440453487233047240668784133333047898995255221468847973813568083995644533005222551320155267768895412770329278670827490041172076663112783638152343547681663121189086864991380236281775275946061211813342054791801619220346912760381900528012343973598270461499814511324618195658528232044658270082064934680251556511272822083811563192256509945201222666603226059396247019707668580396286975551115189973049085051758765306785758000660424066894170620303846785860257370634352599586885088679654004465187790208942935153217316750113738031466034642429489076322228133763299919641336502028627289268087560036613770607463575515079087982099722660130472907825746908175451952405573791313113170617323191598673971588373108168916968657704150695512947652386134815766967580364762005289060222744531744305498402863048850869557761528650326080941160688570698894762046478500884303973107412774191961697450517110329082815201273888663422631492147090220016940636504812047036016738602290671629816411198202268607961324739550057567564568204754619040423011062371367395995678940884705976859514505017241517746017351430990972615509378334720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  
*/


Output:
1
Timeout


Create a new paste based on this one


Comments: