aoc

My solutions for the Advent of Code
git clone https://git.tronto.net/aoc
Download | Log | Files | Refs | README

commit 8cba5f39bbb00b20635b31f852ba132ead4aef53
parent a3899249df1fe7aa84fd119c356de57ff0180397
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Wed, 18 Dec 2024 06:38:01 +0100

Day 18 2024

Diffstat:
A2024/18/Makefile | 24++++++++++++++++++++++++
A2024/18/day18a.cpp | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/18/day18b.cpp | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/18/input | 3450+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/18/input-cleaned | 3450+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/18/test | 25+++++++++++++++++++++++++
A2024/18/test-cleaned | 25+++++++++++++++++++++++++
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