summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore50
-rw-r--r--1.c26
-rw-r--r--1a.c36
-rw-r--r--2.c50
-rw-r--r--2a.c53
-rw-r--r--3.c75
-rw-r--r--3a.c182
-rw-r--r--4.c132
-rw-r--r--4a.c132
-rw-r--r--data.12000
-rw-r--r--data.21000
-rw-r--r--data.31000
-rw-r--r--data.3b12
-rw-r--r--data.4601
14 files changed, 5349 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2fc25b9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,50 @@
+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
+1a
+2a
+3a
+4a
+5a
+6a
+7a
+8a
+9a
+10a
+11a
+12a
+13a
+14a
+15a
+16a
+17a
+18a
+19a
+20a
+21a
+22a
+23a
+24a
+25a
diff --git a/1.c b/1.c
new file mode 100644
index 0000000..7041065
--- /dev/null
+++ b/1.c
@@ -0,0 +1,26 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+int main(void)
+{
+ char buff[80];
+ int last = -1;
+ int count = 0;
+
+ while(fgets(buff, sizeof buff, stdin))
+ {
+ int i = atoi(buff);
+
+ if (last != -1 && last < i)
+ {
+ printf("%d\n", i);
+ count++;
+ }
+
+ last = i;
+ }
+
+ printf("count=%d\n", count);
+
+ return 0;
+}
diff --git a/1a.c b/1a.c
new file mode 100644
index 0000000..725aa45
--- /dev/null
+++ b/1a.c
@@ -0,0 +1,36 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+int main(void)
+{
+ char buff[80];
+ int last = -1;
+ int count = 0;
+ int data[2000];
+ int f,i;
+
+ i = 0;
+
+ for(i = 0; i < 2000; i++)
+ {
+ fgets(buff, sizeof buff, stdin);
+ data[i] = atoi(buff);
+ }
+
+ for(f = 0; f < 1998; f++)
+ {
+ i = data[f] + data[f+1] + data[f+2];
+
+ if (last != -1 && last < i)
+ {
+ printf("%d\n", i);
+ count++;
+ }
+
+ last = i;
+ }
+
+ printf("count=%d\n", count);
+
+ return 0;
+}
diff --git a/2.c b/2.c
new file mode 100644
index 0000000..84b511c
--- /dev/null
+++ b/2.c
@@ -0,0 +1,50 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+int main(void)
+{
+ char buff[80];
+ int depth = 0;
+ int horiz = 0;
+
+ while(fgets(buff, sizeof buff, stdin))
+ {
+ char *tok[2] = {0};
+
+ tok[0] = strtok(buff," ");
+
+ if (tok[0]) tok[1] = strtok(NULL, " ");
+
+ if (tok[0] && tok[1])
+ {
+ int i = atoi(tok[1]);
+
+ if(strcmp(tok[0], "forward") == 0)
+ {
+ horiz += i;
+ }
+
+ if(strcmp(tok[0], "down") == 0)
+ {
+ depth += i;
+ }
+
+ if(strcmp(tok[0], "up") == 0)
+ {
+ depth -= i;
+ }
+ }
+ else
+ {
+ printf("Bad input");
+ exit(1);
+ }
+ }
+
+ printf("depth=%d\n", depth);
+ printf("horiz=%d\n", horiz);
+ printf("product=%d\n", depth*horiz);
+
+ return 0;
+}
diff --git a/2a.c b/2a.c
new file mode 100644
index 0000000..180d72a
--- /dev/null
+++ b/2a.c
@@ -0,0 +1,53 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+int main(void)
+{
+ char buff[80];
+ int depth = 0;
+ int aim = 0;
+ int horiz = 0;
+
+ while(fgets(buff, sizeof buff, stdin))
+ {
+ char *tok[2] = {0};
+
+ tok[0] = strtok(buff," ");
+
+ if (tok[0]) tok[1] = strtok(NULL, " ");
+
+ if (tok[0] && tok[1])
+ {
+ int i = atoi(tok[1]);
+
+ if(strcmp(tok[0], "forward") == 0)
+ {
+ horiz += i;
+
+ depth += i * aim;
+ }
+
+ if(strcmp(tok[0], "down") == 0)
+ {
+ aim += i;
+ }
+
+ if(strcmp(tok[0], "up") == 0)
+ {
+ aim -= i;
+ }
+ }
+ else
+ {
+ printf("Bad input");
+ exit(1);
+ }
+ }
+
+ printf("depth=%d\n", depth);
+ printf("horiz=%d\n", horiz);
+ printf("product=%d\n", depth*horiz);
+
+ return 0;
+}
diff --git a/3.c b/3.c
new file mode 100644
index 0000000..39db01d
--- /dev/null
+++ b/3.c
@@ -0,0 +1,75 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+static int FromBin(const char *p)
+{
+ int b = strlen(p) - 1;
+ int v = 0;
+ int f;
+
+ for(f = 0; p[f]; f++, b--)
+ {
+ if (p[f] == '1')
+ {
+ v |= 1 << b;
+ }
+ }
+
+ return v;
+}
+
+int main(void)
+{
+ char buff[80];
+ int bit[12] = {0};
+ int count = 0;
+ char str[13] = {0};
+ int f;
+ int gamma, epsilon;
+
+ while(fgets(buff, sizeof buff, stdin))
+ {
+ for(f = 0; f < 12; f++)
+ {
+ if (buff[f] == '1')
+ {
+ bit[f]++;
+ }
+ }
+
+ count++;
+ }
+
+ for(f = 0; f < 12; f++)
+ {
+ if (bit[f] > count / 2)
+ {
+ str[f] = '1';
+ }
+ else
+ {
+ str[f] = '0';
+ }
+ }
+
+ gamma = FromBin(str);
+
+ for(f = 0; f < 12; f++)
+ {
+ if (str[f] == '0')
+ {
+ str[f] = '1';
+ }
+ else
+ {
+ str[f] = '0';
+ }
+ }
+
+ epsilon = FromBin(str);
+
+ printf("%d\n", gamma * epsilon);
+
+ return 0;
+}
diff --git a/3a.c b/3a.c
new file mode 100644
index 0000000..e0b98e4
--- /dev/null
+++ b/3a.c
@@ -0,0 +1,182 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+static int FromBin(const char *p)
+{
+ size_t b = strlen(p) - 1;
+ int v = 0;
+ int f;
+
+ for(f = 0; p[f]; f++, b--)
+ {
+ if (p[f] == '1')
+ {
+ v |= 1 << b;
+ }
+ }
+
+ return v;
+}
+
+static void Chomp(char *p)
+{
+ size_t l = strlen(p);
+
+ while(l && p[l-1] == '\n')
+ {
+ p[--l] = 0;
+ }
+}
+
+int main(void)
+{
+ char nums[1000][14] = {0};
+ char work[1000][14] = {0};
+ char buff[80];
+ int bit[12] = {0};
+ int count = 0;
+ char str[13] = {0};
+ int b;
+ int f;
+ int n;
+ int oxygen;
+ int co2;
+ int lines = 0;
+
+ count = 0;
+
+ while(fgets(buff, sizeof buff, stdin))
+ {
+ Chomp(buff);
+ strcpy(nums[count++], buff);
+ }
+
+ lines = count;
+
+ count = 0;
+ memcpy(work, nums, sizeof nums);
+ b = 0;
+
+ while(count != 1)
+ {
+ for(f = 0; f < 12; f++)
+ {
+ bit[f] = 0;
+ }
+
+ count = 0;
+
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][0])
+ {
+ for(f = 0; f < 12; f++)
+ {
+ if (work[n][f] == '1')
+ {
+ bit[f]++;
+ }
+ }
+
+ count++;
+ }
+ }
+
+ if (count == 1)
+ {
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][0])
+ {
+ oxygen = FromBin(work[n]);
+ }
+ }
+ }
+ else
+ {
+ char c;
+
+ c = bit[b] >= count/2.0 ? '1':'0';
+
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][b] != c)
+ {
+ work[n][0] = 0;
+ }
+ }
+
+ if (b < 11)
+ {
+ b++;
+ }
+ }
+ }
+
+ count = 0;
+ memcpy(work, nums, sizeof nums);
+ b = 0;
+
+ while(count != 1)
+ {
+ for(f = 0; f < 12; f++)
+ {
+ bit[f] = 0;
+ }
+
+ count = 0;
+
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][0])
+ {
+ for(f = 0; f < 12; f++)
+ {
+ if (work[n][f] == '1')
+ {
+ bit[f]++;
+ }
+ }
+
+ count++;
+ }
+ }
+
+ if (count == 1)
+ {
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][0])
+ {
+ co2 = FromBin(work[n]);
+ }
+ }
+ }
+ else
+ {
+ char c;
+
+ c = (bit[b] < count/2.0) ? '1':'0';
+
+ for(n = 0; n < lines; n++)
+ {
+ if (work[n][b] != c)
+ {
+ work[n][0] = 0;
+ }
+ }
+
+ if (b < 11)
+ {
+ b++;
+ }
+ }
+ }
+
+ printf("oxygen %d\n", oxygen);
+ printf("co2 %d\n", co2);
+ printf("product %d\n", oxygen * co2);
+
+ return 0;
+}
diff --git a/4.c b/4.c
new file mode 100644
index 0000000..4851248
--- /dev/null
+++ b/4.c
@@ -0,0 +1,132 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define MAX_BOARDS 100
+
+static char *ReadLine(char *p, size_t size, FILE *fp)
+{
+ if ((p=fgets(p, size, fp)))
+ {
+ size_t l = strlen(p);
+
+ while(l && p[l-1] == '\n')
+ {
+ p[--l] = 0;
+ }
+ }
+
+ return p;
+}
+
+int main(void)
+{
+ char buff[1024];
+ int *num = NULL;
+ int num_count = 0;
+ int board[MAX_BOARDS][5][5] = {0};
+ int board_count = 0;
+ char *p = NULL;
+ int f = 0;
+ int x = 0;
+ int y = 0;
+ int i = 0;
+ int winner_board = -1;
+ int winner_num = -1;
+ int sum = 0;
+
+ ReadLine(buff, sizeof buff, stdin);
+
+ p = strtok(buff, ",");
+
+ while(p)
+ {
+ num = realloc(num, (num_count + 1) * sizeof *num);
+ num[num_count++] = atoi(p);
+ p = strtok(NULL, ",");
+ }
+
+ while (ReadLine(buff, sizeof buff, stdin))
+ {
+ if (board_count == MAX_BOARDS)
+ {
+ printf("Too many boards\n");
+ return 1;
+ }
+
+ for(y = 0; y < 5; y++)
+ {
+ ReadLine(buff, sizeof buff, stdin);
+
+ for(x = 0; x < 5; x++)
+ {
+ p = strtok(x == 0 ? buff : NULL, " ");
+ board[board_count][y][x] = atoi(p);
+ }
+ }
+
+ board_count++;
+ }
+
+ for(i = 0; i < num_count && winner_board == -1; i++)
+ {
+ for(f = 0; f < board_count; f++)
+ {
+ for(y = 0; y < 5; y++)
+ {
+ for(x = 0; x < 5; x++)
+ {
+ if (board[f][y][x] == num[i])
+ {
+ board[f][y][x] = 0;
+ }
+ }
+ }
+ }
+
+ for(f = 0; f < board_count && winner_board == -1; f++)
+ {
+ for(y = 0; y < 5; y++)
+ {
+ if (board[f][y][0] == 0 &&
+ board[f][y][1] == 0 &&
+ board[f][y][2] == 0 &&
+ board[f][y][3] == 0 &&
+ board[f][y][4] == 0)
+ {
+ winner_board = f;
+ winner_num = num[i];
+ }
+ }
+
+ for(x = 0; x < 5; x++)
+ {
+ if (board[f][0][x] == 0 &&
+ board[f][1][x] == 0 &&
+ board[f][2][x] == 0 &&
+ board[f][3][x] == 0 &&
+ board[f][4][x] == 0)
+ {
+ winner_board = f;
+ winner_num = num[i];
+ }
+ }
+ }
+ }
+
+ printf("winner_board = %d\n", winner_board);
+ printf("winner_num = %d\n", winner_num);
+
+ for(y = 0; y < 5; y++)
+ {
+ for(x = 0; x < 5; x++)
+ {
+ sum += board[winner_board][y][x];
+ }
+ }
+
+ printf("sum = %d\n", sum);
+ printf("product = %d\n", sum * winner_num);
+
+ return 0;
+}
diff --git a/4a.c b/4a.c
new file mode 100644
index 0000000..4851248
--- /dev/null
+++ b/4a.c
@@ -0,0 +1,132 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define MAX_BOARDS 100
+
+static char *ReadLine(char *p, size_t size, FILE *fp)
+{
+ if ((p=fgets(p, size, fp)))
+ {
+ size_t l = strlen(p);
+
+ while(l && p[l-1] == '\n')
+ {
+ p[--l] = 0;
+ }
+ }
+
+ return p;
+}
+
+int main(void)
+{
+ char buff[1024];
+ int *num = NULL;
+ int num_count = 0;
+ int board[MAX_BOARDS][5][5] = {0};
+ int board_count = 0;
+ char *p = NULL;
+ int f = 0;
+ int x = 0;
+ int y = 0;
+ int i = 0;
+ int winner_board = -1;
+ int winner_num = -1;
+ int sum = 0;
+
+ ReadLine(buff, sizeof buff, stdin);
+
+ p = strtok(buff, ",");
+
+ while(p)
+ {
+ num = realloc(num, (num_count + 1) * sizeof *num);
+ num[num_count++] = atoi(p);
+ p = strtok(NULL, ",");
+ }
+
+ while (ReadLine(buff, sizeof buff, stdin))
+ {
+ if (board_count == MAX_BOARDS)
+ {
+ printf("Too many boards\n");
+ return 1;
+ }
+
+ for(y = 0; y < 5; y++)
+ {
+ ReadLine(buff, sizeof buff, stdin);
+
+ for(x = 0; x < 5; x++)
+ {
+ p = strtok(x == 0 ? buff : NULL, " ");
+ board[board_count][y][x] = atoi(p);
+ }
+ }
+
+ board_count++;
+ }
+
+ for(i = 0; i < num_count && winner_board == -1; i++)
+ {
+ for(f = 0; f < board_count; f++)
+ {
+ for(y = 0; y < 5; y++)
+ {
+ for(x = 0; x < 5; x++)
+ {
+ if (board[f][y][x] == num[i])
+ {
+ board[f][y][x] = 0;
+ }
+ }
+ }
+ }
+
+ for(f = 0; f < board_count && winner_board == -1; f++)
+ {
+ for(y = 0; y < 5; y++)
+ {
+ if (board[f][y][0] == 0 &&
+ board[f][y][1] == 0 &&
+ board[f][y][2] == 0 &&
+ board[f][y][3] == 0 &&
+ board[f][y][4] == 0)
+ {
+ winner_board = f;
+ winner_num = num[i];
+ }
+ }
+
+ for(x = 0; x < 5; x++)
+ {
+ if (board[f][0][x] == 0 &&
+ board[f][1][x] == 0 &&
+ board[f][2][x] == 0 &&
+ board[f][3][x] == 0 &&
+ board[f][4][x] == 0)
+ {
+ winner_board = f;
+ winner_num = num[i];
+ }
+ }
+ }
+ }
+
+ printf("winner_board = %d\n", winner_board);
+ printf("winner_num = %d\n", winner_num);
+
+ for(y = 0; y < 5; y++)
+ {
+ for(x = 0; x < 5; x++)
+ {
+ sum += board[winner_board][y][x];
+ }
+ }
+
+ printf("sum = %d\n", sum);
+ printf("product = %d\n", sum * winner_num);
+
+ return 0;
+}
diff --git a/data.1 b/data.1
new file mode 100644
index 0000000..27245d9
--- /dev/null
+++ b/data.1
@@ -0,0 +1,2000 @@
+171
+173
+174
+163
+161
+157
+156
+154
+152
+156
+151
+153
+132
+135
+151
+143
+141
+149
+145
+147
+142
+143
+139
+141
+144
+147
+137
+144
+147
+153
+151
+153
+157
+185
+186
+185
+181
+161
+177
+179
+177
+178
+173
+175
+183
+181
+191
+189
+186
+189
+192
+191
+189
+199
+208
+218
+216
+210
+209
+208
+215
+207
+198
+202
+204
+205
+204
+203
+205
+207
+208
+209
+218
+234
+231
+245
+244
+243
+265
+264
+279
+282
+283
+274
+276
+279
+281
+279
+258
+256
+289
+297
+300
+304
+308
+298
+302
+317
+316
+315
+314
+296
+298
+301
+298
+293
+300
+293
+290
+286
+282
+278
+280
+283
+292
+297
+315
+323
+324
+321
+324
+332
+334
+366
+375
+382
+388
+395
+400
+410
+405
+407
+408
+405
+403
+426
+425
+423
+440
+444
+469
+471
+472
+498
+501
+498
+499
+500
+502
+514
+515
+516
+518
+517
+516
+507
+514
+521
+523
+521
+513
+518
+531
+543
+546
+540
+528
+529
+520
+530
+533
+534
+532
+535
+538
+545
+550
+548
+534
+552
+555
+570
+571
+589
+595
+594
+598
+594
+597
+585
+568
+558
+545
+549
+543
+544
+548
+528
+533
+511
+510
+511
+504
+505
+510
+511
+514
+486
+506
+508
+474
+475
+485
+501
+498
+499
+500
+504
+502
+510
+507
+512
+508
+515
+517
+521
+537
+536
+532
+533
+532
+531
+535
+547
+558
+547
+546
+573
+591
+593
+576
+577
+580
+581
+588
+595
+594
+589
+586
+600
+602
+594
+593
+598
+586
+587
+583
+571
+564
+561
+562
+559
+569
+568
+547
+551
+554
+565
+575
+574
+573
+568
+567
+570
+578
+575
+573
+555
+557
+571
+572
+579
+593
+609
+611
+612
+614
+613
+614
+616
+615
+616
+610
+621
+626
+620
+621
+620
+622
+623
+627
+625
+628
+618
+615
+606
+597
+602
+603
+601
+624
+623
+621
+633
+643
+638
+641
+642
+641
+643
+633
+632
+642
+649
+636
+642
+662
+670
+683
+702
+712
+713
+714
+720
+725
+726
+724
+723
+722
+691
+692
+693
+674
+671
+664
+665
+678
+681
+682
+680
+681
+693
+694
+691
+693
+694
+691
+692
+691
+692
+691
+692
+693
+684
+686
+706
+705
+696
+683
+688
+698
+701
+700
+708
+691
+689
+688
+693
+680
+681
+683
+701
+709
+715
+716
+706
+686
+683
+676
+680
+681
+687
+676
+691
+705
+702
+703
+704
+709
+713
+716
+717
+715
+716
+715
+703
+714
+720
+708
+692
+665
+654
+664
+663
+649
+652
+676
+666
+682
+683
+687
+679
+680
+699
+706
+730
+729
+728
+732
+733
+727
+728
+738
+741
+744
+742
+722
+725
+722
+716
+717
+713
+712
+703
+704
+705
+699
+700
+706
+709
+692
+693
+688
+689
+698
+695
+696
+700
+701
+688
+689
+696
+678
+669
+674
+675
+663
+664
+675
+662
+667
+671
+679
+683
+682
+716
+717
+720
+724
+737
+727
+737
+739
+716
+733
+728
+723
+741
+743
+732
+727
+729
+732
+724
+721
+717
+716
+730
+743
+742
+740
+743
+734
+735
+733
+734
+747
+741
+713
+721
+719
+743
+745
+768
+769
+775
+774
+773
+785
+789
+788
+784
+773
+809
+808
+807
+808
+809
+806
+790
+785
+806
+811
+809
+812
+814
+817
+821
+822
+823
+829
+826
+827
+828
+830
+832
+827
+828
+827
+828
+843
+844
+843
+842
+829
+830
+834
+841
+843
+863
+858
+867
+871
+888
+890
+873
+874
+860
+874
+871
+877
+878
+877
+885
+886
+893
+888
+887
+888
+889
+876
+871
+855
+850
+851
+853
+850
+855
+868
+870
+871
+886
+896
+878
+882
+893
+867
+862
+860
+861
+862
+859
+871
+875
+874
+870
+864
+867
+864
+867
+868
+872
+880
+866
+867
+874
+878
+864
+872
+870
+859
+852
+857
+869
+872
+876
+882
+894
+872
+873
+860
+861
+862
+858
+859
+865
+858
+834
+830
+801
+804
+799
+802
+804
+800
+776
+779
+790
+793
+796
+800
+804
+803
+799
+790
+788
+783
+785
+807
+802
+783
+796
+808
+782
+778
+779
+794
+800
+809
+821
+828
+826
+827
+835
+836
+840
+857
+855
+859
+870
+861
+838
+837
+843
+823
+821
+812
+811
+827
+828
+818
+819
+811
+813
+799
+801
+784
+788
+793
+797
+803
+785
+786
+785
+774
+776
+777
+778
+776
+774
+775
+778
+779
+772
+776
+774
+773
+777
+778
+779
+777
+781
+769
+760
+746
+752
+748
+754
+758
+768
+786
+784
+783
+769
+770
+782
+796
+785
+774
+775
+781
+779
+780
+769
+757
+758
+774
+790
+792
+795
+805
+804
+803
+802
+792
+795
+800
+801
+796
+797
+790
+791
+797
+801
+797
+807
+801
+796
+799
+794
+783
+759
+784
+809
+810
+824
+815
+812
+845
+846
+848
+849
+869
+868
+886
+888
+896
+904
+902
+905
+900
+907
+912
+890
+891
+892
+893
+911
+912
+916
+924
+926
+897
+885
+886
+881
+878
+879
+908
+907
+901
+902
+919
+915
+905
+906
+941
+939
+944
+945
+946
+939
+936
+952
+951
+963
+958
+972
+1000
+1017
+1003
+1002
+1004
+1005
+990
+989
+992
+993
+987
+1003
+1004
+1003
+1006
+1011
+989
+1000
+999
+1001
+1008
+1012
+1013
+1024
+1038
+1039
+1024
+1027
+1021
+1036
+1034
+1053
+1061
+1064
+1104
+1105
+1106
+1085
+1086
+1090
+1097
+1098
+1101
+1086
+1087
+1084
+1069
+1070
+1069
+1074
+1071
+1070
+1074
+1060
+1058
+1068
+1054
+1060
+1054
+1055
+1053
+1054
+1042
+1043
+1045
+1044
+1042
+1043
+1027
+1030
+1031
+1030
+1029
+1041
+1045
+1048
+1049
+1043
+1040
+1049
+1050
+1051
+1054
+1056
+1048
+1045
+1044
+1043
+1046
+1063
+1077
+1105
+1108
+1110
+1126
+1127
+1131
+1133
+1130
+1135
+1141
+1168
+1175
+1172
+1156
+1136
+1137
+1136
+1135
+1137
+1156
+1154
+1158
+1163
+1151
+1152
+1168
+1176
+1177
+1172
+1173
+1187
+1196
+1197
+1192
+1191
+1180
+1186
+1185
+1186
+1189
+1198
+1196
+1195
+1196
+1197
+1191
+1171
+1172
+1154
+1184
+1170
+1171
+1169
+1179
+1178
+1186
+1187
+1189
+1196
+1183
+1180
+1182
+1170
+1155
+1133
+1126
+1127
+1126
+1118
+1117
+1126
+1128
+1147
+1148
+1144
+1160
+1171
+1177
+1179
+1180
+1162
+1152
+1150
+1149
+1156
+1169
+1165
+1164
+1165
+1179
+1178
+1179
+1181
+1191
+1186
+1187
+1179
+1180
+1181
+1177
+1182
+1185
+1189
+1201
+1243
+1242
+1239
+1240
+1242
+1243
+1231
+1232
+1242
+1254
+1264
+1267
+1268
+1271
+1272
+1265
+1260
+1263
+1266
+1254
+1266
+1261
+1251
+1252
+1214
+1212
+1222
+1225
+1226
+1235
+1245
+1255
+1256
+1255
+1252
+1254
+1250
+1252
+1257
+1259
+1270
+1271
+1281
+1279
+1286
+1273
+1290
+1291
+1290
+1297
+1295
+1294
+1289
+1300
+1307
+1304
+1305
+1311
+1301
+1306
+1310
+1306
+1305
+1306
+1308
+1310
+1316
+1326
+1330
+1336
+1318
+1337
+1313
+1316
+1329
+1324
+1331
+1338
+1337
+1335
+1336
+1340
+1350
+1364
+1365
+1366
+1352
+1353
+1354
+1361
+1375
+1367
+1371
+1372
+1375
+1390
+1393
+1392
+1391
+1388
+1391
+1392
+1394
+1396
+1420
+1421
+1424
+1425
+1427
+1420
+1421
+1426
+1428
+1432
+1430
+1439
+1444
+1446
+1435
+1437
+1438
+1437
+1444
+1448
+1453
+1469
+1473
+1476
+1477
+1464
+1457
+1460
+1476
+1479
+1477
+1479
+1495
+1494
+1499
+1504
+1502
+1494
+1508
+1507
+1508
+1506
+1504
+1492
+1503
+1512
+1511
+1493
+1500
+1509
+1527
+1542
+1547
+1542
+1551
+1555
+1557
+1566
+1610
+1611
+1616
+1620
+1616
+1635
+1646
+1647
+1645
+1666
+1667
+1656
+1654
+1645
+1648
+1651
+1666
+1670
+1673
+1671
+1669
+1680
+1669
+1670
+1693
+1696
+1698
+1697
+1722
+1727
+1740
+1743
+1742
+1743
+1744
+1762
+1785
+1788
+1777
+1778
+1779
+1784
+1811
+1806
+1824
+1791
+1792
+1793
+1795
+1792
+1791
+1789
+1790
+1802
+1803
+1811
+1809
+1842
+1843
+1854
+1857
+1842
+1847
+1856
+1859
+1865
+1867
+1868
+1883
+1875
+1874
+1877
+1878
+1877
+1862
+1876
+1882
+1864
+1865
+1868
+1867
+1869
+1850
+1849
+1839
+1840
+1845
+1843
+1855
+1856
+1877
+1875
+1877
+1880
+1861
+1889
+1891
+1894
+1889
+1905
+1907
+1911
+1894
+1897
+1908
+1909
+1911
+1913
+1918
+1919
+1916
+1915
+1918
+1919
+1924
+1941
+1942
+1952
+1962
+1963
+1948
+1947
+1949
+1955
+1950
+1949
+1938
+1940
+1950
+1948
+1947
+1935
+1936
+1935
+1937
+1929
+1930
+1931
+1937
+1938
+1932
+1933
+1940
+1933
+1957
+1958
+1983
+1987
+1986
+1985
+1991
+1992
+2006
+2007
+2008
+2007
+2021
+2022
+2033
+2035
+2025
+2029
+2037
+2053
+2052
+2053
+2044
+2048
+2055
+2043
+2033
+2002
+2006
+2007
+2009
+2008
+2010
+2012
+2015
+2006
+2007
+2008
+2007
+2025
+2022
+2036
+2049
+2075
+2076
+2046
+2050
+2052
+2067
+2068
+2069
+2059
+2077
+2079
+2098
+2101
+2106
+2107
+2106
+2108
+2117
+2100
+2094
+2093
+2092
+2091
+2089
+2098
+2096
+2098
+2109
+2112
+2113
+2116
+2111
+2115
+2122
+2120
+2116
+2117
+2123
+2140
+2145
+2125
+2117
+2118
+2116
+2120
+2133
+2135
+2178
+2192
+2189
+2194
+2196
+2198
+2199
+2193
+2195
+2187
+2189
+2205
+2218
+2203
+2207
+2206
+2204
+2210
+2209
+2230
+2229
+2226
+2222
+2255
+2250
+2275
+2276
+2277
+2299
+2304
+2307
+2306
+2320
+2324
+2340
+2341
+2344
+2343
+2348
+2349
+2351
+2331
+2334
+2333
+2337
+2339
+2344
+2357
+2355
+2356
+2340
+2325
+2324
+2340
+2351
+2352
+2350
+2379
+2386
+2387
+2388
+2382
+2358
+2354
+2360
+2361
+2367
+2358
+2356
+2353
+2339
+2342
+2343
+2342
+2343
+2345
+2347
+2350
+2347
+2349
+2347
+2348
+2355
+2324
+2322
+2321
+2322
+2336
+2337
+2338
+2342
+2358
+2359
+2363
+2347
+2332
+2322
+2320
+2327
+2329
+2319
+2300
+2305
+2308
+2311
+2310
+2309
+2314
+2321
+2326
+2324
+2342
+2344
+2360
+2322
+2323
+2314
+2309
+2300
+2299
+2300
+2295
+2296
+2309
+2316
+2315
+2319
+2316
+2319
+2318
+2327
+2328
+2330
+2336
+2338
+2345
+2361
+2350
+2352
+2360
+2363
+2401
+2398
+2407
+2403
+2388
+2390
+2377
+2392
+2389
+2394
+2402
+2399
+2388
+2393
+2397
+2395
+2404
+2418
+2432
+2412
+2436
+2430
+2459
+2454
+2452
+2453
+2446
+2448
+2445
+2454
+2448
+2454
+2464
+2454
+2464
+2491
+2504
+2503
+2513
+2514
+2516
+2511
+2517
+2505
+2508
+2509
+2507
+2513
+2517
+2515
+2522
+2533
+2548
+2549
+2553
+2552
+2554
+2557
+2562
+2565
+2566
+2567
+2573
+2574
+2570
+2573
+2575
+2580
+2583
+2584
+2589
+2592
+2593
+2592
+2594
+2595
+2594
+2584
+2588
+2595
+2573
+2572
+2581
+2589
+2591
+2595
+2589
+2615
+2628
+2640
+2651
+2650
+2636
+2637
+2606
+2609
+2614
+2620
+2623
+2632
+2635
+2645
+2647
+2642
+2643
+2644
+2650
+2649
+2660
+2634
+2627
+2628
+2634
+2636
+2638
+2628
+2627
+2631
+2629
+2628
+2638
+2628
+2627
+2628
+2630
+2640
+2649
+2656
+2657
+2679
+2680
+2684
+2694
+2693
+2694
+2693
+2704
+2714
+2720
+2735
+2753
+2758
+2767
+2768
+2772
+2761
+2762
+2760
+2740
+2738
+2757
+2758
+2793
+2795
+2793
+2794
+2803
+2808
+2802
+2811
+2807
+2813
+2817
+2818
+2826
+2830
+2867
+2855
+2860
+2864
+2843
+2838
+2842
+2840
+2849
+2845
+2837
+2841
+2837
+2833
+2823
+2820
+2829
+2853
+2860
+2861
+2862
+2883
+2888
+2852
+2863
+2862
+2860
+2864
+2865
+2870
+2869
+2874
+2863
+2872
+2874
+2882
+2893
+2903
+2907
+2936
+2940
+2945
+2956
+2972
+2989
+2988
+2974
+2976
+2977
+2979
+2980
+2981
+2983
+2971
+2970
+2973
+2974
+2976
+3004
+2999
+3001
+3008
+3009
+3013
+3016
+3027
+3043
+3026
+3031
+3034
+3040
+3055
+3054
+3080
+3082
+3090
+3092
+3091
+3090
+3089
+3082
+3084
+3081
+3086
+3084
+3086
+3083
+3090
+3094
+3096
+3102
+3110
+3111
+3094
+3100
+3123
+3134
+3135
+3142
+3136
+3134
+3113
+3112
+3111
+3123
+3124
+3121
+3120
+3126
+3127
+3126
+3127
+3113
+3111
+3126
+3141
+3142
+3137
+3139
+3098
+3103
+3115
+3119
+3117
+3114
+3119
+3120
+3093
+3092
+3099
+3104
+3105
+3106
+3121
+3122
+3124
+3131
+3141
+3131
+3132
+3147
+3149
+3156
+3123
+3122
+3108
+3117
+3119
+3139
+3157
+3152
+3146
+3112
+3113
+3112
+3114
+3091
+3071
+3072
+3082
+3083
+3084
+3098
+3102
+3109
+3111
+3109
+3110
+3101
+3100
+3102
+3103
+3108
+3114
+3113
+3115
+3116
+3117
+3120
+3119
+3117
+3150
+3152
+3153
+3155
+3154
+3157
+3150
+3143
+3144
+3139
+3127
+3102
+3123
+3122
+3138
+3140
+3145
+3146
+3139
+3141
+3153
+3154
+3155
+3127
+3129
+3131
+3132
+3130
+3131
+3161
+3190
+3200
+3179
+3178
+3169
+3167
+3171
+3191
+3205
+3203
+3208
+3214
+3215
+3217
+3218
+3224
+3228
+3229
+3215
+3214
+3237
+3246
+3223
+3220
+3209
+3207
+3220
+3233
+3238
+3234
+3211
+3216
+3220
+3221
+3216
+3219
+3218
+3217
+3221
+3223
+3228
+3224
+3244
+3245
+3251
+3250
+3256
+3257
+3258
+3262
+3264
+3265
+3263
+3272
+3274
+3255
+3254
+3266
+3267
+3264
+3267
+3280
+3282
diff --git a/data.2 b/data.2
new file mode 100644
index 0000000..ebe7dfc
--- /dev/null
+++ b/data.2
@@ -0,0 +1,1000 @@
+forward 3
+down 7
+forward 8
+down 9
+forward 3
+down 5
+down 9
+down 6
+forward 1
+forward 8
+forward 9
+forward 3
+down 7
+down 8
+up 3
+down 5
+down 8
+down 9
+forward 5
+forward 6
+down 2
+forward 1
+forward 3
+down 9
+up 6
+up 2
+down 7
+down 9
+forward 2
+down 9
+up 3
+forward 5
+up 9
+up 9
+forward 4
+down 6
+up 7
+up 8
+up 6
+up 2
+down 7
+forward 9
+down 4
+forward 2
+forward 1
+up 7
+down 2
+down 8
+down 8
+down 2
+down 7
+down 3
+up 4
+down 7
+down 1
+down 7
+down 7
+forward 8
+forward 1
+forward 5
+forward 1
+forward 9
+forward 3
+forward 5
+down 3
+forward 9
+down 4
+down 2
+forward 5
+down 4
+down 4
+down 4
+down 9
+down 6
+down 5
+forward 2
+down 2
+down 8
+down 8
+down 7
+down 2
+down 8
+down 6
+down 4
+down 7
+up 8
+up 7
+up 6
+down 4
+down 2
+up 4
+up 8
+up 4
+down 4
+down 3
+forward 7
+forward 8
+up 1
+up 1
+up 7
+forward 2
+down 2
+forward 7
+forward 7
+forward 7
+down 2
+down 2
+forward 5
+down 3
+forward 3
+down 6
+down 9
+down 4
+down 1
+forward 2
+forward 2
+down 8
+down 9
+up 3
+forward 8
+down 7
+forward 6
+forward 6
+down 9
+up 2
+up 9
+down 2
+down 8
+up 2
+forward 6
+down 5
+up 9
+forward 6
+down 3
+down 9
+forward 8
+forward 8
+forward 1
+forward 6
+down 7
+forward 3
+forward 5
+forward 6
+down 1
+down 1
+forward 3
+forward 8
+forward 8
+up 5
+down 6
+up 5
+down 1
+up 3
+down 6
+forward 1
+up 3
+up 4
+down 8
+down 2
+up 2
+forward 1
+forward 2
+forward 6
+up 2
+down 3
+up 5
+down 5
+down 7
+up 6
+up 6
+down 8
+forward 7
+forward 2
+forward 3
+up 5
+down 5
+down 6
+down 4
+forward 8
+up 1
+forward 5
+up 1
+forward 4
+forward 3
+forward 4
+down 2
+up 5
+up 4
+down 5
+forward 1
+forward 8
+down 7
+down 1
+down 7
+forward 6
+down 4
+down 6
+forward 6
+down 8
+forward 7
+down 4
+down 8
+up 7
+down 6
+down 2
+up 8
+down 7
+down 8
+down 6
+down 3
+up 1
+down 7
+forward 1
+down 3
+down 5
+down 9
+down 3
+forward 1
+forward 4
+forward 2
+down 8
+forward 7
+down 3
+down 7
+forward 7
+down 4
+down 5
+down 1
+forward 2
+down 7
+forward 3
+forward 4
+down 8
+up 6
+down 4
+up 5
+forward 5
+forward 7
+up 8
+forward 6
+up 3
+forward 9
+up 9
+down 1
+down 2
+forward 6
+down 5
+forward 6
+down 7
+forward 9
+down 2
+up 5
+down 2
+forward 3
+up 7
+forward 3
+down 4
+forward 7
+forward 8
+down 5
+up 7
+up 8
+forward 7
+down 4
+forward 9
+forward 6
+down 2
+forward 3
+up 8
+up 4
+forward 2
+forward 4
+forward 1
+down 6
+forward 1
+down 9
+forward 2
+up 5
+down 2
+down 5
+down 5
+down 2
+down 9
+down 4
+forward 5
+down 5
+up 1
+forward 4
+down 6
+down 5
+up 8
+up 4
+down 8
+forward 4
+down 8
+forward 4
+down 2
+down 8
+forward 3
+forward 7
+down 1
+forward 3
+forward 7
+forward 1
+down 4
+forward 2
+down 3
+down 4
+forward 1
+up 6
+forward 8
+down 5
+up 6
+up 3
+forward 7
+down 3
+forward 4
+forward 9
+forward 2
+up 2
+up 7
+forward 1
+up 8
+down 6
+up 5
+down 3
+up 7
+down 4
+up 7
+down 8
+down 7
+forward 5
+up 7
+down 1
+up 9
+down 2
+down 8
+down 5
+forward 4
+down 3
+up 4
+down 2
+forward 6
+down 2
+forward 9
+up 9
+up 8
+forward 3
+forward 7
+forward 7
+up 4
+up 3
+up 4
+forward 1
+down 2
+up 6
+down 2
+down 4
+up 3
+down 8
+down 9
+down 4
+forward 6
+down 5
+down 5
+forward 7
+down 2
+forward 8
+up 2
+up 7
+down 5
+down 7
+up 9
+up 4
+up 5
+down 4
+down 8
+down 9
+down 7
+down 1
+down 1
+up 7
+up 8
+down 5
+forward 2
+up 3
+down 2
+down 9
+down 4
+forward 1
+forward 1
+up 4
+down 9
+up 7
+forward 7
+up 8
+up 4
+down 2
+down 1
+forward 2
+up 4
+down 3
+up 7
+down 7
+down 6
+down 4
+up 3
+down 7
+forward 5
+down 6
+down 9
+down 3
+forward 1
+down 6
+forward 3
+down 5
+up 1
+forward 5
+forward 4
+forward 8
+forward 1
+up 4
+down 2
+down 7
+down 9
+up 4
+up 6
+forward 8
+up 4
+down 8
+forward 7
+forward 1
+down 7
+forward 9
+forward 1
+forward 7
+forward 9
+down 3
+forward 4
+down 3
+down 3
+down 3
+down 1
+down 5
+forward 1
+forward 7
+up 5
+forward 5
+forward 4
+forward 7
+down 7
+up 5
+forward 1
+forward 8
+down 3
+up 6
+down 7
+forward 6
+down 8
+forward 6
+up 4
+down 9
+up 1
+forward 4
+forward 8
+down 5
+forward 7
+up 9
+forward 2
+up 2
+forward 7
+down 3
+forward 2
+down 7
+down 1
+forward 9
+forward 3
+up 5
+forward 7
+up 4
+forward 2
+down 3
+down 2
+down 8
+forward 7
+down 8
+down 3
+forward 9
+forward 9
+forward 5
+up 8
+forward 9
+up 2
+forward 2
+up 4
+forward 2
+forward 1
+forward 7
+forward 6
+down 5
+forward 5
+forward 1
+forward 7
+forward 4
+down 5
+down 9
+down 8
+forward 5
+up 5
+up 1
+down 8
+down 9
+forward 1
+down 5
+forward 6
+down 1
+down 7
+down 7
+down 4
+forward 3
+down 5
+down 8
+forward 2
+down 4
+forward 3
+down 1
+up 5
+down 8
+forward 9
+up 6
+up 4
+down 6
+down 9
+forward 2
+forward 5
+down 3
+forward 2
+down 5
+forward 1
+forward 4
+down 6
+down 4
+up 2
+down 9
+forward 2
+up 8
+down 4
+forward 7
+down 5
+forward 8
+down 1
+forward 5
+down 7
+up 5
+down 7
+down 4
+forward 3
+down 1
+forward 7
+forward 9
+up 9
+forward 5
+forward 8
+up 8
+forward 6
+down 5
+down 8
+forward 9
+forward 3
+down 3
+forward 9
+forward 7
+forward 6
+forward 1
+up 2
+forward 8
+down 9
+down 5
+down 5
+down 4
+forward 7
+down 8
+down 7
+forward 8
+forward 2
+down 5
+forward 2
+forward 3
+down 6
+down 8
+up 8
+forward 7
+down 7
+up 7
+forward 5
+up 6
+forward 7
+up 6
+forward 8
+forward 5
+up 6
+forward 1
+down 5
+forward 1
+up 5
+down 1
+forward 6
+forward 3
+up 2
+forward 9
+forward 8
+down 9
+forward 7
+forward 7
+forward 8
+up 9
+down 8
+up 1
+down 4
+forward 2
+forward 7
+down 1
+up 7
+down 5
+forward 2
+down 4
+down 8
+forward 6
+down 3
+forward 8
+up 6
+forward 5
+forward 7
+down 5
+down 1
+down 7
+down 7
+up 8
+down 5
+forward 4
+down 5
+down 7
+down 2
+up 8
+forward 6
+up 1
+down 3
+forward 9
+up 1
+down 7
+forward 2
+down 6
+forward 6
+up 3
+up 9
+up 2
+forward 4
+forward 4
+down 4
+down 4
+down 2
+down 5
+forward 7
+forward 6
+forward 9
+down 9
+forward 6
+up 1
+down 2
+down 4
+down 7
+down 5
+down 4
+up 2
+up 8
+down 6
+forward 2
+up 7
+down 2
+up 5
+down 8
+forward 3
+up 2
+forward 3
+forward 5
+forward 9
+forward 2
+forward 8
+forward 1
+down 5
+up 6
+forward 9
+forward 4
+up 8
+down 8
+up 2
+down 9
+down 3
+down 5
+up 4
+forward 2
+down 5
+forward 6
+down 6
+forward 2
+forward 7
+forward 6
+forward 1
+down 7
+forward 8
+up 2
+forward 5
+forward 5
+up 3
+forward 2
+forward 3
+forward 8
+forward 4
+down 1
+down 9
+up 5
+down 5
+forward 1
+down 8
+up 3
+down 9
+forward 5
+forward 2
+forward 2
+up 1
+forward 1
+down 5
+forward 4
+up 4
+up 3
+up 3
+down 4
+down 5
+down 1
+forward 8
+down 4
+up 7
+down 6
+forward 5
+forward 4
+forward 8
+forward 8
+up 3
+forward 7
+down 4
+forward 8
+forward 4
+forward 6
+down 8
+down 6
+down 1
+forward 4
+down 8
+down 6
+forward 2
+down 8
+up 7
+down 2
+forward 5
+down 4
+down 7
+down 8
+forward 5
+down 4
+down 2
+down 7
+down 4
+forward 7
+forward 3
+up 4
+down 7
+down 9
+up 4
+up 5
+down 7
+up 5
+down 3
+down 5
+forward 8
+up 1
+up 9
+forward 9
+forward 7
+down 2
+up 1
+up 7
+down 3
+forward 3
+up 6
+forward 1
+forward 2
+down 4
+down 3
+forward 4
+forward 7
+forward 9
+down 8
+down 6
+forward 1
+forward 3
+forward 2
+up 3
+down 6
+down 7
+up 8
+down 5
+up 6
+down 8
+forward 4
+up 3
+forward 3
+forward 4
+down 5
+up 5
+down 4
+down 5
+down 5
+forward 3
+up 9
+down 8
+down 2
+down 7
+down 4
+down 3
+up 2
+forward 6
+down 4
+down 1
+down 4
+forward 1
+forward 8
+down 3
+down 7
+down 3
+forward 1
+down 9
+down 7
+down 3
+down 3
+down 6
+down 8
+down 2
+down 5
+up 1
+up 7
+forward 9
+forward 6
+forward 7
+forward 8
+up 7
+down 9
+down 4
+down 7
+forward 2
+forward 4
+forward 1
+forward 4
+forward 3
+forward 8
+down 5
+forward 8
+up 4
+up 9
+forward 3
+down 7
+forward 9
+down 2
+forward 5
+up 7
+down 4
+down 3
+down 5
+down 4
+forward 9
+forward 5
+forward 6
+forward 6
+down 2
+down 7
+forward 4
+up 5
+down 8
+down 9
+forward 5
+down 8
+forward 9
+up 6
+forward 8
+forward 7
+up 7
+down 9
+forward 5
+down 9
+forward 7
+down 5
+down 7
+forward 9
+forward 4
+up 1
+up 9
+forward 7
+up 5
+up 2
+down 6
+forward 7
+down 2
+forward 6
+forward 7
+down 4
+up 3
+up 9
+forward 4
+forward 6
+forward 3
+up 6
+down 5
+up 2
+forward 3
+down 5
+forward 1
+up 7
+down 8
+up 4
+forward 9
+forward 6
+down 7
+forward 4
+down 9
+down 8
+down 7
+forward 7
+down 5
+forward 3
+up 5
+forward 9
+forward 7
+forward 3
+down 5
+forward 8
+down 3
+forward 1
+down 3
+down 3
+forward 2
+down 4
+forward 7
+up 1
+down 6
+up 3
+forward 8
+down 6
+forward 6
+down 5
+down 4
+forward 3
+up 1
+forward 5
+forward 5
+forward 2
+up 9
+forward 3
+down 5
+up 3
+up 4
+down 7
+down 4
+up 3
+up 3
+forward 2
+up 2
+forward 8
+down 9
+down 1
+up 8
+down 2
+up 4
+forward 9
+up 1
+down 8
+forward 3
+up 9
+down 7
+down 5
+down 9
+down 1
+down 2
+down 9
+down 4
+down 8
+down 8
+down 9
+down 2
+down 6
+down 9
+forward 8
diff --git a/data.3 b/data.3
new file mode 100644
index 0000000..d89bdcc
--- /dev/null
+++ b/data.3
@@ -0,0 +1,1000 @@
+110000000001
+010011111011
+111000011110
+110101011110
+100000010100
+000101101111
+110100101000
+011100010001
+101001011011
+011000001100
+111101001011
+010001100100
+100101011010
+111101110101
+101001111100
+010010010101
+011100011000
+010110011101
+110001110101
+001111000010
+111011001011
+111111111110
+010000000100
+001011111101
+100111110101
+011011110100
+110101000100
+111010001110
+110101001011
+011100100110
+011100001001
+101001111101
+111111000010
+010010001100
+110010011001
+010100010010
+011010010000
+101111000100
+001010100101
+100010010100
+001000000110
+000011110100
+101101100001
+111100000111
+011010001110
+010110001000
+111101111010
+001001010111
+011001010011
+000111000010
+000010110001
+101000010111
+111010000100
+111001110111
+000000110001
+011111000110
+010110010111
+110100001001
+101100110110
+100111111000
+110000110000
+110110111101
+110011011100
+010001010010
+011011000101
+000001100010
+011001101001
+000111111011
+111000001101
+110100000101
+011000011011
+100101100110
+001001000001
+111011011010
+010101110110
+100011100000
+100000001011
+110101111001
+000101001000
+110111111010
+011001111111
+101000000101
+101000011111
+010010000111
+101101111100
+101110100001
+100111100101
+101111001100
+110101001111
+011100001111
+010000011110
+000010111111
+011110100101
+100010010110
+011101110011
+000000010111
+110111000110
+100110010100
+011110101111
+101101000111
+111111011100
+110000100010
+010110001010
+011001000100
+111001100011
+111101110100
+000011011100
+110011010001
+110011100110
+100000011110
+100100000010
+001000100001
+011000011111
+001001101001
+000100011100
+100001010000
+100000110010
+111001101000
+100011101101
+000111000101
+000011000101
+111110001011
+001111011101
+110110010100
+011010011011
+111111111010
+001010111111
+101111101001
+010000111100
+111010110111
+100100011000
+111010010110
+010100111100
+101001010000
+011100011011
+100101001110
+011100010110
+111010011100
+100110011001
+100110000110
+111010110010
+011000010111
+111101000110
+000001000011
+001011111011
+011100000111
+111011100100
+101111110000
+011111010010
+001100111000
+011001000010
+100110100111
+101000101110
+110100101100
+011101001100
+111100100011
+110101001101
+101111000110
+111010100100
+100101010101
+111011100000
+011100101010
+111111001111
+010010100001
+111001111111
+101000110101
+010001101010
+000110110011
+001010110011
+110001101001
+110110000011
+100111110011
+000100101100
+111010101100
+101011101100
+010110000100
+101001010101
+000001010011
+011110000000
+101111110011
+001010001000
+110000010001
+101010101100
+011010111010
+010100101000
+101100011011
+010010101011
+110101110001
+010101001101
+011110011001
+100000110011
+010110110000
+101100100010
+010000110100
+001000100101
+100011100011
+111000010110
+000110011000
+000011011000
+010101001000
+101000010100
+111011111011
+010110010001
+100111100011
+011011111100
+001010011110
+011110110101
+111100101110
+001001011110
+010100010111
+100011010001
+110110000111
+001000001101
+001011110001
+111001000011
+101101011101
+111000111010
+111111110001
+001100000000
+110011011010
+011010101001
+011010101011
+011010011100
+100100111110
+111001011110
+001010001101
+101101010100
+100100110100
+011000111111
+101011010100
+111010100110
+001111010010
+011001100000
+011010010100
+001100001010
+101001001111
+111011110110
+100101100001
+000100110010
+101111001001
+111001011000
+100010001101
+101101001010
+011001110001
+010110010110
+000100010100
+011011011100
+000101101011
+110010011110
+010010011010
+111110110010
+000010001111
+000010010011
+000000111010
+110001100011
+000010000100
+101011111000
+110111001001
+101111100000
+110101111000
+100010000011
+000001111111
+000110001110
+000010000000
+110110011110
+000101101000
+001101111011
+011101101100
+101100011101
+110001010100
+011010111000
+011101101010
+110010110101
+100101100000
+101001011100
+100101001010
+011110111011
+111101111100
+101000111001
+111001110001
+101100001111
+100001100111
+011001101000
+111000100101
+000000001011
+110011100011
+111010001011
+111100001011
+111101101001
+111001101110
+000110100101
+000111100001
+101101101101
+100000000011
+001100011111
+101101111110
+101010111000
+010100000001
+000110011011
+000100011000
+000001110110
+100111101001
+001111011110
+000010011110
+101001000010
+101001011111
+110011010010
+101100010110
+101110001111
+000111110011
+011011101010
+101010011010
+101100111001
+111111000000
+101100110101
+110100101101
+010000100111
+110011000001
+010001001000
+000111110000
+100101010110
+001010001001
+100100111010
+001010010110
+010111010010
+010010100000
+010110001011
+011001101011
+110001000111
+111001001000
+001101001101
+101000111100
+100011101001
+100011111010
+100000010101
+110010100110
+001000110101
+111100011011
+011001101010
+101011010000
+011111001110
+010011010111
+101100111000
+011111011010
+110110001010
+100010111110
+100001001001
+000001011101
+110001100101
+011001100111
+111001101010
+001000011001
+000011101000
+100100001001
+110001111000
+010111000101
+000111001101
+001110100010
+010110101011
+100111110001
+110000001001
+011100111001
+100111010000
+101111010000
+001110110100
+010111001010
+000100101111
+100000010010
+110110111000
+111010010001
+001101011001
+001011011100
+001001111000
+011101001011
+001101110111
+111111001000
+011001001001
+011100100111
+011011011011
+101010100111
+010101011100
+100000010110
+101101110010
+110111010001
+010000100110
+010011100011
+101111000011
+011110101011
+111101110010
+001100101111
+111101011101
+001010010001
+001110111110
+010101000010
+111010101101
+100001111000
+111100001111
+011010100000
+110001011110
+010000100001
+110001001001
+100101101011
+000010111010
+000110101101
+100110011000
+100100110111
+100010000001
+001110010000
+010001101110
+111001000000
+100010001011
+111010111010
+000100001101
+010101101000
+001101111010
+111100110100
+010010111100
+011010010110
+000001100000
+111111111001
+101001101111
+100011000110
+001100010110
+000110111110
+000001010001
+101010000011
+000110001011
+000110101011
+000011100111
+101011110110
+110100000100
+111000101101
+000100100010
+011011111001
+000010110000
+111010101010
+011000001101
+101111110001
+110101000001
+000000110011
+000100111111
+111001100100
+000011100010
+001100110001
+111000010000
+001011000000
+111000011011
+100001101001
+111100001000
+001011100000
+111101101000
+100100101111
+110110001111
+011110011110
+010011011100
+110110010001
+011001000111
+101111110101
+011101011111
+010100100010
+101101010110
+010001111111
+111110111000
+001010110101
+111000111000
+110101011010
+011001110110
+011101011001
+010100110111
+101101111111
+111111101011
+111010101111
+010000111011
+111010000111
+000100111010
+010011000100
+101010001011
+010111110110
+100001100011
+111001110100
+011000100101
+000011111111
+100101010111
+011000000110
+001011001000
+011100000000
+011110011100
+100101001001
+000001110000
+010110011110
+001111000101
+100101110001
+110111100111
+001010010000
+110011101011
+011111001011
+011010110000
+011011010110
+000111100011
+110000001010
+000010111101
+100100101001
+010100000100
+001101111100
+111000100010
+010110000001
+111010111101
+000001010100
+100100100110
+110011000000
+000111101000
+000110101110
+011101011010
+001100110011
+101011111001
+001101001011
+100110011100
+110001111001
+101101001100
+110000110011
+110000111110
+000010101010
+010001111010
+001100001001
+111000011100
+101011000001
+101000011110
+111001010101
+010001100001
+011001111001
+100010100001
+111101011110
+111110100001
+001011000011
+100010110111
+010100101110
+110001110011
+111001011111
+001101000010
+000001111110
+010011101100
+111010110000
+110001100001
+101001111001
+000101100001
+111110110110
+010010001110
+001010001111
+001010001100
+111000000010
+000101000011
+010110000101
+011111110111
+000000000111
+011101100000
+000011110010
+010110100100
+111011000101
+010111011001
+111111100011
+010111001011
+101110111110
+100001110110
+111110111100
+110011000110
+101100110111
+001000011111
+000000111111
+010100010000
+100000001111
+100010101000
+110110001101
+010101100101
+111110101111
+010010110011
+000101011000
+110001110100
+001111111010
+110100111110
+111010111111
+110100110101
+100000111111
+011011101110
+000001101000
+110011100010
+111011110101
+111100000010
+101000001110
+100101101001
+101110010111
+000001100001
+000101001111
+000101101010
+101011001010
+001100001100
+111010110110
+101100000100
+010011010011
+001000100111
+001110100001
+010101011101
+101011111101
+111110110011
+001101100000
+101111000010
+001110010101
+000111111100
+000110000100
+000101111001
+000011111000
+000010000110
+001010011000
+111111101001
+011000001111
+111010100001
+111110001111
+101110010110
+010011000011
+110001000010
+110111100110
+010100000111
+000011000010
+000000010010
+100111111011
+001011111000
+110010001100
+000111011101
+000101001010
+001100110101
+110110110000
+110111100101
+000000111000
+100011100111
+100100111101
+011011001011
+000100101000
+111101010101
+010011111101
+110100110100
+110011111011
+100111011011
+101000100100
+011000001110
+101000001000
+110101011001
+100110111100
+110010000001
+000111000011
+010001001100
+101001000100
+100000101101
+011011111010
+101000100010
+011001011111
+011001000001
+001100011010
+100011011111
+110011010111
+111000101000
+001001110110
+101010101011
+001110110110
+011111010011
+100111111010
+001111101110
+110010101000
+000001111000
+100110111101
+110110001001
+111000011111
+011111000111
+111100011000
+101001000110
+110010000010
+000100111000
+001000101000
+011100100001
+101101101010
+110110111011
+001011101100
+110111110111
+011000111101
+110000111000
+101010000101
+111010011011
+111011101010
+101100101100
+000110101000
+110011111001
+010111011000
+100101111101
+101110110000
+100001111010
+110101100001
+100010011110
+011000100100
+101110101111
+111011011110
+000110110100
+010100001100
+101001101000
+001001000010
+100110001001
+001011111100
+100011111100
+011100001011
+001100000100
+100111001011
+011101000101
+011110000100
+011011011101
+001001011010
+110110011101
+000000001100
+010111100101
+111011011101
+000100101110
+001100011001
+110001001110
+101010100001
+011101100011
+100000111000
+111111100111
+001000100011
+110000000011
+101001010010
+111101010100
+111101111110
+001110100100
+111100100010
+010000100101
+010100001101
+011010011110
+001110000110
+101000000001
+010111111000
+111111011011
+110110101010
+000000110110
+111001111010
+001110110010
+111011010110
+001100100010
+011111000100
+000111010000
+100101110111
+001011110011
+111110011011
+111001010011
+000110011100
+010111000111
+101000001100
+010101111011
+100001011011
+010100110101
+010000000000
+110010011100
+110101001110
+111010111110
+101101110101
+011010101111
+101010011110
+010111110100
+010100110011
+110110001100
+001011110100
+010001000000
+100011010110
+100111000000
+010111100000
+100010100110
+001100101101
+010111100110
+101101000100
+101110011001
+011011100101
+101101101111
+110010100000
+100100100010
+001100110000
+110110011100
+000010000001
+101001101001
+001001100110
+000101100011
+111101000111
+000110000011
+011011110000
+110010000011
+010111000001
+101101011001
+101100001001
+101100010101
+011010011111
+010100011100
+100111100111
+101110100110
+101011010101
+110110101111
+010001010101
+000010001100
+001110000001
+110011111100
+000001111001
+001000111101
+010011110001
+110100010010
+100000100101
+100100000011
+111110010000
+110010001001
+011111100001
+010011011001
+111110110001
+000011010010
+011101101011
+110011100001
+000110101111
+001111101101
+110101110000
+001000011101
+111111001100
+110101101111
+000110111000
+101100010100
+011101100100
+111000101010
+110001001011
+100010001111
+001101000111
+011000010000
+110010110001
+111100100001
+110111110110
+000010000011
+100001111110
+111001001001
+001011011101
+000100011101
+001100100111
+000011010001
+111111001110
+001111111101
+110001110001
+101010011101
+110010010101
+001011010101
+111110010011
+011001101110
+101000011100
+110100011111
+000001001111
+100001111001
+001101110110
+010111111100
+111101011111
+001111110001
+101001101110
+100100100111
+100010011100
+010110011111
+100010111011
+111011110010
+111010010011
+111001111100
+011100010011
+001010100100
+111001100101
+111100011001
+101110001011
+100000011111
+010010011000
+100001000011
+001001111101
+010111001100
+100101011101
+110011101010
+010010101110
+100011001101
+101100101001
+011110010000
+101000011010
+110100010101
+010110111110
+011110010111
+100000001000
+101000011000
+000111100111
+011001100110
+001010011001
+011011101011
+101000000110
+000100010010
+100100101011
+000101011111
+010000110101
+000000011010
+111101111001
+111011011111
+010000001001
+100101100011
+000111011001
+111011011011
+000011011001
+111101011001
+001000001100
+000110001000
+110111010010
+101100101011
+111101110001
+110101101101
+100111001110
+110010111110
+000010001010
+101101000001
+000011101111
+110000100100
+010001101001
+000000001110
+001110011101
+000100101011
+110100111100
+011000100111
+001110101101
+010101100100
+101110100000
+100110001010
+101110010000
+000111111010
+011011110101
+001111110100
+000111110110
+101011111110
+100010110000
+100100100101
+101000001101
+010011111111
+001110111001
+101010110110
+110010011011
+110001001000
+101110100011
+101001011000
+100111101110
+100111000111
+001000111100
+010101111010
+100010100101
+110011010011
+100100000111
+111010101001
+110001001101
+011000101001
+000110100001
+100011111110
+001100011000
+110100010000
+001010110100
+000100000110
+001011101010
+001100100110
+011111101011
+000101111101
+001110110101
+110000001111
+001010000011
+110101001000
+001000010001
+111011101011
+001001011101
+000001000000
+000110010101
+100110101010
+101010000111
+110101101110
+100000010011
+001110001011
+011110000010
+100000100010
+111111101100
+011010000011
+001101001110
+011100001000
+000001001110
+000111001000
+100100011010
+010000010100
+111110001100
+111100101111
+101000100101
+011100101110
+000011101101
+000100100100
+011111111001
+000100110011
+001011001011
+110101100000
+101111111011
+001101111101
+100110100011
diff --git a/data.3b b/data.3b
new file mode 100644
index 0000000..a6366a8
--- /dev/null
+++ b/data.3b
@@ -0,0 +1,12 @@
+00100
+11110
+10110
+10111
+10101
+01111
+00111
+11100
+10000
+11001
+00010
+01010
diff --git a/data.4 b/data.4
new file mode 100644
index 0000000..22051e6
--- /dev/null
+++ b/data.4
@@ -0,0 +1,601 @@
+15,61,32,33,87,17,56,73,27,83,0,18,43,8,86,37,40,6,93,25,14,68,64,57,39,46,55,13,21,72,51,81,78,79,52,65,36,92,97,28,9,24,22,69,70,42,3,4,63,50,91,16,41,94,77,85,49,12,76,67,11,62,99,54,95,1,74,34,88,89,82,48,84,98,58,44,5,53,7,19,29,30,35,26,31,10,60,59,80,71,45,38,20,66,47,2,23,96,90,75
+
+26 68 3 95 59
+40 88 50 22 48
+75 67 8 64 6
+29 2 73 78 5
+49 25 80 89 96
+
+57 26 21 56 70
+38 48 78 40 54
+82 71 22 24 4
+16 9 65 42 79
+43 94 39 12 67
+
+70 97 26 39 22
+65 11 69 6 93
+71 74 72 57 59
+61 21 89 86 17
+66 15 94 79 85
+
+46 4 55 2 92
+ 7 8 53 65 42
+49 35 99 77 0
+82 28 25 43 33
+79 12 58 81 71
+
+82 5 63 98 48
+78 61 29 68 9
+19 6 69 73 89
+20 81 8 17 11
+24 90 59 21 91
+
+76 87 99 12 78
+14 97 19 70 9
+66 44 88 30 63
+58 85 55 24 36
+49 10 6 2 92
+
+33 63 13 28 70
+73 67 69 27 91
+85 71 98 37 36
+46 80 21 97 75
+54 92 44 11 2
+
+88 4 55 76 75
+29 79 30 26 18
+45 31 72 77 86
+ 7 14 74 94 98
+93 78 8 66 16
+
+75 34 74 94 59
+31 41 11 85 68
+12 24 19 80 29
+ 7 97 77 73 14
+56 27 26 72 35
+
+15 35 65 77 76
+31 9 89 73 63
+54 18 4 39 12
+22 75 30 67 33
+79 84 6 64 92
+
+75 58 28 83 37
+81 82 62 7 25
+31 55 51 42 41
+53 38 85 69 63
+ 0 89 20 96 79
+
+43 29 62 59 27
+ 6 1 66 77 32
+70 37 57 82 38
+22 60 19 68 88
+99 93 40 28 47
+
+76 47 68 60 28
+57 34 35 83 11
+ 2 51 0 49 9
+31 65 14 90 46
+96 81 32 63 24
+
+17 38 59 27 54
+26 78 91 40 80
+74 98 77 14 53
+13 49 3 63 46
+45 34 64 66 37
+
+ 9 62 22 36 32
+40 56 2 98 74
+71 45 58 31 42
+14 1 51 39 66
+86 18 90 88 20
+
+98 61 0 78 22
+ 6 42 83 74 30
+17 39 45 52 75
+49 18 4 67 91
+12 84 89 10 87
+
+12 40 69 11 87
+70 73 14 92 78
+99 67 34 50 94
+43 49 82 68 1
+86 20 16 18 63
+
+26 13 68 33 88
+41 73 17 78 12
+10 82 62 19 8
+58 3 84 5 70
+97 91 2 46 15
+
+48 61 90 54 73
+46 77 47 37 49
+41 81 79 88 0
+23 86 84 65 60
+87 91 34 78 38
+
+ 4 9 58 62 99
+35 11 6 13 25
+68 67 78 28 19
+95 44 63 92 79
+20 61 54 88 81
+
+78 75 59 79 44
+ 6 3 7 33 10
+41 2 90 9 81
+20 4 55 54 27
+28 51 64 95 21
+
+28 55 99 76 58
+61 18 71 67 65
+80 84 6 63 46
+72 81 29 35 10
+64 94 15 26 79
+
+57 18 32 13 70
+81 3 84 91 75
+10 15 63 16 87
+97 86 95 58 50
+83 2 0 12 89
+
+48 37 6 61 43
+49 89 80 93 50
+64 12 23 82 99
+38 36 69 67 63
+25 66 72 92 95
+
+ 4 20 11 85 27
+88 29 59 79 48
+16 2 64 55 90
+73 82 1 56 61
+34 8 23 32 6
+
+24 12 80 18 14
+54 86 89 66 38
+ 0 62 46 72 17
+77 37 74 79 85
+ 1 29 87 42 15
+
+54 88 75 16 33
+76 9 19 69 2
+14 98 46 87 67
+32 6 62 45 25
+30 38 52 0 51
+
+15 32 85 22 81
+49 59 72 74 23
+54 33 34 84 89
+37 12 55 83 2
+11 25 51 24 38
+
+72 20 87 38 24
+74 28 76 42 94
+23 50 75 80 18
+15 53 85 95 68
+88 0 34 59 27
+
+15 69 3 45 94
+ 8 90 27 95 48
+37 9 2 74 59
+43 46 25 98 83
+68 73 24 31 72
+
+63 65 61 7 57
+95 51 66 64 17
+94 93 44 58 59
+30 90 97 23 10
+47 92 56 20 70
+
+26 30 45 99 31
+81 41 3 69 83
+44 89 74 72 65
+86 20 29 67 4
+64 84 9 33 18
+
+49 7 38 88 94
+98 54 36 89 23
+34 51 70 79 61
+19 15 4 27 73
+12 13 35 44 95
+
+36 49 60 27 53
+44 81 23 50 73
+12 31 48 63 61
+91 32 47 1 87
+88 96 70 90 10
+
+80 13 46 51 61
+20 12 71 73 54
+27 86 21 62 37
+30 25 67 14 6
+55 78 88 32 57
+
+99 71 10 58 52
+26 5 36 44 86
+56 46 16 90 3
+94 89 53 23 31
+77 14 34 32 54
+
+59 60 15 0 45
+55 78 48 14 33
+37 32 20 68 19
+ 8 24 26 52 23
+82 70 40 21 7
+
+61 70 95 96 18
+26 89 43 33 92
+50 88 64 54 76
+78 19 56 7 68
+29 59 77 71 63
+
+48 28 79 68 64
+61 38 52 78 59
+31 41 10 39 77
+34 15 43 98 73
+17 54 55 75 27
+
+55 49 3 5 71
+85 48 75 95 45
+88 2 56 29 31
+83 70 53 52 66
+74 27 89 50 91
+
+32 61 13 1 37
+ 9 92 35 26 39
+98 25 7 5 12
+ 0 99 17 82 27
+19 42 8 21 30
+
+33 77 59 37 42
+80 64 61 73 79
+15 41 58 45 93
+86 2 92 57 83
+20 24 17 13 23
+
+98 57 16 14 99
+70 43 97 94 52
+19 89 88 54 17
+44 41 15 60 4
+31 71 33 96 68
+
+ 9 69 10 79 43
+84 19 5 48 71
+40 22 66 89 82
+36 62 6 76 81
+51 18 30 93 75
+
+96 42 32 35 36
+28 81 53 87 92
+51 34 91 80 15
+23 29 62 98 4
+25 2 83 41 46
+
+55 79 98 90 27
+33 75 48 38 39
+21 65 52 63 2
+85 53 5 88 15
+50 96 70 3 8
+
+22 45 77 61 69
+15 81 71 59 26
+74 12 30 2 27
+25 78 24 70 65
+99 66 35 16 57
+
+44 85 88 14 64
+67 55 47 98 99
+87 57 10 84 27
+42 28 39 81 56
+46 76 8 75 95
+
+96 4 48 28 81
+67 29 6 30 8
+20 24 64 7 12
+16 71 59 19 99
+82 9 0 62 87
+
+70 98 10 97 92
+ 7 94 67 20 26
+77 13 69 61 51
+ 4 71 3 28 91
+85 11 27 56 54
+
+ 3 98 31 47 75
+34 95 8 27 42
+74 49 80 79 11
+15 17 89 85 33
+55 52 32 36 45
+
+ 4 78 93 29 63
+13 24 40 17 75
+12 92 48 82 60
+26 54 8 47 37
+41 57 36 32 99
+
+ 1 27 8 47 41
+86 20 53 61 96
+45 21 80 58 64
+ 5 95 23 13 10
+81 87 49 24 50
+
+27 78 50 18 43
+23 75 77 38 29
+71 93 64 5 56
+34 84 67 52 79
+90 95 19 46 88
+
+83 41 79 67 69
+60 47 2 43 85
+12 17 28 89 81
+16 18 98 35 62
+ 7 45 25 40 58
+
+79 21 7 85 76
+55 8 14 3 72
+25 30 62 6 82
+38 16 32 95 59
+27 99 33 75 98
+
+65 76 69 98 78
+94 55 31 73 77
+10 14 79 58 22
+26 34 16 87 29
+ 2 24 30 27 91
+
+31 42 38 93 88
+36 68 7 66 59
+23 71 45 72 94
+52 81 84 27 41
+18 49 76 82 70
+
+50 58 95 52 35
+21 46 68 71 59
+34 84 76 62 57
+94 41 99 77 55
+69 48 97 78 73
+
+53 86 48 8 26
+ 3 72 57 27 23
+99 4 71 21 50
+39 18 54 41 82
+ 7 46 1 65 96
+
+63 98 33 80 56
+89 75 15 22 59
+69 36 0 86 12
+21 41 55 49 74
+ 7 90 76 5 44
+
+78 40 2 61 76
+25 5 42 88 35
+ 1 41 28 71 85
+ 3 34 22 72 23
+15 56 67 38 68
+
+11 89 28 48 87
+57 80 1 42 33
+59 18 7 24 65
+30 79 12 68 83
+44 82 2 53 58
+
+ 7 14 22 23 29
+53 37 48 86 3
+56 25 54 82 43
+ 0 91 6 17 49
+33 95 63 94 12
+
+86 62 0 47 69
+80 91 37 15 46
+50 28 75 83 31
+65 5 39 23 55
+88 84 72 70 74
+
+36 31 82 32 78
+30 18 11 29 38
+55 84 9 33 57
+16 51 48 77 58
+73 22 79 85 54
+
+70 66 89 40 55
+75 17 36 88 28
+22 97 92 43 72
+25 27 3 18 45
+13 14 54 12 74
+
+11 43 96 92 51
+ 7 59 2 32 69
+79 0 46 68 80
+18 95 88 39 60
+84 14 58 36 22
+
+82 88 64 85 51
+45 95 50 27 99
+15 13 21 69 9
+53 36 79 22 68
+83 8 92 65 32
+
+31 37 89 28 26
+17 25 99 20 5
+97 49 21 60 83
+55 57 16 40 6
+45 39 33 0 65
+
+86 51 0 31 7
+95 33 85 87 14
+32 48 91 46 36
+60 90 88 38 15
+52 75 40 23 84
+
+25 35 57 8 86
+ 3 59 46 96 13
+ 0 41 45 76 79
+97 36 60 26 53
+33 74 64 66 93
+
+59 3 96 84 71
+39 90 61 77 19
+92 38 6 32 54
+12 5 62 86 75
+43 98 23 82 33
+
+ 1 67 51 6 94
+57 44 53 90 2
+19 89 80 30 45
+42 88 62 98 33
+20 63 78 56 83
+
+47 21 70 31 75
+19 38 91 85 73
+22 27 54 86 13
+ 8 49 7 89 37
+32 25 17 16 0
+
+64 77 7 23 83
+56 2 17 65 60
+43 98 68 67 18
+22 96 72 69 86
+20 26 4 84 16
+
+30 31 95 98 48
+36 11 92 60 5
+ 0 76 73 27 14
+50 46 38 53 33
+12 97 59 61 51
+
+93 45 66 91 63
+80 75 52 55 1
+31 68 76 24 79
+15 2 42 70 20
+89 90 21 25 48
+
+36 99 49 83 57
+24 79 89 91 63
+58 47 27 74 38
+90 54 39 40 98
+ 7 2 77 14 86
+
+44 33 12 86 8
+65 92 74 52 55
+20 3 78 28 47
+80 17 11 41 29
+62 18 39 48 7
+
+63 52 87 81 14
+91 56 4 84 27
+ 9 24 68 18 47
+57 44 26 0 37
+40 75 11 88 20
+
+61 4 91 31 79
+67 7 6 34 95
+19 23 62 99 50
+43 1 37 16 74
+38 94 47 10 25
+
+90 51 37 7 16
+68 61 28 65 1
+58 80 49 11 23
+24 8 12 6 4
+30 75 19 63 53
+
+70 90 34 4 97
+73 26 87 61 88
+38 2 0 71 28
+57 69 18 15 60
+80 39 78 33 36
+
+44 10 3 46 31
+43 57 12 29 92
+ 0 61 54 23 52
+ 5 55 27 93 11
+24 14 30 87 99
+
+ 5 20 33 37 97
+78 83 50 93 65
+30 59 74 68 27
+ 4 32 90 16 79
+52 22 76 45 41
+
+29 53 9 20 15
+17 61 94 52 83
+43 82 97 14 57
+18 2 16 95 72
+30 39 79 65 25
+
+22 5 42 15 73
+32 16 29 36 77
+ 9 53 98 69 18
+97 56 79 66 88
+90 99 3 10 84
+
+71 92 19 1 80
+17 21 4 54 61
+27 66 20 63 49
+18 74 11 70 39
+97 98 64 34 10
+
+66 83 73 54 57
+68 10 8 17 22
+53 87 71 18 40
+43 4 65 89 59
+27 35 47 15 46
+
+87 76 88 54 2
+42 68 47 44 17
+16 70 10 53 43
+ 7 78 12 39 83
+15 65 96 85 24
+
+73 28 78 4 98
+97 56 16 69 6
+46 90 18 63 81
+26 95 19 30 31
+59 32 49 21 13
+
+68 48 7 85 12
+58 95 41 59 78
+ 1 28 53 51 9
+10 93 97 91 65
+61 75 63 23 57
+
+26 82 40 53 11
+ 0 22 68 99 96
+64 45 74 5 92
+84 33 13 34 73
+47 54 81 77 46
+
+12 83 25 82 72
+ 8 0 95 6 40
+17 64 27 23 91
+14 73 70 55 44
+69 76 92 78 56
+
+20 15 45 44 52
+94 26 61 38 64
+84 67 16 23 21
+73 71 5 10 36
+62 65 9 24 58
+
+59 75 60 0 97
+41 94 73 86 51
+ 8 89 22 45 18
+ 3 63 85 57 16
+42 44 10 23 93
+
+ 3 68 80 19 59
+41 6 92 58 28
+94 57 81 5 71
+90 54 9 8 14
+32 96 30 37 10
+
+15 16 14 10 52
+51 26 54 24 84
+45 90 28 36 96
+56 70 86 94 32
+67 81 13 29 27
+
+67 30 89 43 3
+86 10 38 90 77
+70 78 97 94 33
+29 8 85 69 56
+40 80 47 12 17