commit 8cba5f39bbb00b20635b31f852ba132ead4aef53
parent a3899249df1fe7aa84fd119c356de57ff0180397
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Wed, 18 Dec 2024 06:38:01 +0100
Day 18 2024
Diffstat:
7 files changed, 7111 insertions(+), 0 deletions(-)
diff --git a/2024/18/Makefile b/2024/18/Makefile
@@ -0,0 +1,24 @@
+CC=g++ -std=c++20 -g -Wall
+
+a:
+ ${CC} -o a.out day18a.cpp
+
+b:
+ ${CC} -o b.out day18b.cpp
+
+clean:
+ rm -f a b
+
+atest: a
+ ./a.out
+
+btest: b
+ ./b.out
+
+arun: a
+ ./a.out < input
+
+brun: b
+ ./b.out < input
+
+.PHONY: a b clean atest btest arun brun
diff --git a/2024/18/day18a.cpp b/2024/18/day18a.cpp
@@ -0,0 +1,63 @@
+#include <algorithm>
+#include <cstdint>
+#include <iostream>
+#include <map>
+#include <queue>
+#include <ranges>
+#include <set>
+#include <sstream>
+#include <string>
+#include <string_view>
+#include <vector>
+using namespace std;
+
+#define N 71
+#define S 1024
+
+bool b[N][N];
+
+class Qelem {
+public:
+ int d, x, y;
+ Qelem(int dis, int xx, int yy) : d{dis}, x{xx}, y{yy} {}
+ bool operator<(const Qelem& other) const { return d > other.d; }
+};
+
+
+int coord(int x, int y) {
+ return N*x+y;
+}
+
+bool inrange(int x, int y) {
+ return x >= 0 && x < N && y >= 0 && y < N;
+}
+
+int shortest_path(bool b[N][N]) {
+ vector<bool> vis(N*N);
+
+ priority_queue<Qelem> q;
+ q.push(Qelem(0, 0, 0));
+
+ while (!q.empty()) {
+ auto v = q.top();
+ q.pop();
+ if (!inrange(v.x, v.y) || b[v.x][v.y] || vis[coord(v.x, v.y)])
+ continue;
+ if (v.x == N-1 && v.y == N-1) return v.d;
+ vis[coord(v.x, v.y)] = true;
+ q.push(Qelem(v.d+1, v.x+1, v.y));
+ q.push(Qelem(v.d+1, v.x-1, v.y));
+ q.push(Qelem(v.d+1, v.x, v.y+1));
+ q.push(Qelem(v.d+1, v.x, v.y-1));
+ }
+ return -1;
+}
+
+int main() {
+ int x, y;
+ for (int i = 0; i < S && (cin >> x >> y); i++)
+ b[x][y] = true;
+
+ cout << shortest_path(b) << endl;
+ return 0;
+}
diff --git a/2024/18/day18b.cpp b/2024/18/day18b.cpp
@@ -0,0 +1,74 @@
+/*
+I just look the shortest path after every byte drop and stop when there
+is none. This code is not very fast (~25 seconds on my laptop), but it
+took just a couple of minutes to modify part 1 to get this.
+*/
+
+#include <algorithm>
+#include <cstdint>
+#include <iostream>
+#include <map>
+#include <queue>
+#include <ranges>
+#include <set>
+#include <sstream>
+#include <string>
+#include <string_view>
+#include <vector>
+using namespace std;
+
+#define N 71
+
+bool b[N][N];
+
+class Qelem {
+public:
+ int d, x, y;
+ Qelem(int dis, int xx, int yy) : d{dis}, x{xx}, y{yy} {}
+ bool operator<(const Qelem& other) const { return d > other.d; }
+};
+
+
+int coord(int x, int y) {
+ return N*x+y;
+}
+
+bool inrange(int x, int y) {
+ return x >= 0 && x < N && y >= 0 && y < N;
+}
+
+int shortest_path() {
+ vector<bool> vis(N*N);
+
+ priority_queue<Qelem> q;
+ q.push(Qelem(0, 0, 0));
+
+ while (!q.empty()) {
+ auto v = q.top();
+ q.pop();
+ if (!inrange(v.x, v.y) || b[v.x][v.y] || vis[coord(v.x, v.y)])
+ continue;
+ if (v.x == N-1 && v.y == N-1) return v.d;
+ vis[coord(v.x, v.y)] = true;
+ q.push(Qelem(v.d+1, v.x+1, v.y));
+ q.push(Qelem(v.d+1, v.x-1, v.y));
+ q.push(Qelem(v.d+1, v.x, v.y+1));
+ q.push(Qelem(v.d+1, v.x, v.y-1));
+ }
+ return -1;
+}
+
+int main() {
+ int x, y;
+ while (cin >> x >> y) {
+ b[x][y] = true;
+ if (shortest_path() == -1) {
+ cout << x << "," << y << endl;
+ exit(0);
+ }
+ }
+
+ cout << "Not found" << endl;
+
+ return 0;
+}
diff --git a/2024/18/input b/2024/18/input
@@ -0,0 +1,3450 @@
+50,55
+43,45
+29,21
+31,13
+25,19
+3,19
+31,1
+52,47
+33,20
+17,13
+55,66
+44,3
+19,14
+67,59
+33,58
+59,33
+2,13
+33,64
+57,56
+61,57
+37,19
+63,40
+5,30
+7,36
+33,19
+61,55
+33,67
+41,1
+15,18
+61,64
+21,39
+17,15
+59,58
+67,51
+11,28
+11,6
+17,14
+24,5
+43,68
+49,49
+9,39
+23,3
+23,13
+62,55
+43,69
+55,53
+37,15
+7,19
+21,37
+31,55
+49,70
+63,27
+62,65
+58,55
+36,59
+25,5
+9,25
+3,2
+34,69
+29,29
+67,54
+33,9
+7,22
+55,65
+37,6
+23,2
+36,17
+11,23
+16,21
+5,4
+56,69
+39,53
+69,47
+3,38
+67,49
+61,31
+63,37
+17,36
+10,19
+7,28
+33,3
+27,56
+8,17
+35,10
+7,16
+3,8
+27,8
+43,55
+33,16
+5,37
+55,49
+11,35
+45,70
+21,3
+42,67
+10,17
+19,38
+38,3
+5,31
+16,11
+53,44
+55,41
+1,21
+66,53
+4,25
+34,9
+68,63
+36,13
+23,19
+57,38
+55,51
+24,21
+9,33
+61,41
+5,21
+55,57
+43,52
+53,51
+12,29
+14,11
+65,69
+34,19
+20,3
+41,9
+16,13
+65,67
+64,69
+61,40
+53,45
+33,12
+41,65
+55,55
+1,37
+45,52
+14,41
+1,27
+69,37
+40,65
+49,55
+33,66
+59,29
+18,31
+35,8
+58,39
+29,7
+35,5
+21,5
+19,37
+60,51
+14,37
+6,7
+7,17
+32,53
+46,65
+23,58
+21,25
+19,25
+54,57
+61,67
+23,7
+3,3
+37,0
+11,31
+21,8
+55,45
+63,67
+11,37
+2,33
+37,52
+11,27
+11,19
+36,65
+1,31
+25,12
+17,27
+45,65
+17,22
+39,64
+59,39
+36,61
+42,65
+26,11
+57,55
+0,35
+14,43
+31,4
+51,59
+62,39
+49,67
+55,59
+21,27
+59,68
+57,59
+21,11
+50,51
+36,67
+15,11
+49,58
+29,5
+39,52
+37,67
+67,34
+14,13
+5,18
+33,68
+44,7
+2,29
+7,39
+67,35
+53,46
+0,29
+3,34
+22,3
+3,30
+43,49
+39,57
+45,63
+18,17
+22,35
+32,17
+57,64
+1,32
+13,16
+11,7
+55,35
+13,24
+4,13
+57,69
+62,43
+64,53
+65,62
+14,25
+51,43
+33,6
+1,1
+13,8
+39,63
+51,51
+35,56
+28,5
+7,29
+9,11
+39,67
+51,54
+63,65
+42,55
+44,67
+65,53
+19,19
+33,13
+47,65
+3,24
+47,56
+35,63
+9,7
+48,53
+39,49
+60,55
+69,32
+61,33
+41,58
+53,56
+13,35
+66,37
+59,64
+63,48
+3,5
+11,11
+17,17
+65,59
+53,67
+67,63
+9,35
+36,1
+32,21
+47,67
+67,69
+37,61
+33,17
+47,64
+53,66
+7,23
+9,15
+51,61
+65,68
+69,58
+0,15
+35,59
+37,17
+16,41
+2,19
+53,65
+51,50
+19,13
+47,63
+5,26
+37,69
+31,63
+69,69
+63,39
+63,51
+57,63
+55,64
+55,37
+47,69
+61,63
+19,26
+57,41
+49,61
+31,11
+13,33
+59,27
+66,33
+69,57
+55,47
+59,69
+12,11
+25,18
+8,13
+49,57
+15,14
+63,63
+59,37
+25,16
+40,55
+3,17
+28,9
+29,17
+43,67
+59,65
+63,58
+6,5
+33,11
+54,49
+53,54
+21,34
+31,61
+9,20
+25,11
+13,21
+55,39
+57,62
+6,27
+61,46
+55,43
+57,47
+25,9
+44,65
+13,26
+1,2
+56,31
+3,25
+47,68
+1,6
+27,7
+29,11
+49,53
+59,59
+47,54
+24,9
+27,20
+22,21
+48,49
+51,48
+30,3
+35,7
+63,31
+65,35
+57,35
+11,26
+8,33
+27,3
+9,19
+7,27
+18,19
+52,67
+23,12
+63,28
+15,7
+19,23
+34,55
+27,15
+47,62
+7,32
+61,34
+57,31
+17,25
+51,55
+27,13
+69,56
+34,15
+67,60
+11,10
+61,29
+3,11
+62,69
+12,21
+70,59
+17,24
+26,15
+17,35
+63,47
+2,17
+3,23
+4,21
+25,23
+9,8
+28,13
+15,38
+27,11
+58,31
+55,61
+69,59
+16,27
+16,17
+50,39
+37,53
+31,3
+5,3
+35,65
+9,13
+56,61
+30,17
+46,49
+55,60
+7,13
+44,49
+55,54
+29,2
+5,17
+23,1
+7,21
+67,53
+49,50
+49,60
+6,15
+47,49
+68,35
+38,59
+3,1
+24,15
+39,68
+7,7
+23,39
+35,58
+66,65
+33,65
+26,25
+54,69
+69,51
+53,49
+21,0
+64,37
+9,17
+66,59
+3,33
+36,7
+59,63
+5,32
+15,17
+38,5
+64,35
+65,65
+62,61
+54,29
+26,1
+17,19
+58,41
+67,33
+15,27
+30,15
+5,7
+15,41
+57,27
+5,10
+59,38
+63,53
+15,16
+29,63
+15,25
+67,41
+62,33
+43,59
+22,13
+67,67
+36,3
+19,24
+63,41
+60,69
+8,37
+57,34
+55,63
+3,35
+51,68
+39,51
+1,16
+1,7
+53,52
+44,57
+25,13
+9,23
+47,45
+40,7
+19,22
+21,9
+19,36
+28,55
+11,18
+23,10
+34,61
+3,28
+7,20
+35,12
+33,63
+3,31
+11,9
+39,59
+52,63
+57,39
+51,49
+33,1
+29,57
+69,54
+6,19
+21,14
+9,21
+67,61
+67,40
+61,39
+41,5
+43,63
+61,59
+67,31
+28,11
+39,61
+19,31
+50,35
+16,39
+29,9
+43,65
+3,14
+35,55
+60,57
+7,25
+51,64
+39,69
+17,7
+61,62
+21,23
+62,31
+41,3
+9,5
+67,32
+29,6
+57,67
+42,49
+1,23
+25,3
+59,41
+5,23
+23,21
+45,69
+21,10
+5,25
+19,21
+35,3
+19,15
+3,9
+19,17
+35,18
+45,45
+10,37
+47,53
+49,41
+54,67
+13,13
+39,62
+37,57
+37,9
+66,29
+69,61
+35,15
+47,47
+23,8
+17,9
+34,3
+7,33
+45,61
+21,20
+3,20
+13,15
+0,21
+39,55
+15,22
+24,1
+7,37
+21,6
+30,57
+7,9
+48,63
+32,51
+65,57
+60,33
+17,20
+36,63
+45,55
+64,55
+15,23
+13,9
+1,11
+1,9
+21,22
+53,63
+32,7
+27,5
+66,41
+57,65
+47,57
+11,17
+13,11
+69,36
+9,24
+21,16
+27,4
+20,19
+61,65
+66,69
+35,57
+37,62
+41,67
+60,53
+49,43
+26,21
+20,11
+17,37
+23,20
+5,33
+41,51
+33,60
+27,19
+33,59
+37,58
+21,7
+17,23
+4,7
+7,35
+53,37
+25,21
+54,61
+28,19
+31,8
+13,37
+17,28
+17,11
+35,13
+30,69
+59,36
+39,48
+53,61
+44,61
+49,69
+9,37
+19,35
+47,48
+66,57
+59,51
+45,60
+11,14
+43,5
+11,15
+15,13
+18,39
+64,41
+60,37
+37,56
+5,40
+52,51
+35,61
+53,40
+53,59
+68,67
+13,22
+69,68
+13,31
+63,36
+27,55
+23,11
+33,55
+5,27
+7,15
+65,48
+57,30
+58,61
+41,69
+21,4
+29,13
+10,35
+3,15
+27,1
+3,4
+59,31
+13,20
+57,44
+32,11
+39,8
+58,69
+31,15
+61,60
+9,34
+15,10
+67,65
+63,33
+59,35
+50,59
+20,17
+55,46
+43,2
+41,2
+51,69
+4,17
+5,35
+33,57
+14,19
+52,59
+18,29
+14,7
+15,37
+56,41
+51,60
+7,31
+5,9
+68,39
+65,37
+52,57
+56,67
+69,64
+61,35
+8,5
+68,57
+23,25
+5,29
+29,19
+63,61
+37,63
+57,61
+39,65
+22,39
+31,14
+21,13
+14,35
+57,57
+61,37
+54,63
+13,19
+11,13
+41,50
+53,47
+2,11
+69,66
+50,43
+29,1
+42,53
+53,38
+2,37
+60,61
+31,5
+1,4
+62,37
+67,37
+16,35
+37,11
+32,5
+6,23
+46,53
+61,69
+12,37
+41,61
+65,41
+37,54
+39,15
+5,19
+47,66
+65,63
+64,63
+62,57
+48,45
+67,55
+5,14
+37,59
+23,35
+35,69
+2,7
+39,5
+39,50
+29,15
+21,19
+55,58
+11,24
+33,61
+26,7
+61,25
+11,1
+51,53
+62,67
+55,52
+13,23
+66,61
+63,59
+55,40
+3,27
+30,19
+39,7
+3,7
+37,65
+37,70
+28,15
+65,39
+12,17
+9,22
+31,65
+63,69
+7,30
+53,39
+51,57
+61,53
+7,12
+2,23
+4,11
+65,64
+17,5
+1,19
+25,6
+55,69
+1,13
+11,8
+53,55
+4,5
+31,57
+68,61
+25,15
+69,55
+3,13
+14,29
+42,61
+10,23
+39,54
+30,13
+43,51
+47,42
+69,53
+59,57
+63,35
+15,39
+57,45
+19,39
+31,7
+29,23
+69,70
+5,13
+55,50
+31,10
+29,53
+55,48
+57,33
+69,35
+12,33
+31,18
+41,46
+64,59
+69,63
+15,35
+23,9
+31,56
+35,1
+69,33
+13,17
+6,39
+40,59
+69,65
+53,41
+28,17
+67,52
+29,60
+65,56
+25,34
+58,51
+17,26
+59,55
+18,33
+53,42
+1,3
+68,37
+33,53
+22,17
+53,69
+47,34
+54,37
+31,62
+29,10
+45,53
+1,15
+15,44
+31,58
+9,10
+0,9
+33,15
+49,51
+6,11
+10,29
+3,21
+57,43
+13,27
+69,27
+13,29
+51,65
+50,67
+43,53
+25,17
+45,67
+25,4
+15,19
+10,5
+65,66
+59,67
+45,68
+41,53
+45,49
+67,57
+35,66
+56,45
+54,43
+5,5
+37,14
+41,4
+11,25
+40,69
+39,66
+37,7
+15,28
+20,65
+31,54
+36,69
+38,67
+53,53
+20,35
+67,39
+56,35
+1,24
+59,61
+3,0
+7,5
+51,41
+6,35
+60,41
+4,29
+51,38
+1,35
+57,58
+23,5
+23,6
+56,55
+51,62
+63,57
+49,63
+33,51
+4,37
+21,15
+35,67
+53,35
+15,15
+1,29
+1,26
+15,21
+48,67
+10,15
+46,59
+1,25
+49,56
+56,37
+8,25
+9,14
+1,5
+5,34
+47,51
+34,63
+59,66
+31,66
+29,3
+52,41
+65,38
+3,22
+25,7
+51,37
+40,49
+12,35
+29,0
+8,7
+46,51
+21,1
+18,11
+56,49
+33,2
+49,65
+19,12
+27,17
+19,29
+17,39
+50,31
+11,21
+50,53
+57,42
+63,55
+6,25
+49,47
+43,54
+25,1
+27,2
+63,66
+11,4
+6,37
+12,13
+49,33
+31,9
+32,13
+52,21
+16,9
+63,30
+28,61
+39,17
+27,47
+47,33
+13,54
+48,9
+33,34
+21,67
+23,52
+21,45
+57,12
+65,11
+18,51
+41,43
+32,43
+43,1
+27,37
+57,25
+24,31
+29,27
+15,55
+29,64
+47,2
+67,19
+49,19
+45,37
+9,53
+7,55
+27,39
+67,15
+35,45
+42,43
+5,65
+10,1
+51,19
+56,7
+11,2
+61,15
+39,2
+18,7
+62,21
+23,45
+3,43
+64,15
+51,21
+3,47
+30,37
+3,55
+33,29
+44,23
+13,45
+47,15
+7,59
+59,5
+25,41
+11,51
+13,59
+41,38
+39,4
+23,42
+11,67
+17,43
+25,39
+3,53
+65,46
+61,21
+13,48
+35,44
+51,39
+65,17
+67,11
+53,23
+19,56
+20,41
+30,51
+25,65
+48,21
+65,28
+19,68
+57,6
+29,32
+37,30
+64,1
+25,68
+7,0
+69,48
+25,59
+9,1
+21,69
+50,65
+54,25
+25,47
+63,11
+67,5
+31,27
+39,47
+4,43
+7,66
+45,59
+51,47
+3,67
+31,21
+3,59
+62,9
+45,11
+10,47
+50,1
+62,3
+15,1
+51,31
+66,1
+55,14
+14,59
+29,47
+39,9
+55,67
+62,13
+40,31
+29,40
+46,17
+41,24
+7,50
+51,7
+13,41
+41,17
+9,50
+69,11
+2,69
+28,27
+11,65
+28,67
+24,55
+15,59
+12,45
+45,62
+9,65
+59,17
+6,43
+43,34
+51,45
+27,30
+30,29
+47,59
+17,63
+39,33
+27,58
+47,12
+37,27
+23,46
+1,61
+68,47
+41,57
+13,53
+59,48
+48,31
+45,39
+20,59
+23,27
+70,7
+37,34
+54,17
+55,19
+23,57
+11,44
+0,39
+41,40
+69,43
+50,27
+29,49
+25,58
+65,7
+59,50
+50,15
+17,51
+23,67
+17,56
+58,25
+65,21
+27,67
+69,44
+19,67
+60,23
+69,21
+47,44
+27,43
+60,11
+62,23
+57,7
+40,63
+1,60
+21,43
+35,39
+43,22
+65,8
+32,41
+54,13
+51,26
+17,67
+35,19
+23,24
+28,65
+32,37
+20,51
+69,13
+7,64
+9,49
+9,61
+58,11
+19,52
+33,7
+65,19
+25,31
+49,1
+65,50
+57,17
+59,11
+41,31
+37,1
+51,3
+51,27
+40,45
+53,1
+67,8
+56,9
+20,55
+47,43
+35,21
+36,43
+51,5
+51,36
+47,35
+54,3
+14,67
+4,49
+21,55
+37,43
+34,45
+69,9
+69,67
+38,21
+52,13
+65,14
+26,37
+41,29
+63,21
+67,9
+36,33
+59,14
+25,56
+23,55
+39,24
+57,16
+31,69
+47,31
+6,53
+43,40
+53,5
+27,23
+38,27
+45,13
+58,21
+17,1
+49,21
+21,33
+25,55
+35,23
+3,54
+53,31
+17,54
+65,29
+9,57
+40,27
+37,41
+33,49
+24,17
+57,9
+67,6
+41,27
+19,63
+53,13
+50,41
+8,61
+63,17
+24,41
+53,25
+54,5
+56,3
+15,47
+13,56
+55,7
+49,4
+33,30
+47,41
+43,61
+53,19
+17,29
+60,13
+39,45
+55,9
+19,6
+52,15
+41,63
+9,59
+11,30
+65,26
+47,55
+51,8
+5,69
+31,35
+13,52
+61,43
+21,42
+5,1
+70,9
+37,55
+26,61
+39,31
+27,44
+46,21
+69,39
+45,42
+49,23
+61,27
+45,23
+50,7
+17,31
+11,49
+12,43
+39,39
+27,27
+11,52
+12,69
+55,3
+55,11
+24,25
+49,42
+11,68
+70,33
+15,29
+47,19
+19,43
+17,21
+36,39
+21,35
+52,27
+59,13
+30,43
+57,0
+26,63
+44,15
+17,42
+45,46
+65,47
+41,11
+49,15
+17,49
+16,33
+3,66
+47,1
+67,3
+45,3
+59,7
+13,4
+11,59
+36,15
+38,45
+47,18
+22,61
+35,43
+49,17
+42,31
+23,23
+59,19
+45,4
+35,32
+35,9
+1,59
+5,57
+50,21
+3,64
+45,17
+23,59
+21,44
+41,47
+59,22
+63,45
+65,25
+27,21
+15,49
+61,13
+37,20
+9,55
+33,26
+42,5
+36,21
+31,68
+3,65
+25,25
+23,51
+31,60
+48,19
+19,59
+3,10
+57,37
+1,41
+55,33
+23,49
+69,49
+68,27
+47,3
+5,2
+64,33
+41,59
+61,61
+30,53
+29,67
+3,51
+67,16
+18,41
+64,31
+31,33
+11,29
+17,47
+31,67
+31,37
+5,11
+53,20
+67,20
+11,69
+42,17
+31,51
+3,36
+34,41
+20,49
+25,61
+5,58
+69,18
+0,55
+47,39
+45,26
+44,35
+61,50
+6,67
+18,69
+7,48
+1,17
+63,5
+35,54
+35,22
+19,9
+33,43
+15,48
+13,3
+55,15
+23,65
+55,22
+43,12
+15,68
+33,24
+5,41
+13,5
+7,1
+23,30
+68,3
+8,59
+67,27
+44,19
+27,33
+37,47
+41,22
+8,45
+63,15
+35,50
+35,28
+69,3
+36,25
+41,14
+55,20
+51,15
+14,53
+6,65
+7,49
+7,44
+47,13
+59,28
+37,13
+63,49
+9,66
+39,13
+55,13
+47,17
+41,13
+57,49
+17,64
+23,32
+35,27
+43,33
+38,43
+31,25
+65,4
+67,17
+43,11
+48,39
+17,41
+59,25
+24,47
+37,26
+44,31
+13,65
+67,29
+3,63
+1,49
+13,63
+37,48
+13,58
+67,24
+25,33
+55,26
+3,68
+33,27
+3,50
+35,24
+36,29
+38,11
+47,11
+65,6
+51,11
+1,67
+29,46
+45,8
+21,29
+14,33
+55,34
+65,52
+25,35
+51,35
+45,20
+11,41
+27,57
+23,37
+10,61
+55,17
+3,48
+51,4
+49,24
+15,3
+13,67
+31,64
+19,69
+4,45
+29,69
+38,9
+5,59
+51,9
+30,21
+43,15
+7,63
+21,41
+59,23
+7,56
+47,6
+28,31
+27,42
+42,11
+21,62
+15,54
+10,49
+24,37
+41,6
+43,29
+41,23
+51,63
+65,9
+31,47
+33,69
+49,35
+7,45
+63,20
+53,43
+29,39
+61,45
+51,29
+41,28
+13,69
+65,49
+5,60
+33,23
+43,13
+7,65
+67,43
+50,29
+23,47
+19,45
+14,65
+58,47
+59,8
+26,51
+61,3
+13,47
+24,69
+45,0
+47,5
+37,38
+29,43
+38,17
+45,41
+11,53
+17,53
+45,19
+33,47
+62,25
+17,55
+34,43
+19,61
+69,17
+53,57
+6,59
+23,31
+52,11
+29,65
+49,37
+17,65
+46,3
+38,13
+53,11
+29,36
+38,31
+7,53
+23,28
+63,8
+15,65
+47,9
+45,35
+5,53
+3,57
+29,55
+42,33
+13,1
+33,37
+68,9
+65,15
+19,58
+35,49
+13,40
+59,18
+21,46
+17,57
+46,33
+8,39
+18,59
+65,5
+39,1
+47,7
+11,60
+43,23
+50,19
+25,53
+9,3
+43,3
+40,33
+25,22
+19,55
+1,45
+50,13
+46,57
+55,32
+44,45
+69,31
+23,43
+27,65
+1,48
+37,22
+13,51
+64,21
+11,55
+22,27
+8,53
+55,5
+40,23
+2,41
+27,53
+63,9
+49,26
+19,33
+39,18
+1,53
+35,53
+11,5
+41,45
+44,59
+7,47
+31,32
+2,63
+59,3
+60,9
+29,33
+29,31
+15,60
+44,39
+67,45
+33,25
+47,61
+56,13
+49,16
+25,69
+67,46
+51,24
+67,2
+1,55
+5,15
+35,17
+47,40
+68,5
+63,46
+68,15
+7,41
+31,29
+20,25
+45,25
+53,33
+29,25
+37,31
+53,30
+18,45
+60,29
+47,14
+16,31
+9,47
+53,21
+49,5
+57,5
+9,67
+15,58
+41,0
+25,32
+6,61
+11,43
+63,25
+19,47
+23,33
+1,65
+9,40
+39,16
+16,5
+11,56
+41,15
+41,20
+41,7
+48,33
+37,49
+19,64
+31,41
+41,19
+17,61
+39,27
+70,27
+41,33
+61,1
+1,63
+5,61
+64,5
+3,49
+27,61
+45,21
+58,27
+7,3
+27,59
+22,69
+28,49
+21,61
+21,54
+2,61
+17,48
+7,43
+0,51
+10,57
+39,40
+41,41
+49,39
+22,49
+44,55
+7,42
+57,3
+3,69
+13,57
+1,57
+61,47
+48,37
+11,54
+23,60
+51,1
+69,26
+43,57
+61,16
+49,13
+43,31
+11,61
+28,43
+45,24
+39,41
+46,23
+25,45
+15,61
+36,37
+1,43
+43,26
+45,7
+41,37
+5,49
+69,14
+13,62
+6,55
+29,51
+25,51
+15,51
+41,55
+21,48
+45,27
+56,23
+39,30
+9,31
+45,28
+19,57
+32,29
+8,3
+61,6
+57,53
+38,41
+53,29
+41,44
+58,65
+47,27
+10,55
+45,33
+67,12
+49,9
+49,12
+29,37
+42,57
+19,4
+39,37
+1,69
+69,19
+51,32
+44,17
+53,18
+45,38
+5,62
+37,36
+17,3
+42,15
+27,40
+3,37
+15,53
+5,42
+37,25
+31,48
+5,55
+56,19
+62,19
+65,13
+19,1
+64,23
+24,65
+61,7
+21,38
+43,6
+8,9
+29,41
+65,1
+57,29
+60,19
+3,61
+6,47
+44,43
+21,31
+65,33
+8,47
+3,46
+41,21
+65,27
+23,61
+38,33
+51,25
+15,31
+44,29
+21,32
+67,21
+16,45
+34,49
+11,50
+55,31
+49,31
+15,9
+31,39
+33,38
+35,35
+31,23
+27,70
+19,65
+55,28
+32,25
+43,47
+7,69
+39,29
+66,11
+9,44
+11,39
+34,33
+19,44
+47,25
+67,22
+42,27
+46,9
+27,29
+43,7
+27,25
+21,53
+48,7
+26,67
+59,16
+51,33
+8,57
+61,30
+9,51
+60,1
+55,23
+17,50
+19,11
+35,37
+25,43
+67,23
+35,51
+57,24
+43,25
+24,63
+63,7
+37,21
+57,13
+3,56
+7,52
+13,39
+39,42
+66,19
+17,34
+29,26
+27,50
+53,2
+9,63
+47,26
+19,53
+58,19
+19,51
+49,46
+68,11
+69,45
+23,15
+61,9
+44,9
+56,1
+23,62
+59,9
+66,43
+45,1
+8,69
+47,23
+45,36
+46,45
+25,36
+33,33
+55,6
+41,25
+65,51
+65,61
+13,50
+61,5
+54,11
+35,41
+41,60
+33,35
+68,29
+59,53
+65,10
+67,25
+22,65
+57,1
+4,55
+31,17
+33,21
+69,50
+25,52
+69,15
+33,39
+27,49
+60,27
+40,13
+25,67
+45,9
+39,21
+5,67
+49,7
+15,33
+53,3
+32,1
+28,23
+63,44
+31,49
+5,39
+65,16
+21,70
+21,65
+39,38
+23,29
+49,45
+67,47
+59,49
+19,5
+36,47
+67,30
+35,11
+63,29
+52,29
+69,5
+55,1
+9,41
+41,35
+51,67
+31,46
+53,27
+13,25
+21,49
+13,64
+30,45
+49,10
+7,51
+11,57
+21,17
+10,67
+34,27
+37,5
+33,50
+3,39
+27,31
+59,45
+23,53
+25,60
+31,43
+25,27
+35,29
+65,43
+65,18
+15,69
+25,49
+43,35
+37,37
+45,31
+17,4
+23,44
+57,52
+28,53
+3,45
+43,17
+63,10
+28,47
+45,40
+18,1
+9,9
+37,29
+53,8
+12,63
+42,25
+42,63
+51,17
+25,54
+57,23
+57,19
+57,11
+22,55
+58,3
+45,30
+35,25
+68,43
+5,46
+35,33
+12,41
+19,3
+52,23
+31,19
+19,46
+22,25
+5,63
+67,7
+60,43
+1,33
+50,17
+7,68
+11,64
+17,59
+57,15
+59,43
+52,35
+45,29
+45,47
+70,21
+18,53
+10,41
+65,3
+33,45
+29,45
+33,41
+15,63
+9,32
+55,29
+31,34
+24,49
+16,51
+20,31
+54,9
+13,32
+22,67
+36,51
+13,49
+25,46
+61,49
+39,3
+49,27
+1,51
+39,11
+22,37
+23,69
+39,56
+11,46
+63,1
+22,51
+40,17
+48,23
+69,42
+14,5
+42,9
+21,59
+15,62
+23,17
+61,23
+15,57
+5,45
+13,66
+63,13
+45,15
+51,10
+40,35
+8,27
+70,1
+49,25
+63,23
+25,57
+40,11
+21,51
+27,63
+65,45
+20,29
+45,48
+34,37
+39,35
+23,41
+61,51
+46,5
+37,33
+69,29
+37,39
+63,43
+37,35
+18,61
+33,5
+48,29
+25,66
+5,52
+49,59
+69,25
+35,31
+19,7
+14,47
+35,40
+49,6
+45,5
+14,1
+19,27
+2,51
+41,39
+29,22
+21,63
+9,69
+4,61
+0,57
+63,3
+39,19
+65,55
+9,27
+9,70
+35,36
+17,62
+17,45
+53,15
+28,59
+16,65
+16,7
+20,1
+31,31
+13,61
+5,47
+52,17
+37,23
+13,2
+30,25
+48,35
+13,7
+31,22
+4,69
+59,15
+11,63
+63,19
+30,49
+67,13
+46,13
+3,29
+29,34
+45,51
+41,49
+59,2
+55,27
+57,21
+43,37
+62,5
+39,36
+70,15
+21,40
+54,21
+34,5
+25,29
+65,23
+49,29
+27,41
+25,37
+9,64
+21,47
+69,7
+1,46
+50,45
+2,57
+70,41
+60,25
+47,21
+15,67
+15,2
+27,9
+55,10
+20,67
+32,47
+67,50
+61,48
+52,33
+7,61
+53,17
+52,1
+43,27
+18,47
+61,12
+16,69
+45,10
+65,31
+42,47
+61,4
+66,13
+11,47
+59,6
+1,47
+66,3
+23,63
+21,28
+43,39
+26,29
+15,43
+7,2
+39,23
+69,23
+32,35
+43,41
+45,57
+27,38
+68,19
+37,51
+35,47
+58,9
+25,40
+59,32
+25,28
+17,33
+25,42
+37,3
+54,33
+16,57
+25,26
+21,21
+19,49
+48,1
+17,2
+27,69
+44,13
+27,45
+9,62
+18,67
+29,59
+3,41
+41,42
+31,28
+56,27
+56,15
+2,53
+37,45
+67,1
+62,15
+1,44
+4,65
+43,21
+37,10
+59,1
+64,49
+15,5
+66,25
+7,57
+39,25
+28,35
+13,43
+43,43
+29,52
+49,11
+7,11
+62,53
+43,9
+45,43
+30,41
+30,39
+42,19
+1,64
+29,62
+47,29
+30,67
+61,17
+47,28
+0,67
+69,52
+26,33
+12,59
+61,11
+21,58
+2,43
+45,32
+15,45
+11,33
+62,17
+31,53
+7,67
+59,47
+47,16
+59,21
+51,13
+55,25
+49,3
+51,23
+43,19
+20,63
+38,47
+11,38
+25,63
+35,46
+42,37
+31,45
+60,45
+17,69
+47,37
+29,61
+13,55
+3,40
+29,30
+57,4
+62,51
+58,45
+27,24
+9,45
+62,1
+46,37
+19,8
+66,23
+19,41
+17,60
+34,29
+64,43
+69,1
+27,35
+1,39
+11,3
+39,43
+55,21
+5,43
+5,51
+29,35
+3,58
+68,23
+53,9
+27,51
+53,7
+9,43
+52,5
+26,45
+61,19
+31,59
+33,31
+63,26
+11,45
+69,41
+21,57
+25,50
+57,51
+9,29
+24,40
+60,7
+60,8
+20,24
+43,30
+26,17
+68,4
+62,30
+34,67
+68,33
+68,25
+23,38
+32,15
+13,46
+56,18
+33,42
+38,44
+51,40
+9,0
+29,16
+38,70
+66,60
+59,26
+70,32
+68,7
+48,68
+63,0
+46,40
+17,6
+13,34
+35,60
+9,58
+0,40
+70,6
+12,52
+31,40
+12,70
+8,30
+12,9
+42,51
+26,35
+4,62
+32,39
+54,31
+22,23
+2,60
+36,55
+36,6
+56,51
+65,30
+0,52
+48,44
+67,0
+6,51
+12,2
+10,54
+49,34
+4,36
+62,54
+68,10
+16,25
+19,16
+28,22
+10,34
+54,34
+8,10
+38,10
+53,28
+16,14
+68,13
+47,38
+44,46
+51,2
+6,49
+64,60
+58,57
+52,65
+2,2
+36,64
+70,61
+68,49
+38,26
+34,64
+28,48
+56,26
+60,14
+56,4
+38,7
+48,2
+66,56
+59,40
+38,39
+70,45
+16,20
+37,40
+54,16
+34,22
+18,13
+39,12
+70,14
+26,30
+64,13
+13,12
+60,6
+30,30
+5,0
+54,65
+50,33
+54,38
+49,18
+32,20
+43,50
+23,70
+56,21
+35,6
+22,46
+34,2
+32,19
+53,22
+6,62
+32,45
+64,11
+50,11
+50,40
+20,2
+61,54
+66,49
+42,34
+46,14
+62,52
+18,68
+26,26
+66,5
+18,22
+48,62
+28,7
+12,32
+21,64
+21,24
+33,62
+48,16
+42,21
+44,32
+43,20
+6,42
+58,6
+32,28
+31,38
+8,68
+60,3
+49,66
+14,0
+4,4
+34,25
+58,50
+53,26
+32,67
+70,18
+54,51
+56,2
+58,7
+6,41
+28,70
+47,60
+8,26
+26,32
+40,39
+12,64
+62,59
+50,0
+16,15
+28,40
+46,29
+42,8
+46,63
+61,36
+40,29
+28,1
+29,12
+15,12
+54,8
+26,57
+36,22
+66,24
+18,14
+4,60
+22,11
+34,58
+6,13
+40,47
+23,18
+24,32
+32,60
+7,8
+58,12
+30,42
+64,39
+1,38
+24,45
+20,15
+39,34
+24,39
+61,42
+63,50
+14,26
+53,14
+40,15
+12,5
+44,21
+38,42
+20,64
+61,24
+28,39
+26,24
+42,23
+46,69
+27,60
+25,2
+36,5
+23,26
+54,30
+48,57
+34,1
+57,22
+29,4
+66,51
+35,2
+15,20
+70,4
+49,14
+45,16
+2,4
+28,69
+8,16
+60,28
+26,14
+6,3
+62,28
+44,8
+53,4
+69,40
+36,44
+54,4
+32,63
+22,22
+33,70
+68,55
+36,23
+35,0
+58,2
+61,20
+44,22
+0,32
+64,18
+28,4
+8,29
+21,56
+40,62
+28,33
+62,2
+22,5
+16,26
+50,22
+64,0
+24,33
+34,59
+55,4
+10,4
+42,41
+14,14
+41,26
+63,60
+10,32
+56,12
+70,24
+4,54
+70,29
+4,51
+61,32
+8,56
+20,57
+40,28
+40,34
+26,39
+49,62
+25,70
+46,4
+61,8
+64,14
+44,63
+58,59
+28,37
+0,30
+65,44
+38,1
+24,8
+4,31
+26,41
+56,29
+66,54
+24,46
+60,65
+40,41
+28,10
+59,24
+44,25
+51,44
+52,44
+0,59
+44,28
+26,44
+10,20
+5,36
+40,30
+34,0
+14,57
+34,47
+38,0
+16,23
+10,59
+63,52
+48,69
+31,44
+44,34
+63,4
+54,15
+56,56
+46,10
+56,20
+54,7
+17,10
+8,2
+68,38
+30,0
+17,8
+20,0
+12,49
+56,10
+67,18
+52,38
+4,12
+38,48
+19,10
+42,40
+65,42
+62,46
+0,61
+64,54
+58,13
+46,38
+62,40
+50,23
+50,3
+16,3
+50,42
+4,57
+34,20
+10,7
+62,27
+6,48
+46,15
+27,12
+32,24
+70,58
+65,2
+70,49
+4,58
+18,8
+43,70
+45,44
+58,1
+1,66
+56,60
+62,64
+18,27
+66,48
+34,56
+37,8
+15,46
+9,30
+36,54
+39,14
+50,26
+19,20
+59,52
+22,29
+34,52
+35,70
+13,14
+12,51
+27,6
+18,21
+63,42
+44,40
+32,40
+70,28
+22,28
+20,5
+0,66
+22,0
+24,16
+26,47
+52,7
+44,69
+44,44
+32,27
+32,64
+26,70
+70,47
+55,16
+40,44
+28,34
+70,57
+42,54
+53,16
+36,26
+15,8
+9,48
+16,16
+24,70
+5,54
+26,9
+16,67
+58,17
+25,0
+36,4
+26,28
+50,8
+43,42
+36,68
+53,48
+60,68
+57,60
+50,18
+30,12
+4,68
+54,20
+42,28
+38,14
+12,50
+32,22
+42,14
+56,50
+62,49
+63,34
+26,13
+14,45
+27,34
+46,41
+62,18
+0,37
+16,12
+9,12
+60,15
+30,6
+39,70
+2,59
+8,31
+67,56
+50,20
+14,16
+39,10
+56,32
+26,46
+57,10
+0,54
+4,35
+54,19
+49,40
+44,16
+48,25
+59,42
+43,48
+58,46
+61,28
+20,23
+68,44
+12,27
+40,16
+48,48
+12,56
+61,18
+10,56
+41,10
+66,4
+67,4
+41,52
+70,13
+49,32
+17,18
+48,8
+44,70
+51,22
+56,54
+40,42
+65,36
+46,64
+61,14
+30,7
+60,5
+52,9
+50,24
+18,20
+3,12
+70,23
+58,48
+0,60
+29,42
+22,50
+38,68
+0,18
+40,64
+9,36
+34,31
+57,40
+36,34
+44,38
+10,10
+58,22
+61,22
+60,10
+22,9
+26,8
+9,6
+17,44
+56,46
+32,55
+66,63
+26,53
+28,24
+50,62
+64,2
+10,46
+46,6
+13,68
+70,68
+18,16
+3,44
+64,7
+16,70
+2,70
+6,64
+0,69
+68,22
+57,8
+14,31
+12,20
+59,20
+57,70
+48,54
+34,17
+21,26
+48,66
+49,68
+54,50
+5,64
+10,51
+66,36
+68,30
+50,66
+16,0
+44,53
+34,51
+66,67
+22,10
+17,16
+50,2
+50,46
+20,52
+2,58
+29,24
+26,27
+30,10
+60,36
+0,13
+20,68
+54,48
+31,0
+42,39
+48,58
+18,28
+44,48
+60,48
+57,68
+70,54
+70,17
+6,16
+46,67
+40,70
+54,36
+6,31
+26,69
+7,46
+2,64
+54,41
+15,40
+34,7
+41,34
+32,8
+2,35
+36,35
+68,31
+29,8
+17,70
+8,46
+62,34
+4,63
+58,67
+63,70
+5,8
+14,54
+10,43
+58,62
+20,26
+10,60
+66,22
+54,14
+46,8
+43,18
+64,51
+62,6
+4,38
+44,14
+36,70
+12,65
+31,20
+4,6
+41,12
+32,49
+69,28
+18,4
+6,18
+18,0
+44,33
+32,4
+64,58
+18,2
+38,30
+57,48
+44,26
+53,32
+66,20
+16,44
+0,26
+37,4
+68,32
+38,4
+19,42
+2,50
+29,70
+61,68
+14,40
+6,54
+1,12
+40,48
+40,24
+4,67
+27,66
+16,38
+52,40
+26,18
+7,24
+25,64
+4,59
+54,44
+68,58
+21,18
+28,36
+60,42
+34,26
+48,40
+36,42
+2,56
+59,44
+46,46
+20,48
+40,5
+27,52
+10,45
+2,31
+11,16
+22,18
+26,12
+54,62
+33,52
+34,34
+68,54
+52,16
+34,70
+48,27
+62,24
+64,52
+44,64
+1,62
+58,24
+57,50
+2,22
+60,26
+48,52
+39,32
+68,21
+1,42
+36,58
+41,70
+21,60
+14,55
+0,46
+2,68
+52,14
+34,13
+20,12
+26,34
+34,11
+22,2
+45,58
+48,15
+24,68
+30,68
+16,61
+10,26
+37,24
+40,66
+2,36
+6,9
+24,36
+12,39
+50,48
+38,35
+4,50
+10,30
+58,5
+18,36
+16,62
+43,58
+10,39
+57,26
+0,63
+41,62
+30,14
+8,48
+4,3
+18,54
+32,66
+4,15
+4,19
+16,36
+36,10
+21,12
+15,6
+62,26
+60,21
+53,68
+53,6
+29,44
+18,65
+50,70
+41,64
+67,26
+6,22
+68,0
+69,38
+12,3
+20,66
+60,30
+52,54
+22,58
+42,3
+0,1
+48,32
+10,64
+56,64
+18,15
+22,52
+56,40
+58,18
+17,40
+16,28
+12,19
+34,60
+10,68
+18,12
+1,8
+41,48
+46,36
+6,4
+5,6
+62,63
+10,13
+6,57
+52,36
+39,44
+58,26
+42,66
+61,58
+4,27
+47,52
+49,22
+60,34
+8,18
+54,32
+16,56
+25,20
+55,56
+54,55
+26,42
+48,0
+1,52
+20,13
+49,64
+8,20
+56,70
+14,17
+57,28
+1,30
+36,9
+68,41
+50,60
+26,55
+54,28
+47,10
+25,30
+38,65
+58,0
+58,15
+56,17
+1,70
+50,47
+0,11
+36,56
+2,25
+70,25
+69,60
+46,30
+13,38
+50,58
+43,0
+6,36
+2,9
+22,62
+40,0
+15,4
+12,38
+60,62
+48,10
+66,15
+32,0
+56,52
+42,62
+16,55
+70,56
+4,41
+1,54
+6,45
+57,32
+25,8
+22,15
+32,18
+34,40
+34,24
+58,14
+56,0
+8,65
+63,62
+53,64
+5,24
+45,34
+24,51
+34,50
+24,57
+63,38
+63,24
+44,2
+58,63
+4,24
+46,48
+14,18
+67,36
+37,68
+68,14
+30,59
+38,61
+52,3
+7,40
+36,41
+48,13
+43,46
+38,12
+10,40
+5,44
+19,34
+42,48
+38,64
+40,21
+56,48
+26,0
+10,28
+14,15
+3,16
+63,18
+47,36
+70,60
+5,50
+42,18
+69,30
+0,16
+16,4
+24,54
+37,32
+52,18
+26,52
+36,19
+18,63
+67,14
+0,50
+52,12
+55,42
+50,12
+8,15
+20,9
+8,62
+1,28
+11,12
+64,47
+24,3
+0,20
+58,23
+11,32
+5,70
+2,26
+11,58
+38,29
+59,70
+0,14
+1,10
+33,22
+20,32
+28,30
+48,55
+0,44
+0,45
+44,30
+68,34
+37,18
+64,50
+9,42
+2,40
+70,63
+8,28
+33,14
+41,56
+58,40
+30,54
+47,70
+67,62
+56,65
+66,39
+20,40
+22,57
+38,20
+56,66
+70,50
+48,3
+17,38
+18,30
+46,16
+30,33
+6,60
+20,70
+66,17
+52,39
+13,42
+12,61
+46,56
+18,57
+8,67
+19,2
+19,0
+35,52
+10,65
+6,66
+50,10
+49,8
+0,42
+40,37
+20,54
+10,25
+44,10
+42,4
+50,14
+13,36
+12,46
+70,69
+33,8
+52,24
+55,68
+14,52
+6,56
+60,18
+32,44
+12,24
diff --git a/2024/18/input-cleaned b/2024/18/input-cleaned
@@ -0,0 +1,3450 @@
+50 55
+43 45
+29 21
+31 13
+25 19
+3 19
+31 1
+52 47
+33 20
+17 13
+55 66
+44 3
+19 14
+67 59
+33 58
+59 33
+2 13
+33 64
+57 56
+61 57
+37 19
+63 40
+5 30
+7 36
+33 19
+61 55
+33 67
+41 1
+15 18
+61 64
+21 39
+17 15
+59 58
+67 51
+11 28
+11 6
+17 14
+24 5
+43 68
+49 49
+9 39
+23 3
+23 13
+62 55
+43 69
+55 53
+37 15
+7 19
+21 37
+31 55
+49 70
+63 27
+62 65
+58 55
+36 59
+25 5
+9 25
+3 2
+34 69
+29 29
+67 54
+33 9
+7 22
+55 65
+37 6
+23 2
+36 17
+11 23
+16 21
+5 4
+56 69
+39 53
+69 47
+3 38
+67 49
+61 31
+63 37
+17 36
+10 19
+7 28
+33 3
+27 56
+8 17
+35 10
+7 16
+3 8
+27 8
+43 55
+33 16
+5 37
+55 49
+11 35
+45 70
+21 3
+42 67
+10 17
+19 38
+38 3
+5 31
+16 11
+53 44
+55 41
+1 21
+66 53
+4 25
+34 9
+68 63
+36 13
+23 19
+57 38
+55 51
+24 21
+9 33
+61 41
+5 21
+55 57
+43 52
+53 51
+12 29
+14 11
+65 69
+34 19
+20 3
+41 9
+16 13
+65 67
+64 69
+61 40
+53 45
+33 12
+41 65
+55 55
+1 37
+45 52
+14 41
+1 27
+69 37
+40 65
+49 55
+33 66
+59 29
+18 31
+35 8
+58 39
+29 7
+35 5
+21 5
+19 37
+60 51
+14 37
+6 7
+7 17
+32 53
+46 65
+23 58
+21 25
+19 25
+54 57
+61 67
+23 7
+3 3
+37 0
+11 31
+21 8
+55 45
+63 67
+11 37
+2 33
+37 52
+11 27
+11 19
+36 65
+1 31
+25 12
+17 27
+45 65
+17 22
+39 64
+59 39
+36 61
+42 65
+26 11
+57 55
+0 35
+14 43
+31 4
+51 59
+62 39
+49 67
+55 59
+21 27
+59 68
+57 59
+21 11
+50 51
+36 67
+15 11
+49 58
+29 5
+39 52
+37 67
+67 34
+14 13
+5 18
+33 68
+44 7
+2 29
+7 39
+67 35
+53 46
+0 29
+3 34
+22 3
+3 30
+43 49
+39 57
+45 63
+18 17
+22 35
+32 17
+57 64
+1 32
+13 16
+11 7
+55 35
+13 24
+4 13
+57 69
+62 43
+64 53
+65 62
+14 25
+51 43
+33 6
+1 1
+13 8
+39 63
+51 51
+35 56
+28 5
+7 29
+9 11
+39 67
+51 54
+63 65
+42 55
+44 67
+65 53
+19 19
+33 13
+47 65
+3 24
+47 56
+35 63
+9 7
+48 53
+39 49
+60 55
+69 32
+61 33
+41 58
+53 56
+13 35
+66 37
+59 64
+63 48
+3 5
+11 11
+17 17
+65 59
+53 67
+67 63
+9 35
+36 1
+32 21
+47 67
+67 69
+37 61
+33 17
+47 64
+53 66
+7 23
+9 15
+51 61
+65 68
+69 58
+0 15
+35 59
+37 17
+16 41
+2 19
+53 65
+51 50
+19 13
+47 63
+5 26
+37 69
+31 63
+69 69
+63 39
+63 51
+57 63
+55 64
+55 37
+47 69
+61 63
+19 26
+57 41
+49 61
+31 11
+13 33
+59 27
+66 33
+69 57
+55 47
+59 69
+12 11
+25 18
+8 13
+49 57
+15 14
+63 63
+59 37
+25 16
+40 55
+3 17
+28 9
+29 17
+43 67
+59 65
+63 58
+6 5
+33 11
+54 49
+53 54
+21 34
+31 61
+9 20
+25 11
+13 21
+55 39
+57 62
+6 27
+61 46
+55 43
+57 47
+25 9
+44 65
+13 26
+1 2
+56 31
+3 25
+47 68
+1 6
+27 7
+29 11
+49 53
+59 59
+47 54
+24 9
+27 20
+22 21
+48 49
+51 48
+30 3
+35 7
+63 31
+65 35
+57 35
+11 26
+8 33
+27 3
+9 19
+7 27
+18 19
+52 67
+23 12
+63 28
+15 7
+19 23
+34 55
+27 15
+47 62
+7 32
+61 34
+57 31
+17 25
+51 55
+27 13
+69 56
+34 15
+67 60
+11 10
+61 29
+3 11
+62 69
+12 21
+70 59
+17 24
+26 15
+17 35
+63 47
+2 17
+3 23
+4 21
+25 23
+9 8
+28 13
+15 38
+27 11
+58 31
+55 61
+69 59
+16 27
+16 17
+50 39
+37 53
+31 3
+5 3
+35 65
+9 13
+56 61
+30 17
+46 49
+55 60
+7 13
+44 49
+55 54
+29 2
+5 17
+23 1
+7 21
+67 53
+49 50
+49 60
+6 15
+47 49
+68 35
+38 59
+3 1
+24 15
+39 68
+7 7
+23 39
+35 58
+66 65
+33 65
+26 25
+54 69
+69 51
+53 49
+21 0
+64 37
+9 17
+66 59
+3 33
+36 7
+59 63
+5 32
+15 17
+38 5
+64 35
+65 65
+62 61
+54 29
+26 1
+17 19
+58 41
+67 33
+15 27
+30 15
+5 7
+15 41
+57 27
+5 10
+59 38
+63 53
+15 16
+29 63
+15 25
+67 41
+62 33
+43 59
+22 13
+67 67
+36 3
+19 24
+63 41
+60 69
+8 37
+57 34
+55 63
+3 35
+51 68
+39 51
+1 16
+1 7
+53 52
+44 57
+25 13
+9 23
+47 45
+40 7
+19 22
+21 9
+19 36
+28 55
+11 18
+23 10
+34 61
+3 28
+7 20
+35 12
+33 63
+3 31
+11 9
+39 59
+52 63
+57 39
+51 49
+33 1
+29 57
+69 54
+6 19
+21 14
+9 21
+67 61
+67 40
+61 39
+41 5
+43 63
+61 59
+67 31
+28 11
+39 61
+19 31
+50 35
+16 39
+29 9
+43 65
+3 14
+35 55
+60 57
+7 25
+51 64
+39 69
+17 7
+61 62
+21 23
+62 31
+41 3
+9 5
+67 32
+29 6
+57 67
+42 49
+1 23
+25 3
+59 41
+5 23
+23 21
+45 69
+21 10
+5 25
+19 21
+35 3
+19 15
+3 9
+19 17
+35 18
+45 45
+10 37
+47 53
+49 41
+54 67
+13 13
+39 62
+37 57
+37 9
+66 29
+69 61
+35 15
+47 47
+23 8
+17 9
+34 3
+7 33
+45 61
+21 20
+3 20
+13 15
+0 21
+39 55
+15 22
+24 1
+7 37
+21 6
+30 57
+7 9
+48 63
+32 51
+65 57
+60 33
+17 20
+36 63
+45 55
+64 55
+15 23
+13 9
+1 11
+1 9
+21 22
+53 63
+32 7
+27 5
+66 41
+57 65
+47 57
+11 17
+13 11
+69 36
+9 24
+21 16
+27 4
+20 19
+61 65
+66 69
+35 57
+37 62
+41 67
+60 53
+49 43
+26 21
+20 11
+17 37
+23 20
+5 33
+41 51
+33 60
+27 19
+33 59
+37 58
+21 7
+17 23
+4 7
+7 35
+53 37
+25 21
+54 61
+28 19
+31 8
+13 37
+17 28
+17 11
+35 13
+30 69
+59 36
+39 48
+53 61
+44 61
+49 69
+9 37
+19 35
+47 48
+66 57
+59 51
+45 60
+11 14
+43 5
+11 15
+15 13
+18 39
+64 41
+60 37
+37 56
+5 40
+52 51
+35 61
+53 40
+53 59
+68 67
+13 22
+69 68
+13 31
+63 36
+27 55
+23 11
+33 55
+5 27
+7 15
+65 48
+57 30
+58 61
+41 69
+21 4
+29 13
+10 35
+3 15
+27 1
+3 4
+59 31
+13 20
+57 44
+32 11
+39 8
+58 69
+31 15
+61 60
+9 34
+15 10
+67 65
+63 33
+59 35
+50 59
+20 17
+55 46
+43 2
+41 2
+51 69
+4 17
+5 35
+33 57
+14 19
+52 59
+18 29
+14 7
+15 37
+56 41
+51 60
+7 31
+5 9
+68 39
+65 37
+52 57
+56 67
+69 64
+61 35
+8 5
+68 57
+23 25
+5 29
+29 19
+63 61
+37 63
+57 61
+39 65
+22 39
+31 14
+21 13
+14 35
+57 57
+61 37
+54 63
+13 19
+11 13
+41 50
+53 47
+2 11
+69 66
+50 43
+29 1
+42 53
+53 38
+2 37
+60 61
+31 5
+1 4
+62 37
+67 37
+16 35
+37 11
+32 5
+6 23
+46 53
+61 69
+12 37
+41 61
+65 41
+37 54
+39 15
+5 19
+47 66
+65 63
+64 63
+62 57
+48 45
+67 55
+5 14
+37 59
+23 35
+35 69
+2 7
+39 5
+39 50
+29 15
+21 19
+55 58
+11 24
+33 61
+26 7
+61 25
+11 1
+51 53
+62 67
+55 52
+13 23
+66 61
+63 59
+55 40
+3 27
+30 19
+39 7
+3 7
+37 65
+37 70
+28 15
+65 39
+12 17
+9 22
+31 65
+63 69
+7 30
+53 39
+51 57
+61 53
+7 12
+2 23
+4 11
+65 64
+17 5
+1 19
+25 6
+55 69
+1 13
+11 8
+53 55
+4 5
+31 57
+68 61
+25 15
+69 55
+3 13
+14 29
+42 61
+10 23
+39 54
+30 13
+43 51
+47 42
+69 53
+59 57
+63 35
+15 39
+57 45
+19 39
+31 7
+29 23
+69 70
+5 13
+55 50
+31 10
+29 53
+55 48
+57 33
+69 35
+12 33
+31 18
+41 46
+64 59
+69 63
+15 35
+23 9
+31 56
+35 1
+69 33
+13 17
+6 39
+40 59
+69 65
+53 41
+28 17
+67 52
+29 60
+65 56
+25 34
+58 51
+17 26
+59 55
+18 33
+53 42
+1 3
+68 37
+33 53
+22 17
+53 69
+47 34
+54 37
+31 62
+29 10
+45 53
+1 15
+15 44
+31 58
+9 10
+0 9
+33 15
+49 51
+6 11
+10 29
+3 21
+57 43
+13 27
+69 27
+13 29
+51 65
+50 67
+43 53
+25 17
+45 67
+25 4
+15 19
+10 5
+65 66
+59 67
+45 68
+41 53
+45 49
+67 57
+35 66
+56 45
+54 43
+5 5
+37 14
+41 4
+11 25
+40 69
+39 66
+37 7
+15 28
+20 65
+31 54
+36 69
+38 67
+53 53
+20 35
+67 39
+56 35
+1 24
+59 61
+3 0
+7 5
+51 41
+6 35
+60 41
+4 29
+51 38
+1 35
+57 58
+23 5
+23 6
+56 55
+51 62
+63 57
+49 63
+33 51
+4 37
+21 15
+35 67
+53 35
+15 15
+1 29
+1 26
+15 21
+48 67
+10 15
+46 59
+1 25
+49 56
+56 37
+8 25
+9 14
+1 5
+5 34
+47 51
+34 63
+59 66
+31 66
+29 3
+52 41
+65 38
+3 22
+25 7
+51 37
+40 49
+12 35
+29 0
+8 7
+46 51
+21 1
+18 11
+56 49
+33 2
+49 65
+19 12
+27 17
+19 29
+17 39
+50 31
+11 21
+50 53
+57 42
+63 55
+6 25
+49 47
+43 54
+25 1
+27 2
+63 66
+11 4
+6 37
+12 13
+49 33
+31 9
+32 13
+52 21
+16 9
+63 30
+28 61
+39 17
+27 47
+47 33
+13 54
+48 9
+33 34
+21 67
+23 52
+21 45
+57 12
+65 11
+18 51
+41 43
+32 43
+43 1
+27 37
+57 25
+24 31
+29 27
+15 55
+29 64
+47 2
+67 19
+49 19
+45 37
+9 53
+7 55
+27 39
+67 15
+35 45
+42 43
+5 65
+10 1
+51 19
+56 7
+11 2
+61 15
+39 2
+18 7
+62 21
+23 45
+3 43
+64 15
+51 21
+3 47
+30 37
+3 55
+33 29
+44 23
+13 45
+47 15
+7 59
+59 5
+25 41
+11 51
+13 59
+41 38
+39 4
+23 42
+11 67
+17 43
+25 39
+3 53
+65 46
+61 21
+13 48
+35 44
+51 39
+65 17
+67 11
+53 23
+19 56
+20 41
+30 51
+25 65
+48 21
+65 28
+19 68
+57 6
+29 32
+37 30
+64 1
+25 68
+7 0
+69 48
+25 59
+9 1
+21 69
+50 65
+54 25
+25 47
+63 11
+67 5
+31 27
+39 47
+4 43
+7 66
+45 59
+51 47
+3 67
+31 21
+3 59
+62 9
+45 11
+10 47
+50 1
+62 3
+15 1
+51 31
+66 1
+55 14
+14 59
+29 47
+39 9
+55 67
+62 13
+40 31
+29 40
+46 17
+41 24
+7 50
+51 7
+13 41
+41 17
+9 50
+69 11
+2 69
+28 27
+11 65
+28 67
+24 55
+15 59
+12 45
+45 62
+9 65
+59 17
+6 43
+43 34
+51 45
+27 30
+30 29
+47 59
+17 63
+39 33
+27 58
+47 12
+37 27
+23 46
+1 61
+68 47
+41 57
+13 53
+59 48
+48 31
+45 39
+20 59
+23 27
+70 7
+37 34
+54 17
+55 19
+23 57
+11 44
+0 39
+41 40
+69 43
+50 27
+29 49
+25 58
+65 7
+59 50
+50 15
+17 51
+23 67
+17 56
+58 25
+65 21
+27 67
+69 44
+19 67
+60 23
+69 21
+47 44
+27 43
+60 11
+62 23
+57 7
+40 63
+1 60
+21 43
+35 39
+43 22
+65 8
+32 41
+54 13
+51 26
+17 67
+35 19
+23 24
+28 65
+32 37
+20 51
+69 13
+7 64
+9 49
+9 61
+58 11
+19 52
+33 7
+65 19
+25 31
+49 1
+65 50
+57 17
+59 11
+41 31
+37 1
+51 3
+51 27
+40 45
+53 1
+67 8
+56 9
+20 55
+47 43
+35 21
+36 43
+51 5
+51 36
+47 35
+54 3
+14 67
+4 49
+21 55
+37 43
+34 45
+69 9
+69 67
+38 21
+52 13
+65 14
+26 37
+41 29
+63 21
+67 9
+36 33
+59 14
+25 56
+23 55
+39 24
+57 16
+31 69
+47 31
+6 53
+43 40
+53 5
+27 23
+38 27
+45 13
+58 21
+17 1
+49 21
+21 33
+25 55
+35 23
+3 54
+53 31
+17 54
+65 29
+9 57
+40 27
+37 41
+33 49
+24 17
+57 9
+67 6
+41 27
+19 63
+53 13
+50 41
+8 61
+63 17
+24 41
+53 25
+54 5
+56 3
+15 47
+13 56
+55 7
+49 4
+33 30
+47 41
+43 61
+53 19
+17 29
+60 13
+39 45
+55 9
+19 6
+52 15
+41 63
+9 59
+11 30
+65 26
+47 55
+51 8
+5 69
+31 35
+13 52
+61 43
+21 42
+5 1
+70 9
+37 55
+26 61
+39 31
+27 44
+46 21
+69 39
+45 42
+49 23
+61 27
+45 23
+50 7
+17 31
+11 49
+12 43
+39 39
+27 27
+11 52
+12 69
+55 3
+55 11
+24 25
+49 42
+11 68
+70 33
+15 29
+47 19
+19 43
+17 21
+36 39
+21 35
+52 27
+59 13
+30 43
+57 0
+26 63
+44 15
+17 42
+45 46
+65 47
+41 11
+49 15
+17 49
+16 33
+3 66
+47 1
+67 3
+45 3
+59 7
+13 4
+11 59
+36 15
+38 45
+47 18
+22 61
+35 43
+49 17
+42 31
+23 23
+59 19
+45 4
+35 32
+35 9
+1 59
+5 57
+50 21
+3 64
+45 17
+23 59
+21 44
+41 47
+59 22
+63 45
+65 25
+27 21
+15 49
+61 13
+37 20
+9 55
+33 26
+42 5
+36 21
+31 68
+3 65
+25 25
+23 51
+31 60
+48 19
+19 59
+3 10
+57 37
+1 41
+55 33
+23 49
+69 49
+68 27
+47 3
+5 2
+64 33
+41 59
+61 61
+30 53
+29 67
+3 51
+67 16
+18 41
+64 31
+31 33
+11 29
+17 47
+31 67
+31 37
+5 11
+53 20
+67 20
+11 69
+42 17
+31 51
+3 36
+34 41
+20 49
+25 61
+5 58
+69 18
+0 55
+47 39
+45 26
+44 35
+61 50
+6 67
+18 69
+7 48
+1 17
+63 5
+35 54
+35 22
+19 9
+33 43
+15 48
+13 3
+55 15
+23 65
+55 22
+43 12
+15 68
+33 24
+5 41
+13 5
+7 1
+23 30
+68 3
+8 59
+67 27
+44 19
+27 33
+37 47
+41 22
+8 45
+63 15
+35 50
+35 28
+69 3
+36 25
+41 14
+55 20
+51 15
+14 53
+6 65
+7 49
+7 44
+47 13
+59 28
+37 13
+63 49
+9 66
+39 13
+55 13
+47 17
+41 13
+57 49
+17 64
+23 32
+35 27
+43 33
+38 43
+31 25
+65 4
+67 17
+43 11
+48 39
+17 41
+59 25
+24 47
+37 26
+44 31
+13 65
+67 29
+3 63
+1 49
+13 63
+37 48
+13 58
+67 24
+25 33
+55 26
+3 68
+33 27
+3 50
+35 24
+36 29
+38 11
+47 11
+65 6
+51 11
+1 67
+29 46
+45 8
+21 29
+14 33
+55 34
+65 52
+25 35
+51 35
+45 20
+11 41
+27 57
+23 37
+10 61
+55 17
+3 48
+51 4
+49 24
+15 3
+13 67
+31 64
+19 69
+4 45
+29 69
+38 9
+5 59
+51 9
+30 21
+43 15
+7 63
+21 41
+59 23
+7 56
+47 6
+28 31
+27 42
+42 11
+21 62
+15 54
+10 49
+24 37
+41 6
+43 29
+41 23
+51 63
+65 9
+31 47
+33 69
+49 35
+7 45
+63 20
+53 43
+29 39
+61 45
+51 29
+41 28
+13 69
+65 49
+5 60
+33 23
+43 13
+7 65
+67 43
+50 29
+23 47
+19 45
+14 65
+58 47
+59 8
+26 51
+61 3
+13 47
+24 69
+45 0
+47 5
+37 38
+29 43
+38 17
+45 41
+11 53
+17 53
+45 19
+33 47
+62 25
+17 55
+34 43
+19 61
+69 17
+53 57
+6 59
+23 31
+52 11
+29 65
+49 37
+17 65
+46 3
+38 13
+53 11
+29 36
+38 31
+7 53
+23 28
+63 8
+15 65
+47 9
+45 35
+5 53
+3 57
+29 55
+42 33
+13 1
+33 37
+68 9
+65 15
+19 58
+35 49
+13 40
+59 18
+21 46
+17 57
+46 33
+8 39
+18 59
+65 5
+39 1
+47 7
+11 60
+43 23
+50 19
+25 53
+9 3
+43 3
+40 33
+25 22
+19 55
+1 45
+50 13
+46 57
+55 32
+44 45
+69 31
+23 43
+27 65
+1 48
+37 22
+13 51
+64 21
+11 55
+22 27
+8 53
+55 5
+40 23
+2 41
+27 53
+63 9
+49 26
+19 33
+39 18
+1 53
+35 53
+11 5
+41 45
+44 59
+7 47
+31 32
+2 63
+59 3
+60 9
+29 33
+29 31
+15 60
+44 39
+67 45
+33 25
+47 61
+56 13
+49 16
+25 69
+67 46
+51 24
+67 2
+1 55
+5 15
+35 17
+47 40
+68 5
+63 46
+68 15
+7 41
+31 29
+20 25
+45 25
+53 33
+29 25
+37 31
+53 30
+18 45
+60 29
+47 14
+16 31
+9 47
+53 21
+49 5
+57 5
+9 67
+15 58
+41 0
+25 32
+6 61
+11 43
+63 25
+19 47
+23 33
+1 65
+9 40
+39 16
+16 5
+11 56
+41 15
+41 20
+41 7
+48 33
+37 49
+19 64
+31 41
+41 19
+17 61
+39 27
+70 27
+41 33
+61 1
+1 63
+5 61
+64 5
+3 49
+27 61
+45 21
+58 27
+7 3
+27 59
+22 69
+28 49
+21 61
+21 54
+2 61
+17 48
+7 43
+0 51
+10 57
+39 40
+41 41
+49 39
+22 49
+44 55
+7 42
+57 3
+3 69
+13 57
+1 57
+61 47
+48 37
+11 54
+23 60
+51 1
+69 26
+43 57
+61 16
+49 13
+43 31
+11 61
+28 43
+45 24
+39 41
+46 23
+25 45
+15 61
+36 37
+1 43
+43 26
+45 7
+41 37
+5 49
+69 14
+13 62
+6 55
+29 51
+25 51
+15 51
+41 55
+21 48
+45 27
+56 23
+39 30
+9 31
+45 28
+19 57
+32 29
+8 3
+61 6
+57 53
+38 41
+53 29
+41 44
+58 65
+47 27
+10 55
+45 33
+67 12
+49 9
+49 12
+29 37
+42 57
+19 4
+39 37
+1 69
+69 19
+51 32
+44 17
+53 18
+45 38
+5 62
+37 36
+17 3
+42 15
+27 40
+3 37
+15 53
+5 42
+37 25
+31 48
+5 55
+56 19
+62 19
+65 13
+19 1
+64 23
+24 65
+61 7
+21 38
+43 6
+8 9
+29 41
+65 1
+57 29
+60 19
+3 61
+6 47
+44 43
+21 31
+65 33
+8 47
+3 46
+41 21
+65 27
+23 61
+38 33
+51 25
+15 31
+44 29
+21 32
+67 21
+16 45
+34 49
+11 50
+55 31
+49 31
+15 9
+31 39
+33 38
+35 35
+31 23
+27 70
+19 65
+55 28
+32 25
+43 47
+7 69
+39 29
+66 11
+9 44
+11 39
+34 33
+19 44
+47 25
+67 22
+42 27
+46 9
+27 29
+43 7
+27 25
+21 53
+48 7
+26 67
+59 16
+51 33
+8 57
+61 30
+9 51
+60 1
+55 23
+17 50
+19 11
+35 37
+25 43
+67 23
+35 51
+57 24
+43 25
+24 63
+63 7
+37 21
+57 13
+3 56
+7 52
+13 39
+39 42
+66 19
+17 34
+29 26
+27 50
+53 2
+9 63
+47 26
+19 53
+58 19
+19 51
+49 46
+68 11
+69 45
+23 15
+61 9
+44 9
+56 1
+23 62
+59 9
+66 43
+45 1
+8 69
+47 23
+45 36
+46 45
+25 36
+33 33
+55 6
+41 25
+65 51
+65 61
+13 50
+61 5
+54 11
+35 41
+41 60
+33 35
+68 29
+59 53
+65 10
+67 25
+22 65
+57 1
+4 55
+31 17
+33 21
+69 50
+25 52
+69 15
+33 39
+27 49
+60 27
+40 13
+25 67
+45 9
+39 21
+5 67
+49 7
+15 33
+53 3
+32 1
+28 23
+63 44
+31 49
+5 39
+65 16
+21 70
+21 65
+39 38
+23 29
+49 45
+67 47
+59 49
+19 5
+36 47
+67 30
+35 11
+63 29
+52 29
+69 5
+55 1
+9 41
+41 35
+51 67
+31 46
+53 27
+13 25
+21 49
+13 64
+30 45
+49 10
+7 51
+11 57
+21 17
+10 67
+34 27
+37 5
+33 50
+3 39
+27 31
+59 45
+23 53
+25 60
+31 43
+25 27
+35 29
+65 43
+65 18
+15 69
+25 49
+43 35
+37 37
+45 31
+17 4
+23 44
+57 52
+28 53
+3 45
+43 17
+63 10
+28 47
+45 40
+18 1
+9 9
+37 29
+53 8
+12 63
+42 25
+42 63
+51 17
+25 54
+57 23
+57 19
+57 11
+22 55
+58 3
+45 30
+35 25
+68 43
+5 46
+35 33
+12 41
+19 3
+52 23
+31 19
+19 46
+22 25
+5 63
+67 7
+60 43
+1 33
+50 17
+7 68
+11 64
+17 59
+57 15
+59 43
+52 35
+45 29
+45 47
+70 21
+18 53
+10 41
+65 3
+33 45
+29 45
+33 41
+15 63
+9 32
+55 29
+31 34
+24 49
+16 51
+20 31
+54 9
+13 32
+22 67
+36 51
+13 49
+25 46
+61 49
+39 3
+49 27
+1 51
+39 11
+22 37
+23 69
+39 56
+11 46
+63 1
+22 51
+40 17
+48 23
+69 42
+14 5
+42 9
+21 59
+15 62
+23 17
+61 23
+15 57
+5 45
+13 66
+63 13
+45 15
+51 10
+40 35
+8 27
+70 1
+49 25
+63 23
+25 57
+40 11
+21 51
+27 63
+65 45
+20 29
+45 48
+34 37
+39 35
+23 41
+61 51
+46 5
+37 33
+69 29
+37 39
+63 43
+37 35
+18 61
+33 5
+48 29
+25 66
+5 52
+49 59
+69 25
+35 31
+19 7
+14 47
+35 40
+49 6
+45 5
+14 1
+19 27
+2 51
+41 39
+29 22
+21 63
+9 69
+4 61
+0 57
+63 3
+39 19
+65 55
+9 27
+9 70
+35 36
+17 62
+17 45
+53 15
+28 59
+16 65
+16 7
+20 1
+31 31
+13 61
+5 47
+52 17
+37 23
+13 2
+30 25
+48 35
+13 7
+31 22
+4 69
+59 15
+11 63
+63 19
+30 49
+67 13
+46 13
+3 29
+29 34
+45 51
+41 49
+59 2
+55 27
+57 21
+43 37
+62 5
+39 36
+70 15
+21 40
+54 21
+34 5
+25 29
+65 23
+49 29
+27 41
+25 37
+9 64
+21 47
+69 7
+1 46
+50 45
+2 57
+70 41
+60 25
+47 21
+15 67
+15 2
+27 9
+55 10
+20 67
+32 47
+67 50
+61 48
+52 33
+7 61
+53 17
+52 1
+43 27
+18 47
+61 12
+16 69
+45 10
+65 31
+42 47
+61 4
+66 13
+11 47
+59 6
+1 47
+66 3
+23 63
+21 28
+43 39
+26 29
+15 43
+7 2
+39 23
+69 23
+32 35
+43 41
+45 57
+27 38
+68 19
+37 51
+35 47
+58 9
+25 40
+59 32
+25 28
+17 33
+25 42
+37 3
+54 33
+16 57
+25 26
+21 21
+19 49
+48 1
+17 2
+27 69
+44 13
+27 45
+9 62
+18 67
+29 59
+3 41
+41 42
+31 28
+56 27
+56 15
+2 53
+37 45
+67 1
+62 15
+1 44
+4 65
+43 21
+37 10
+59 1
+64 49
+15 5
+66 25
+7 57
+39 25
+28 35
+13 43
+43 43
+29 52
+49 11
+7 11
+62 53
+43 9
+45 43
+30 41
+30 39
+42 19
+1 64
+29 62
+47 29
+30 67
+61 17
+47 28
+0 67
+69 52
+26 33
+12 59
+61 11
+21 58
+2 43
+45 32
+15 45
+11 33
+62 17
+31 53
+7 67
+59 47
+47 16
+59 21
+51 13
+55 25
+49 3
+51 23
+43 19
+20 63
+38 47
+11 38
+25 63
+35 46
+42 37
+31 45
+60 45
+17 69
+47 37
+29 61
+13 55
+3 40
+29 30
+57 4
+62 51
+58 45
+27 24
+9 45
+62 1
+46 37
+19 8
+66 23
+19 41
+17 60
+34 29
+64 43
+69 1
+27 35
+1 39
+11 3
+39 43
+55 21
+5 43
+5 51
+29 35
+3 58
+68 23
+53 9
+27 51
+53 7
+9 43
+52 5
+26 45
+61 19
+31 59
+33 31
+63 26
+11 45
+69 41
+21 57
+25 50
+57 51
+9 29
+24 40
+60 7
+60 8
+20 24
+43 30
+26 17
+68 4
+62 30
+34 67
+68 33
+68 25
+23 38
+32 15
+13 46
+56 18
+33 42
+38 44
+51 40
+9 0
+29 16
+38 70
+66 60
+59 26
+70 32
+68 7
+48 68
+63 0
+46 40
+17 6
+13 34
+35 60
+9 58
+0 40
+70 6
+12 52
+31 40
+12 70
+8 30
+12 9
+42 51
+26 35
+4 62
+32 39
+54 31
+22 23
+2 60
+36 55
+36 6
+56 51
+65 30
+0 52
+48 44
+67 0
+6 51
+12 2
+10 54
+49 34
+4 36
+62 54
+68 10
+16 25
+19 16
+28 22
+10 34
+54 34
+8 10
+38 10
+53 28
+16 14
+68 13
+47 38
+44 46
+51 2
+6 49
+64 60
+58 57
+52 65
+2 2
+36 64
+70 61
+68 49
+38 26
+34 64
+28 48
+56 26
+60 14
+56 4
+38 7
+48 2
+66 56
+59 40
+38 39
+70 45
+16 20
+37 40
+54 16
+34 22
+18 13
+39 12
+70 14
+26 30
+64 13
+13 12
+60 6
+30 30
+5 0
+54 65
+50 33
+54 38
+49 18
+32 20
+43 50
+23 70
+56 21
+35 6
+22 46
+34 2
+32 19
+53 22
+6 62
+32 45
+64 11
+50 11
+50 40
+20 2
+61 54
+66 49
+42 34
+46 14
+62 52
+18 68
+26 26
+66 5
+18 22
+48 62
+28 7
+12 32
+21 64
+21 24
+33 62
+48 16
+42 21
+44 32
+43 20
+6 42
+58 6
+32 28
+31 38
+8 68
+60 3
+49 66
+14 0
+4 4
+34 25
+58 50
+53 26
+32 67
+70 18
+54 51
+56 2
+58 7
+6 41
+28 70
+47 60
+8 26
+26 32
+40 39
+12 64
+62 59
+50 0
+16 15
+28 40
+46 29
+42 8
+46 63
+61 36
+40 29
+28 1
+29 12
+15 12
+54 8
+26 57
+36 22
+66 24
+18 14
+4 60
+22 11
+34 58
+6 13
+40 47
+23 18
+24 32
+32 60
+7 8
+58 12
+30 42
+64 39
+1 38
+24 45
+20 15
+39 34
+24 39
+61 42
+63 50
+14 26
+53 14
+40 15
+12 5
+44 21
+38 42
+20 64
+61 24
+28 39
+26 24
+42 23
+46 69
+27 60
+25 2
+36 5
+23 26
+54 30
+48 57
+34 1
+57 22
+29 4
+66 51
+35 2
+15 20
+70 4
+49 14
+45 16
+2 4
+28 69
+8 16
+60 28
+26 14
+6 3
+62 28
+44 8
+53 4
+69 40
+36 44
+54 4
+32 63
+22 22
+33 70
+68 55
+36 23
+35 0
+58 2
+61 20
+44 22
+0 32
+64 18
+28 4
+8 29
+21 56
+40 62
+28 33
+62 2
+22 5
+16 26
+50 22
+64 0
+24 33
+34 59
+55 4
+10 4
+42 41
+14 14
+41 26
+63 60
+10 32
+56 12
+70 24
+4 54
+70 29
+4 51
+61 32
+8 56
+20 57
+40 28
+40 34
+26 39
+49 62
+25 70
+46 4
+61 8
+64 14
+44 63
+58 59
+28 37
+0 30
+65 44
+38 1
+24 8
+4 31
+26 41
+56 29
+66 54
+24 46
+60 65
+40 41
+28 10
+59 24
+44 25
+51 44
+52 44
+0 59
+44 28
+26 44
+10 20
+5 36
+40 30
+34 0
+14 57
+34 47
+38 0
+16 23
+10 59
+63 52
+48 69
+31 44
+44 34
+63 4
+54 15
+56 56
+46 10
+56 20
+54 7
+17 10
+8 2
+68 38
+30 0
+17 8
+20 0
+12 49
+56 10
+67 18
+52 38
+4 12
+38 48
+19 10
+42 40
+65 42
+62 46
+0 61
+64 54
+58 13
+46 38
+62 40
+50 23
+50 3
+16 3
+50 42
+4 57
+34 20
+10 7
+62 27
+6 48
+46 15
+27 12
+32 24
+70 58
+65 2
+70 49
+4 58
+18 8
+43 70
+45 44
+58 1
+1 66
+56 60
+62 64
+18 27
+66 48
+34 56
+37 8
+15 46
+9 30
+36 54
+39 14
+50 26
+19 20
+59 52
+22 29
+34 52
+35 70
+13 14
+12 51
+27 6
+18 21
+63 42
+44 40
+32 40
+70 28
+22 28
+20 5
+0 66
+22 0
+24 16
+26 47
+52 7
+44 69
+44 44
+32 27
+32 64
+26 70
+70 47
+55 16
+40 44
+28 34
+70 57
+42 54
+53 16
+36 26
+15 8
+9 48
+16 16
+24 70
+5 54
+26 9
+16 67
+58 17
+25 0
+36 4
+26 28
+50 8
+43 42
+36 68
+53 48
+60 68
+57 60
+50 18
+30 12
+4 68
+54 20
+42 28
+38 14
+12 50
+32 22
+42 14
+56 50
+62 49
+63 34
+26 13
+14 45
+27 34
+46 41
+62 18
+0 37
+16 12
+9 12
+60 15
+30 6
+39 70
+2 59
+8 31
+67 56
+50 20
+14 16
+39 10
+56 32
+26 46
+57 10
+0 54
+4 35
+54 19
+49 40
+44 16
+48 25
+59 42
+43 48
+58 46
+61 28
+20 23
+68 44
+12 27
+40 16
+48 48
+12 56
+61 18
+10 56
+41 10
+66 4
+67 4
+41 52
+70 13
+49 32
+17 18
+48 8
+44 70
+51 22
+56 54
+40 42
+65 36
+46 64
+61 14
+30 7
+60 5
+52 9
+50 24
+18 20
+3 12
+70 23
+58 48
+0 60
+29 42
+22 50
+38 68
+0 18
+40 64
+9 36
+34 31
+57 40
+36 34
+44 38
+10 10
+58 22
+61 22
+60 10
+22 9
+26 8
+9 6
+17 44
+56 46
+32 55
+66 63
+26 53
+28 24
+50 62
+64 2
+10 46
+46 6
+13 68
+70 68
+18 16
+3 44
+64 7
+16 70
+2 70
+6 64
+0 69
+68 22
+57 8
+14 31
+12 20
+59 20
+57 70
+48 54
+34 17
+21 26
+48 66
+49 68
+54 50
+5 64
+10 51
+66 36
+68 30
+50 66
+16 0
+44 53
+34 51
+66 67
+22 10
+17 16
+50 2
+50 46
+20 52
+2 58
+29 24
+26 27
+30 10
+60 36
+0 13
+20 68
+54 48
+31 0
+42 39
+48 58
+18 28
+44 48
+60 48
+57 68
+70 54
+70 17
+6 16
+46 67
+40 70
+54 36
+6 31
+26 69
+7 46
+2 64
+54 41
+15 40
+34 7
+41 34
+32 8
+2 35
+36 35
+68 31
+29 8
+17 70
+8 46
+62 34
+4 63
+58 67
+63 70
+5 8
+14 54
+10 43
+58 62
+20 26
+10 60
+66 22
+54 14
+46 8
+43 18
+64 51
+62 6
+4 38
+44 14
+36 70
+12 65
+31 20
+4 6
+41 12
+32 49
+69 28
+18 4
+6 18
+18 0
+44 33
+32 4
+64 58
+18 2
+38 30
+57 48
+44 26
+53 32
+66 20
+16 44
+0 26
+37 4
+68 32
+38 4
+19 42
+2 50
+29 70
+61 68
+14 40
+6 54
+1 12
+40 48
+40 24
+4 67
+27 66
+16 38
+52 40
+26 18
+7 24
+25 64
+4 59
+54 44
+68 58
+21 18
+28 36
+60 42
+34 26
+48 40
+36 42
+2 56
+59 44
+46 46
+20 48
+40 5
+27 52
+10 45
+2 31
+11 16
+22 18
+26 12
+54 62
+33 52
+34 34
+68 54
+52 16
+34 70
+48 27
+62 24
+64 52
+44 64
+1 62
+58 24
+57 50
+2 22
+60 26
+48 52
+39 32
+68 21
+1 42
+36 58
+41 70
+21 60
+14 55
+0 46
+2 68
+52 14
+34 13
+20 12
+26 34
+34 11
+22 2
+45 58
+48 15
+24 68
+30 68
+16 61
+10 26
+37 24
+40 66
+2 36
+6 9
+24 36
+12 39
+50 48
+38 35
+4 50
+10 30
+58 5
+18 36
+16 62
+43 58
+10 39
+57 26
+0 63
+41 62
+30 14
+8 48
+4 3
+18 54
+32 66
+4 15
+4 19
+16 36
+36 10
+21 12
+15 6
+62 26
+60 21
+53 68
+53 6
+29 44
+18 65
+50 70
+41 64
+67 26
+6 22
+68 0
+69 38
+12 3
+20 66
+60 30
+52 54
+22 58
+42 3
+0 1
+48 32
+10 64
+56 64
+18 15
+22 52
+56 40
+58 18
+17 40
+16 28
+12 19
+34 60
+10 68
+18 12
+1 8
+41 48
+46 36
+6 4
+5 6
+62 63
+10 13
+6 57
+52 36
+39 44
+58 26
+42 66
+61 58
+4 27
+47 52
+49 22
+60 34
+8 18
+54 32
+16 56
+25 20
+55 56
+54 55
+26 42
+48 0
+1 52
+20 13
+49 64
+8 20
+56 70
+14 17
+57 28
+1 30
+36 9
+68 41
+50 60
+26 55
+54 28
+47 10
+25 30
+38 65
+58 0
+58 15
+56 17
+1 70
+50 47
+0 11
+36 56
+2 25
+70 25
+69 60
+46 30
+13 38
+50 58
+43 0
+6 36
+2 9
+22 62
+40 0
+15 4
+12 38
+60 62
+48 10
+66 15
+32 0
+56 52
+42 62
+16 55
+70 56
+4 41
+1 54
+6 45
+57 32
+25 8
+22 15
+32 18
+34 40
+34 24
+58 14
+56 0
+8 65
+63 62
+53 64
+5 24
+45 34
+24 51
+34 50
+24 57
+63 38
+63 24
+44 2
+58 63
+4 24
+46 48
+14 18
+67 36
+37 68
+68 14
+30 59
+38 61
+52 3
+7 40
+36 41
+48 13
+43 46
+38 12
+10 40
+5 44
+19 34
+42 48
+38 64
+40 21
+56 48
+26 0
+10 28
+14 15
+3 16
+63 18
+47 36
+70 60
+5 50
+42 18
+69 30
+0 16
+16 4
+24 54
+37 32
+52 18
+26 52
+36 19
+18 63
+67 14
+0 50
+52 12
+55 42
+50 12
+8 15
+20 9
+8 62
+1 28
+11 12
+64 47
+24 3
+0 20
+58 23
+11 32
+5 70
+2 26
+11 58
+38 29
+59 70
+0 14
+1 10
+33 22
+20 32
+28 30
+48 55
+0 44
+0 45
+44 30
+68 34
+37 18
+64 50
+9 42
+2 40
+70 63
+8 28
+33 14
+41 56
+58 40
+30 54
+47 70
+67 62
+56 65
+66 39
+20 40
+22 57
+38 20
+56 66
+70 50
+48 3
+17 38
+18 30
+46 16
+30 33
+6 60
+20 70
+66 17
+52 39
+13 42
+12 61
+46 56
+18 57
+8 67
+19 2
+19 0
+35 52
+10 65
+6 66
+50 10
+49 8
+0 42
+40 37
+20 54
+10 25
+44 10
+42 4
+50 14
+13 36
+12 46
+70 69
+33 8
+52 24
+55 68
+14 52
+6 56
+60 18
+32 44
+12 24
diff --git a/2024/18/test b/2024/18/test
@@ -0,0 +1,25 @@
+5,4
+4,2
+4,5
+3,0
+2,1
+6,3
+2,4
+1,5
+0,6
+3,3
+2,6
+5,1
+1,2
+5,5
+2,5
+6,5
+1,4
+0,4
+6,4
+1,1
+6,1
+1,0
+0,5
+1,6
+2,0
diff --git a/2024/18/test-cleaned b/2024/18/test-cleaned
@@ -0,0 +1,25 @@
+5 4
+4 2
+4 5
+3 0
+2 1
+6 3
+2 4
+1 5
+0 6
+3 3
+2 6
+5 1
+1 2
+5 5
+2 5
+6 5
+1 4
+0 4
+6 4
+1 1
+6 1
+1 0
+0 5
+1 6
+2 0