diff --git a/2015/README.md b/2015/README.md
index 07fc849..faef910 100644
--- a/2015/README.md
+++ b/2015/README.md
@@ -6,7 +6,7 @@ Advent Of Code solutions for 2015 using C99. Builds and runs on macOS, Linux, an
Be sure to clone the top project with its submodules:
- git clone --recurse-submodules https://git.burkey.co/eburk/aoc
+ git clone --recurse-submodules https://git.burkey.co/eburk/advent-of-code
This project relies on several BSD extensions to the stdlib. OpenBSD and macOS users should be able to build the project out of the box. Linux users will need `libbsd` installed. The package is called `libbsd-dev` on Debian-based systems.
diff --git a/2016/README.md b/2016/README.md
index e69de29..0a1c2ef 100644
--- a/2016/README.md
+++ b/2016/README.md
@@ -0,0 +1,3 @@
+# 2016
+
+Solutions in Go
diff --git a/2024/.gitignore b/2024/.gitignore
new file mode 100644
index 0000000..4867c4e
--- /dev/null
+++ b/2024/.gitignore
@@ -0,0 +1,6 @@
+bin/
+obj/
+/packages/
+riderModule.iml
+/_ReSharper.Caches/
+.idea
diff --git a/2024/2024.csproj b/2024/2024.csproj
new file mode 100644
index 0000000..71722df
--- /dev/null
+++ b/2024/2024.csproj
@@ -0,0 +1,18 @@
+
+
+
+ Exe
+ net9.0
+ _2024
+ enable
+ enable
+
+
+
+
+
+ PreserveNewest
+
+
+
+
diff --git a/2024/2024.sln b/2024/2024.sln
new file mode 100644
index 0000000..dd9f1d5
--- /dev/null
+++ b/2024/2024.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "2024", "2024.csproj", "{F018A604-9FAE-421D-818D-5C6F7AB07FC4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F018A604-9FAE-421D-818D-5C6F7AB07FC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F018A604-9FAE-421D-818D-5C6F7AB07FC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F018A604-9FAE-421D-818D-5C6F7AB07FC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F018A604-9FAE-421D-818D-5C6F7AB07FC4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/2024/Day01.cs b/2024/Day01.cs
new file mode 100644
index 0000000..3783746
--- /dev/null
+++ b/2024/Day01.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day01 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/01");
+ Console.WriteLine("The solution for day 01 is not implmented yet");
+ }
+}
diff --git a/2024/Day02.cs b/2024/Day02.cs
new file mode 100644
index 0000000..2d795b2
--- /dev/null
+++ b/2024/Day02.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day02 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/02");
+ Console.WriteLine("The solution for day 02 is not implmented yet");
+ }
+}
diff --git a/2024/Day03.cs b/2024/Day03.cs
new file mode 100644
index 0000000..cbc1594
--- /dev/null
+++ b/2024/Day03.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day03 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/03");
+ Console.WriteLine("The solution for day 03 is not implmented yet");
+ }
+}
diff --git a/2024/Day04.cs b/2024/Day04.cs
new file mode 100644
index 0000000..79331fc
--- /dev/null
+++ b/2024/Day04.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day04 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/04");
+ Console.WriteLine("The solution for day 04 is not implmented yet");
+ }
+}
diff --git a/2024/Day05.cs b/2024/Day05.cs
new file mode 100644
index 0000000..683208f
--- /dev/null
+++ b/2024/Day05.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day05 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/05");
+ Console.WriteLine("The solution for day 05 is not implmented yet");
+ }
+}
diff --git a/2024/Day06.cs b/2024/Day06.cs
new file mode 100644
index 0000000..9f23bf6
--- /dev/null
+++ b/2024/Day06.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day06 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/06");
+ Console.WriteLine("The solution for day 06 is not implmented yet");
+ }
+}
diff --git a/2024/Day07.cs b/2024/Day07.cs
new file mode 100644
index 0000000..9c1d02b
--- /dev/null
+++ b/2024/Day07.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day07 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/07");
+ Console.WriteLine("The solution for day 07 is not implmented yet");
+ }
+}
diff --git a/2024/Day08.cs b/2024/Day08.cs
new file mode 100644
index 0000000..27c2a01
--- /dev/null
+++ b/2024/Day08.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day08 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/08");
+ Console.WriteLine("The solution for day 08 is not implmented yet");
+ }
+}
diff --git a/2024/Day09.cs b/2024/Day09.cs
new file mode 100644
index 0000000..fb5a73f
--- /dev/null
+++ b/2024/Day09.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day09 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/09");
+ Console.WriteLine("The solution for day 09 is not implmented yet");
+ }
+}
diff --git a/2024/Day10.cs b/2024/Day10.cs
new file mode 100644
index 0000000..9df4da6
--- /dev/null
+++ b/2024/Day10.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day10 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/10");
+ Console.WriteLine("The solution for day 10 is not implmented yet");
+ }
+}
diff --git a/2024/Day11.cs b/2024/Day11.cs
new file mode 100644
index 0000000..840e10f
--- /dev/null
+++ b/2024/Day11.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day11 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/11");
+ Console.WriteLine("The solution for day 11 is not implmented yet");
+ }
+}
diff --git a/2024/Day12.cs b/2024/Day12.cs
new file mode 100644
index 0000000..28988ab
--- /dev/null
+++ b/2024/Day12.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day12 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/12");
+ Console.WriteLine("The solution for day 12 is not implmented yet");
+ }
+}
diff --git a/2024/Day13.cs b/2024/Day13.cs
new file mode 100644
index 0000000..33845ed
--- /dev/null
+++ b/2024/Day13.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day13 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/13");
+ Console.WriteLine("The solution for day 13 is not implmented yet");
+ }
+}
diff --git a/2024/Day14.cs b/2024/Day14.cs
new file mode 100644
index 0000000..34315d6
--- /dev/null
+++ b/2024/Day14.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day14 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/14");
+ Console.WriteLine("The solution for day 14 is not implmented yet");
+ }
+}
diff --git a/2024/Day15.cs b/2024/Day15.cs
new file mode 100644
index 0000000..e04b398
--- /dev/null
+++ b/2024/Day15.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day15 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/15");
+ Console.WriteLine("The solution for day 15 is not implmented yet");
+ }
+}
diff --git a/2024/Day16.cs b/2024/Day16.cs
new file mode 100644
index 0000000..6b46bd5
--- /dev/null
+++ b/2024/Day16.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day16 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/16");
+ Console.WriteLine("The solution for day 16 is not implmented yet");
+ }
+}
diff --git a/2024/Day17.cs b/2024/Day17.cs
new file mode 100644
index 0000000..be1fe29
--- /dev/null
+++ b/2024/Day17.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day17 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/17");
+ Console.WriteLine("The solution for day 17 is not implmented yet");
+ }
+}
diff --git a/2024/Day18.cs b/2024/Day18.cs
new file mode 100644
index 0000000..e6365ab
--- /dev/null
+++ b/2024/Day18.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day18 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/18");
+ Console.WriteLine("The solution for day 18 is not implmented yet");
+ }
+}
diff --git a/2024/Day19.cs b/2024/Day19.cs
new file mode 100644
index 0000000..8e66178
--- /dev/null
+++ b/2024/Day19.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day19 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/19");
+ Console.WriteLine("The solution for day 19 is not implmented yet");
+ }
+}
diff --git a/2024/Day20.cs b/2024/Day20.cs
new file mode 100644
index 0000000..bd96c76
--- /dev/null
+++ b/2024/Day20.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day20 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/20");
+ Console.WriteLine("The solution for day 20 is not implmented yet");
+ }
+}
diff --git a/2024/Day21.cs b/2024/Day21.cs
new file mode 100644
index 0000000..6048669
--- /dev/null
+++ b/2024/Day21.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day21 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/21");
+ Console.WriteLine("The solution for day 21 is not implmented yet");
+ }
+}
diff --git a/2024/Day22.cs b/2024/Day22.cs
new file mode 100644
index 0000000..c6b0735
--- /dev/null
+++ b/2024/Day22.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day22 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/22");
+ Console.WriteLine("The solution for day 22 is not implmented yet");
+ }
+}
diff --git a/2024/Day23.cs b/2024/Day23.cs
new file mode 100644
index 0000000..15087ab
--- /dev/null
+++ b/2024/Day23.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day23 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/23");
+ Console.WriteLine("The solution for day 23 is not implmented yet");
+ }
+}
diff --git a/2024/Day24.cs b/2024/Day24.cs
new file mode 100644
index 0000000..47bb7c2
--- /dev/null
+++ b/2024/Day24.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day24 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/24");
+ Console.WriteLine("The solution for day 24 is not implmented yet");
+ }
+}
diff --git a/2024/Day25.cs b/2024/Day25.cs
new file mode 100644
index 0000000..af357eb
--- /dev/null
+++ b/2024/Day25.cs
@@ -0,0 +1,10 @@
+namespace _2024;
+
+public class Day25 : ISolution
+{
+ public void Run()
+ {
+ var _ = File.ReadAllText("input/25");
+ Console.WriteLine("The solution for day 25 is not implmented yet");
+ }
+}
diff --git a/2024/Program.cs b/2024/Program.cs
new file mode 100644
index 0000000..134e2b3
--- /dev/null
+++ b/2024/Program.cs
@@ -0,0 +1,31 @@
+using _2024;
+
+Console.Write("Enter a day: ");
+var input = Console.ReadLine();
+
+if (!int.TryParse(input, out var day)) {
+ Console.Error.WriteLine("Error: input is not a valid integer.");
+ Environment.Exit(1);
+}
+
+if (day is < 1 or > 25) {
+ Console.Error.WriteLine("Error: day must be between 1 and 25.");
+ Environment.Exit(1);
+}
+
+var dayStr = day.ToString();
+if (day < 10) {
+ dayStr = "0" + dayStr;
+}
+
+// Instantiate an ISolution named 's' based on the day, e.g., Day02 for day == 2, then run it
+var typeName = $"_2024.Day{dayStr}";
+var type = typeof(ISolution).Assembly.GetType(typeName);
+
+if (type is null || !typeof(ISolution).IsAssignableFrom(type)) {
+ Console.Error.WriteLine($"Error: could not find a solution class for day {dayStr}.");
+ Environment.Exit(1);
+}
+
+var s = (ISolution)Activator.CreateInstance(type)!;
+s.Run();
diff --git a/2024/README.md b/2024/README.md
new file mode 100644
index 0000000..7d11690
--- /dev/null
+++ b/2024/README.md
@@ -0,0 +1,3 @@
+# 2024
+
+Solutions in C# using dotnet core 9
diff --git a/2024/Solution.cs b/2024/Solution.cs
new file mode 100644
index 0000000..200ad6b
--- /dev/null
+++ b/2024/Solution.cs
@@ -0,0 +1,5 @@
+namespace _2024;
+
+public interface ISolution {
+ void Run();
+}
\ No newline at end of file
diff --git a/2024/input/01 b/2024/input/01
new file mode 100644
index 0000000..766c833
--- /dev/null
+++ b/2024/input/01
@@ -0,0 +1,1000 @@
+35446 18696
+46314 66062
+33933 83974
+83974 34443
+98207 12657
+38488 57125
+95930 81859
+52767 12657
+16477 53659
+14481 84757
+29083 51122
+36158 15438
+61387 10295
+76932 66328
+36700 83181
+90500 70317
+55528 55820
+31179 94554
+22822 16886
+23069 99080
+69000 50666
+91611 49688
+10965 12657
+62470 27096
+38922 83974
+88317 67082
+49184 78816
+46731 90213
+56390 89965
+67724 21120
+60777 88500
+38607 91051
+89620 42599
+19492 59958
+12399 89965
+14491 21092
+89224 65224
+92053 89616
+61752 33001
+14662 46961
+62308 99609
+63106 37570
+98323 89620
+10130 47868
+44468 92294
+55055 99080
+21162 23460
+62629 83614
+64760 76835
+59948 58492
+93112 81859
+19027 67250
+68050 27547
+39607 27547
+72923 77124
+59390 45817
+33001 47868
+70458 64427
+36441 47868
+44963 70577
+56327 83974
+35920 89031
+56574 16410
+19886 20797
+10538 56032
+43629 89965
+40166 54408
+71819 87037
+71239 58805
+84091 36969
+27282 83974
+61675 83974
+13092 65566
+22564 69172
+73337 83623
+65255 88498
+14204 49627
+90941 12657
+12650 65455
+39913 16886
+91204 42662
+12353 24980
+86940 43602
+45417 86117
+93805 13685
+86595 32060
+95504 49974
+49450 18696
+54656 82794
+24239 65070
+39200 94275
+45741 65455
+86169 41093
+30646 56972
+28947 45593
+27981 18232
+74967 83592
+28791 27193
+58805 69918
+41082 52767
+49770 52767
+40558 92562
+38248 72945
+51400 16886
+20599 11817
+77640 81133
+54049 56972
+82155 36807
+88848 49688
+74986 21092
+84534 83372
+52277 53938
+27375 46406
+82985 44993
+44699 83974
+56937 87037
+77717 49519
+97383 12353
+94620 17706
+93133 79684
+63717 33001
+13006 56032
+20078 55429
+68979 18696
+97191 84071
+47911 62971
+48256 56784
+34443 47868
+44941 56972
+43750 83153
+16717 42999
+36163 79265
+29877 82188
+54069 59608
+21897 70982
+46002 35871
+47632 28298
+92150 34443
+47440 90606
+21000 89334
+22797 91051
+67853 81395
+30016 59612
+65558 65566
+46885 12353
+49714 12353
+40300 27547
+97130 33789
+89917 70893
+99566 49688
+53392 56972
+92478 44580
+69059 12657
+88594 66111
+25017 51845
+66050 49129
+18086 33001
+44548 56032
+91368 26310
+90745 82691
+50489 65566
+29928 45682
+81859 89620
+74633 95869
+98553 47868
+80866 49688
+24016 20910
+36650 33001
+19561 74850
+63484 49688
+58451 18696
+29016 32060
+54718 25325
+89003 33001
+68471 11145
+88206 89620
+13290 66328
+86949 22014
+77758 88623
+75063 96681
+99425 31778
+71300 62538
+88500 11195
+78917 56972
+43065 88068
+33189 89088
+46705 83036
+56972 50663
+24844 91051
+57908 63316
+15446 88452
+76421 36179
+98232 25703
+37640 49688
+35383 44539
+11291 12353
+62140 83592
+55579 88733
+83570 87934
+76450 35834
+84820 47091
+24416 78402
+45763 65455
+82938 66922
+65397 65566
+45162 18361
+71395 72305
+72027 97029
+85465 28881
+32751 65455
+65455 80742
+79640 10727
+88492 84005
+66028 32752
+23677 43498
+22716 26101
+62036 87090
+18882 82877
+24085 91061
+97952 56032
+16125 12353
+69534 44480
+42997 33448
+45250 68695
+84290 92562
+22335 32582
+47550 99080
+36928 73869
+40790 11220
+41540 71545
+16448 67875
+44580 45593
+35045 70157
+69798 63807
+50519 97965
+69580 16886
+87702 24341
+57895 58808
+20766 27547
+74455 59612
+33358 83592
+80944 78627
+71806 29266
+88258 82877
+21771 64556
+88011 25173
+95793 49627
+95847 45593
+56747 12657
+32448 12657
+93453 50250
+72594 74557
+52172 18099
+93959 70300
+74332 38126
+79878 67746
+49680 54928
+18265 33001
+95331 59612
+18366 33001
+25504 88500
+62474 60901
+31197 29540
+66986 49688
+63340 88500
+69519 27915
+21052 52553
+72184 27193
+43404 49627
+95052 59327
+27977 83614
+13673 18696
+13363 27547
+82059 47868
+52928 82877
+55266 25800
+55292 89620
+66838 81751
+85014 62704
+18772 89391
+99322 39583
+68363 58608
+45148 58708
+63006 27193
+92687 12754
+55913 75671
+45593 65455
+79018 51305
+87110 56230
+66328 14246
+54561 53594
+56406 14740
+95001 49947
+12373 81859
+65064 16886
+17403 75896
+58690 53427
+50959 27547
+40939 52963
+50275 47946
+73990 32060
+39728 49688
+64531 74946
+44868 56972
+72719 27906
+35784 16310
+13911 26147
+45218 21092
+27025 54743
+64719 65566
+22135 12657
+13725 71262
+16787 49149
+26004 27547
+83956 25800
+20869 65750
+92705 49627
+41237 33001
+47868 54678
+46965 44772
+76833 67617
+10593 96338
+91447 12858
+41369 18696
+88036 97875
+56077 40100
+83258 73796
+17955 99080
+47587 12353
+71731 21884
+43926 76598
+26878 21142
+85135 21092
+13199 91051
+55583 72621
+72584 63423
+10908 82877
+59612 45593
+72725 95288
+22111 82877
+15422 16886
+51152 97377
+14804 61202
+62625 53427
+89653 38262
+13230 39503
+83705 39416
+88216 34340
+30601 23296
+86040 70921
+76367 32060
+17566 62842
+49688 26555
+51987 27192
+99083 16886
+50529 28284
+18618 92562
+49357 27193
+83692 27547
+34017 12353
+34588 65455
+79808 56032
+76557 83614
+52422 73787
+99664 83974
+23712 89620
+10628 79497
+35405 89633
+55143 97586
+97421 13687
+17759 32060
+94690 46885
+40501 39940
+41037 85460
+70591 40719
+64400 83974
+25588 12353
+92616 83974
+65267 12288
+21298 82152
+21216 24498
+83830 95148
+69200 34443
+92744 83974
+84255 72646
+60019 33001
+72406 89620
+80749 83614
+81952 73514
+80454 27193
+32161 15624
+96805 12657
+87229 45593
+52706 21688
+54224 33221
+59272 81859
+39664 89965
+52726 88500
+17451 53746
+53896 58280
+72032 56972
+41654 83606
+45801 76761
+59531 56972
+69619 65455
+47931 88500
+37408 15916
+46419 27677
+24027 99080
+87213 89400
+59190 71907
+91014 77947
+20262 52969
+99705 17001
+77899 98899
+66940 12657
+96845 16886
+85833 89620
+24005 72223
+70935 48677
+80570 92562
+14398 81859
+34541 83183
+28018 92562
+87037 90231
+71966 34443
+46070 83974
+28730 56032
+37205 65566
+78756 83974
+92078 88687
+84234 22235
+65644 83974
+69979 57474
+26206 40074
+10787 70635
+25443 81859
+16577 86943
+83988 11918
+12284 12657
+57347 16886
+25269 45386
+26028 52805
+28804 77340
+50690 72129
+79036 63115
+70738 71491
+66916 96652
+81977 46885
+43130 58805
+97899 98026
+50454 97303
+77142 33793
+20238 99451
+25279 49627
+37235 83614
+49627 84495
+40512 15742
+84237 18675
+57852 65767
+60277 53427
+60816 99080
+48621 62202
+48990 65455
+90883 47035
+32060 33001
+47930 56032
+53524 55589
+76420 16886
+12331 72983
+93348 48516
+21092 40456
+80416 62693
+18172 66930
+83267 47868
+56035 31836
+19129 12657
+31465 83592
+64173 33001
+74397 70918
+20717 12819
+51944 72328
+71053 27547
+80370 56032
+68857 90951
+48914 33001
+41820 53931
+31445 99080
+12669 38918
+79174 56972
+45196 22048
+43488 27193
+49986 39514
+65806 85882
+48018 89620
+86144 92562
+95852 58805
+47095 89620
+96313 45593
+39688 86998
+89088 56972
+10994 27193
+44290 45593
+32871 49668
+74126 69396
+59913 35109
+37148 83974
+56032 24108
+92348 23837
+76049 45593
+28805 74542
+35070 46272
+40283 47868
+32870 21092
+87890 11410
+85129 84836
+89021 23016
+54444 52767
+60250 15651
+82877 99080
+13101 66125
+95310 44178
+99602 87037
+39771 61194
+92562 67527
+26053 81299
+99211 52767
+31519 14876
+66988 89620
+55719 34142
+47519 37927
+81355 67645
+64580 83371
+53953 40028
+28575 23345
+88211 96106
+25538 33194
+35298 66440
+11466 12353
+33575 18696
+86250 59305
+84467 53562
+59023 91051
+81764 58973
+80503 18696
+73651 65455
+74173 65566
+59081 38453
+54695 27547
+25202 43565
+90138 53680
+87761 98899
+76616 26486
+98411 12657
+87945 89620
+69634 64725
+94813 92562
+64622 21092
+46511 18696
+49212 70971
+34375 23916
+64884 81859
+94136 95813
+89737 59612
+45383 16739
+60780 34100
+60956 56032
+27402 25216
+61698 78097
+77163 74327
+30740 83974
+78975 99080
+34208 88571
+74233 14179
+95918 47868
+74949 65566
+41203 47868
+27671 56032
+38515 20386
+82734 92813
+70727 25800
+10326 33001
+83563 45593
+46938 58588
+43092 65566
+96771 57693
+32365 21390
+65514 25800
+21151 91810
+53822 66328
+89965 49039
+97207 20005
+18794 23172
+85061 82877
+29500 93001
+86025 29962
+18550 74091
+92402 69893
+58049 16886
+47165 82877
+40002 81859
+82066 71414
+99593 12657
+95278 82877
+23474 33508
+26508 32060
+13412 78711
+58286 35717
+79549 25448
+59275 87684
+59102 83592
+59475 65455
+71391 49481
+64011 27193
+34907 27193
+96020 65566
+32676 48353
+82228 64987
+85683 33001
+84073 49627
+89790 91054
+79448 42717
+57726 66328
+30683 65566
+27124 74353
+13404 65566
+47973 32110
+75389 32060
+39880 90141
+47176 25763
+77298 75035
+36334 32060
+55391 40175
+75215 50282
+89669 27719
+36393 33001
+79118 21092
+81448 47868
+51834 49990
+40739 49688
+52754 56972
+35389 36568
+31791 30926
+44345 27193
+11231 58125
+21968 32060
+78789 12353
+81898 62528
+22004 84635
+50202 69626
+83592 51107
+58853 79346
+42190 68523
+45830 99080
+81738 12353
+99265 99469
+90691 38910
+38908 20889
+20275 89965
+24933 24939
+71243 83614
+67641 13684
+63940 34940
+16484 46405
+95114 80965
+52206 65455
+45310 68999
+76892 94531
+71763 25077
+28803 25055
+19132 65455
+62482 16017
+20185 65455
+53459 47868
+86711 18696
+25418 70965
+41208 97960
+18696 38086
+25923 21953
+90443 92562
+84272 27547
+58778 45593
+83614 10136
+46699 32890
+76064 27547
+99080 28452
+18497 12353
+60862 77196
+19752 27547
+22338 53427
+66112 32195
+41917 82202
+50594 45593
+15550 96715
+61435 88975
+96294 32060
+47560 77044
+60387 49627
+76943 45593
+78435 87312
+57089 89620
+97691 18696
+30869 76316
+51101 17127
+89100 49688
+28552 99080
+50599 21092
+62850 89620
+97312 27547
+81531 45593
+69183 54914
+88793 56972
+48548 45593
+66705 56032
+71169 16358
+55885 12353
+55064 66328
+59988 38915
+89486 45971
+66564 62229
+21432 73083
+69247 49688
+15787 12657
+91085 82877
+14618 12353
+99031 46480
+80969 91051
+68503 18696
+89919 12657
+97125 81859
+36492 34656
+50873 18696
+50741 27547
+27193 99250
+13260 89620
+70660 50852
+23872 40621
+23133 34336
+18937 49627
+84631 18350
+31466 97019
+82842 70754
+96642 16614
+99278 21092
+37578 44363
+87003 59612
+43407 43149
+73286 92643
+45369 18696
+60219 47988
+92605 12811
+80646 91257
+29493 25800
+64968 16886
+67454 56032
+39669 52921
+45812 92562
+98524 34245
+68102 13668
+33914 59590
+90204 20381
+78331 21373
+41990 17121
+98264 13737
+12657 97505
+14876 12560
+86663 13560
+81960 46045
+94521 12578
+84699 89846
+65933 89620
+69417 46940
+77051 30362
+75075 44987
+33494 56972
+49618 81859
+71385 41628
+72195 47868
+62025 65455
+23253 49627
+70062 81859
+14577 16886
+72180 61232
+92457 12657
+91879 53427
+49809 97285
+73214 49688
+63136 65455
+25107 99080
+77516 18306
+84079 45956
+68470 12935
+80077 35901
+33487 93929
+98439 81859
+25106 49627
+29578 21746
+41763 49627
+38888 82877
+21105 59612
+27547 85476
+34649 96912
+98652 37966
+26548 51315
+91140 70379
+88522 66328
+18801 81859
+88360 27197
+54575 33001
+54004 83017
+50564 99080
+19887 42385
+65566 93192
+13908 81859
+38021 51863
+53431 65566
+63143 49688
+77152 16886
+95334 94999
+99112 84555
+22226 47868
+81497 25800
+56613 89560
+32899 66913
+73926 32060
+14710 59039
+81998 56498
+51537 23626
+92298 72999
+61627 48753
+25800 33001
+89153 35814
+15490 59612
+98839 49749
+88591 27547
+47330 83974
+94242 38771
+30493 25606
+47111 97620
+76006 83974
+88435 49627
+12581 14185
+52999 82877
+64534 46741
+70617 18696
+78842 89208
+72607 51926
+44479 91090
+32783 26114
+27725 65566
+71384 17667
+75007 81596
+25465 98911
+97702 81141
+87869 32060
+85114 81859
+67686 97990
+22260 12353
+67159 32060
+97547 16886
+26163 79445
+90733 83974
+62958 47018
+87531 53073
+28421 82286
+31349 92110
+62113 17868
+59754 42706
+82004 12353
+69805 89458
+73669 77228
+36269 97413
+35228 27547
+38938 12657
+88675 89620
+90579 71041
+89858 83974
+19686 18696
+16625 49627
+91432 81859
+17607 83974
+89530 45593
+40107 56032
+28095 41567
+93573 70856
+85006 18696
+19091 45593
+82765 12657
+20545 24253
+24106 49627
+60438 88622
+27926 16886
+97985 89965
+79204 89810
+91051 83614
+75382 82877
+50290 96422
+66045 81859
+61679 35777
+46984 56988
+18043 21092
+53300 90453
+57214 78410
+11949 81859
+45225 22918
+82542 65566
+11498 27547
+44155 56972
+97659 13416
+64945 53035
+10456 52940
+66710 16886
+52752 68386
+21492 63909
+10804 70233
+53427 70763
+81459 89620
+24486 29799
+94315 88192
+99345 81859
+26426 16886
+59747 65455
+78335 28188
+76856 55257
+38024 89620
+76867 76062
+25261 27547
+21948 44580
+25796 49407
+26541 34513
+85517 29546
+51634 23929
+16886 98484
+94563 31195
+94244 82759
+19517 83614
+15629 47203
+13661 64125
+54946 63802
+69496 18696
+10488 32505
+92729 23426
+28136 32060
+55489 83964
+34355 47868
+75542 76179
+70632 99080
+29904 71317
+73989 53368
+86241 48586
+82353 46831
+78028 53147
+92984 83641
+55747 21015
+17389 18696
+94992 29411
+69555 88500
+66820 26798
+96784 92681
+19019 99080
+67383 42448
+64708 12353
+20616 92061
+22213 89965
+34850 12996
+99572 36736
+76670 92372
+11930 91013
+18321 99080
+42025 57447
+99887 75845
+95958 48242
+44579 18696
+79387 34443
+82753 27308
+93967 52098
+90819 66336
+38322 35403
+10019 12353
+78459 37576
+69905 16060
+14796 98743
+14487 17417
+79979 66300
+59836 12353
+37308 56032
+63835 88500
+30048 79432
+71914 99080
+76352 56972
+74621 56972
+33804 98899
+23449 33001
+99868 27547
+57457 83513
+44296 36718
+43642 99921
+49243 90701
+28205 27193
+98899 19172
\ No newline at end of file
diff --git a/2024/input/02 b/2024/input/02
new file mode 100644
index 0000000..0f65670
--- /dev/null
+++ b/2024/input/02
@@ -0,0 +1,1000 @@
+87 90 92 95 96 93
+12 15 16 17 17
+26 27 29 31 34 36 40
+79 80 82 85 87 88 95
+17 20 22 20 23 24
+10 13 11 12 9
+1 4 6 7 6 8 8
+60 63 65 63 65 69
+70 73 76 79 77 78 84
+25 27 29 32 35 35 36
+86 87 88 90 92 93 93 90
+20 23 25 25 25
+3 5 8 8 10 14
+3 4 7 9 12 12 14 20
+72 75 79 80 82
+5 7 11 14 15 18 15
+54 57 61 63 65 65
+49 50 54 55 56 57 60 64
+20 22 25 26 30 32 39
+41 43 45 46 49 51 58 61
+78 80 83 84 86 93 90
+74 76 79 85 87 89 89
+71 73 79 80 83 84 88
+13 16 17 24 26 28 34
+16 14 17 20 21 23 26 28
+30 28 30 32 34 36 33
+64 63 64 66 66
+27 25 27 29 31 34 38
+51 49 50 53 59
+20 18 19 22 20 22 25 28
+25 23 24 26 28 25 22
+11 10 11 8 9 10 10
+20 17 18 19 18 20 21 25
+34 33 30 32 34 40
+25 23 23 24 25 26 28
+60 57 60 61 61 63 62
+10 8 8 11 13 16 19 19
+55 52 54 54 55 56 60
+34 33 34 34 36 43
+64 61 65 67 69
+50 47 49 51 55 58 59 58
+74 73 77 79 80 82 82
+73 71 72 76 78 79 83
+80 79 80 84 90
+45 43 50 53 56 57
+70 67 74 76 75
+19 18 24 26 26
+37 35 42 44 48
+56 54 56 62 67
+74 74 75 76 79
+46 46 48 50 52 53 55 53
+96 96 97 98 98
+7 7 8 10 11 15
+31 31 32 35 36 42
+45 45 43 45 47
+44 44 43 44 42
+8 8 10 9 11 14 17 17
+86 86 85 88 92
+40 40 42 43 46 44 46 53
+40 40 40 43 44
+45 45 45 46 45
+54 54 54 55 55
+28 28 28 30 34
+45 45 47 49 52 52 59
+69 69 72 73 76 80 82 84
+19 19 23 26 29 30 29
+53 53 57 60 63 64 64
+41 41 45 48 52
+69 69 72 74 78 81 88
+49 49 51 52 55 61 62
+26 26 27 29 35 38 37
+2 2 8 9 9
+78 78 84 85 87 89 93
+20 20 22 28 33
+1 5 8 9 10
+17 21 23 26 28 30 32 31
+24 28 29 30 33 35 36 36
+76 80 82 85 88 92
+23 27 29 30 32 37
+32 36 37 35 37 40 42 43
+4 8 9 12 15 14 16 15
+2 6 4 7 7
+37 41 43 40 42 46
+2 6 9 12 10 16
+30 34 37 37 40
+23 27 27 28 30 32 30
+37 41 44 44 44
+5 9 11 14 16 16 20
+82 86 88 91 91 92 99
+16 20 24 27 30 32 33
+73 77 80 82 86 87 90 89
+42 46 50 51 52 53 55 55
+77 81 83 87 88 90 92 96
+72 76 80 81 83 85 90
+3 7 8 9 14 16 18 20
+26 30 35 38 40 42 40
+15 19 21 22 28 31 32 32
+2 6 12 15 17 21
+28 32 34 36 41 48
+41 46 49 50 51 52 55 57
+36 43 44 46 45
+52 58 59 60 63 63
+26 32 33 36 37 39 41 45
+8 13 16 17 24
+33 39 41 44 41 43 45
+38 45 46 47 45 48 45
+35 40 42 39 42 45 46 46
+79 85 88 87 91
+74 80 82 83 86 88 85 91
+29 35 38 41 44 44 46
+59 64 65 65 66 67 68 67
+77 83 85 86 86 89 89
+30 36 37 39 40 40 43 47
+21 26 27 30 30 35
+35 40 43 47 50
+67 72 76 78 79 82 83 80
+3 8 9 12 16 16
+58 65 69 72 74 77 81
+6 13 14 16 20 22 23 30
+3 9 11 17 19 22 23
+66 73 75 77 83 85 84
+7 13 16 21 22 24 24
+70 76 77 79 86 90
+45 52 55 58 65 71
+69 66 64 62 61 60 57 60
+66 63 62 60 58 57 57
+93 92 90 89 86 82
+65 64 61 58 52
+18 17 15 17 14 12
+64 62 60 62 60 62
+34 33 32 31 28 27 29 29
+23 22 19 22 19 16 12
+64 61 60 61 54
+89 87 86 84 84 83 82 81
+77 74 74 73 71 73
+39 37 36 36 34 34
+30 29 29 27 25 22 18
+41 39 39 36 31
+45 43 39 38 36
+93 91 87 85 88
+90 87 85 81 81
+61 59 58 54 53 51 47
+85 82 79 76 72 69 62
+44 41 39 36 29 27 25
+50 48 45 44 41 36 33 36
+99 97 96 93 91 90 85 85
+98 96 91 89 85
+93 90 89 83 77
+43 44 42 39 37 34 32
+76 79 76 74 71 68 70
+23 25 23 22 20 17 17
+68 69 67 64 62 58
+50 53 50 49 46 40
+13 14 12 11 14 13
+11 12 9 8 7 9 7 9
+62 63 61 63 60 57 57
+60 63 61 60 62 58
+16 19 18 16 17 16 14 8
+31 34 31 28 28 27
+62 64 62 59 56 56 55 56
+90 92 90 88 85 85 84 84
+71 74 73 73 70 69 67 63
+40 41 41 40 38 31
+73 74 71 67 64 63
+48 50 47 44 40 41
+69 71 67 66 65 64 62 62
+72 75 71 69 65
+71 73 70 68 64 62 60 54
+89 91 84 81 79 76
+76 79 77 70 72
+50 51 46 43 42 42
+40 42 35 32 29 28 24
+26 28 26 21 18 16 9
+11 11 8 7 6 4
+66 66 64 61 58 57 59
+41 41 38 35 32 29 29
+52 52 50 47 45 42 39 35
+26 26 24 21 18 15 14 7
+74 74 75 72 70 67 64
+46 46 47 46 48
+81 81 79 77 78 78
+37 37 38 35 31
+20 20 18 20 14
+21 21 20 18 18 17 14
+45 45 42 40 40 37 34 37
+63 63 63 61 61
+82 82 81 79 79 75
+81 81 78 77 76 75 75 70
+82 82 78 77 75
+87 87 86 82 84
+32 32 28 27 27
+87 87 83 82 79 75
+67 67 65 64 61 57 51
+26 26 25 23 20 15 12
+57 57 52 51 53
+18 18 12 11 11
+38 38 32 29 25
+64 64 62 59 57 54 48 42
+38 34 33 30 28 27
+93 89 88 87 84 83 81 84
+51 47 44 41 38 36 35 35
+93 89 88 85 84 82 78
+88 84 83 81 80 79 72
+82 78 81 79 77
+58 54 52 54 56
+9 5 7 6 6
+38 34 33 34 33 32 28
+52 48 45 48 46 44 42 35
+33 29 28 25 25 24 23 22
+32 28 26 26 25 26
+97 93 92 90 90 90
+10 6 5 5 1
+31 27 27 24 22 15
+55 51 48 44 43 40 37
+33 29 28 25 24 20 17 18
+28 24 20 18 16 16
+43 39 36 34 30 26
+84 80 78 75 71 65
+45 41 40 39 38 32 30
+87 83 81 76 78
+82 78 73 70 68 68
+39 35 29 27 24 21 18 14
+85 81 79 76 73 70 63 57
+49 43 41 38 35 34 32 29
+92 87 85 83 82 79 78 79
+37 30 28 25 23 23
+25 20 17 14 12 9 5
+87 81 80 77 71
+98 91 90 88 86 88 86
+47 40 38 36 39 36 37
+39 34 31 30 32 32
+84 79 82 79 75
+34 28 25 26 24 23 18
+73 67 65 65 63
+94 89 89 88 87 89
+92 85 83 80 78 78 78
+41 36 34 32 32 30 26
+76 71 70 70 64
+38 31 30 26 25 22 19
+65 60 58 55 51 53
+94 89 85 82 82
+36 31 30 26 23 20 16
+42 36 32 31 26
+73 66 59 58 57 54 52
+65 60 55 53 55
+68 63 61 55 54 52 50 50
+26 20 19 18 13 9
+30 25 24 18 17 11
+71 74 75 77 80 81 79
+38 41 42 43 45 47 49 49
+84 85 86 88 91 93 97
+51 54 56 57 63
+21 23 26 24 27 30
+28 29 32 34 35 38 37 35
+38 39 37 40 41 44 45 45
+38 39 40 43 46 44 45 49
+8 11 8 11 18
+60 61 63 65 66 66 67 69
+57 58 58 59 60 59
+71 74 76 79 80 80 80
+48 51 53 56 58 58 62
+84 86 88 91 91 96
+15 17 21 22 25
+66 67 69 71 72 73 77 75
+26 29 32 35 39 42 43 43
+16 19 23 24 26 29 33
+1 3 5 6 10 11 16
+60 61 63 65 67 70 76 78
+7 10 12 19 16
+46 49 50 51 58 59 60 60
+6 9 11 18 19 23
+6 9 11 17 24
+74 73 74 75 78
+67 66 69 72 74 76 73
+88 86 88 89 92 92
+30 29 32 34 36 38 42
+5 3 4 7 9 12 17
+24 22 19 22 25 28
+55 52 53 51 54 56 58 56
+31 30 31 32 34 36 35 35
+50 49 47 49 50 54
+21 18 20 19 22 25 32
+81 80 83 85 85 86
+70 67 67 68 66
+10 7 9 12 15 15 18 18
+86 83 86 86 87 90 94
+36 35 35 37 38 43
+38 35 36 39 43 46
+25 22 24 28 30 32 33 31
+20 17 20 24 26 29 29
+20 17 18 21 25 29
+55 53 54 57 58 60 64 70
+15 14 17 20 21 24 29 32
+18 16 21 22 19
+5 4 5 7 13 16 16
+67 65 66 67 73 77
+39 36 39 46 48 50 56
+85 85 86 88 90 92
+41 41 42 45 46 49 50 47
+89 89 92 95 95
+72 72 73 74 78
+20 20 22 24 30
+86 86 88 87 89 92 95
+77 77 80 82 80 81 80
+49 49 51 53 51 51
+46 46 47 45 49
+3 3 5 7 4 7 13
+49 49 52 53 53 55 58 60
+88 88 91 94 97 97 95
+70 70 70 73 76 79 79
+24 24 26 26 27 31
+75 75 75 78 83
+22 22 25 29 30 31 33 35
+60 60 63 67 65
+49 49 53 56 57 59 59
+19 19 20 22 23 27 31
+73 73 76 80 86
+80 80 81 84 90 92 95 98
+42 42 49 51 52 54 53
+35 35 38 39 40 45 45
+29 29 30 37 41
+46 46 49 50 56 63
+57 61 64 67 68 70 71 72
+83 87 90 91 92 93 92
+30 34 35 36 37 39 39
+66 70 73 76 77 81
+14 18 20 22 23 26 29 34
+78 82 83 86 88 89 86 89
+18 22 21 22 24 23
+50 54 57 54 56 56
+38 42 44 46 43 47
+42 46 49 46 49 55
+22 26 28 29 29 30 32
+38 42 45 45 47 48 46
+71 75 77 79 79 79
+34 38 39 42 42 46
+66 70 71 72 72 73 79
+86 90 94 97 99
+52 56 59 63 65 67 65
+8 12 14 16 20 23 23
+50 54 58 59 60 64
+32 36 39 41 44 48 51 56
+73 77 79 86 89 91 93
+28 32 35 38 43 40
+40 44 50 53 56 59 59
+71 75 77 80 81 86 89 93
+13 17 19 22 28 35
+58 64 67 69 70 73 74
+54 60 63 64 66 68 70 68
+36 43 46 48 48
+31 37 40 42 45 49
+83 88 89 90 97
+20 26 25 26 27
+5 11 9 12 9
+30 37 35 37 37
+23 28 29 28 32
+70 76 78 77 79 81 83 88
+14 20 22 22 24
+41 48 51 51 48
+68 73 75 75 75
+49 54 55 56 56 57 58 62
+45 51 54 57 57 64
+13 19 21 23 27 29
+78 83 85 89 92 90
+48 55 57 60 64 64
+30 36 37 41 45
+26 32 36 38 45
+27 33 36 38 43 46 49
+24 30 33 36 37 44 46 44
+70 76 82 83 86 89 89
+6 13 15 20 24
+47 53 55 56 62 64 66 71
+64 63 61 58 56 54 51 53
+50 48 46 43 42 39 39
+91 89 88 87 83
+50 49 47 45 44 41 36
+56 53 51 53 50
+23 20 18 21 24
+38 37 36 37 36 36
+59 56 57 55 54 52 48
+47 44 46 43 42 37
+76 74 72 69 67 65 65 62
+22 21 19 19 17 18
+67 65 65 64 64
+28 25 25 23 19
+15 13 13 11 6
+72 70 69 65 62 59 56 55
+13 11 7 6 5 3 2 3
+23 20 17 14 13 11 7 7
+83 80 78 74 71 67
+21 19 15 13 11 5
+86 83 80 78 73 71 70
+75 74 69 68 65 62 59 60
+35 34 31 28 22 22
+75 74 69 66 64 60
+71 70 67 65 58 56 49
+92 94 92 89 86
+63 65 64 62 60 63
+52 55 54 52 51 51
+71 72 70 67 64 60
+9 11 8 7 2
+90 92 89 91 88 85 84 82
+13 15 17 15 12 10 12
+87 90 89 86 83 84 84
+98 99 98 99 95
+79 81 80 83 82 76
+24 26 25 25 22 19 18
+79 81 78 75 73 73 70 73
+82 83 80 80 80
+94 97 95 94 94 90
+65 66 65 65 64 63 62 55
+52 54 52 48 47
+54 57 55 51 49 47 49
+81 84 80 78 75 75
+43 44 42 38 37 36 32
+42 44 43 42 41 37 31
+86 87 82 81 80
+54 55 53 48 49
+57 60 57 51 51
+64 66 61 58 55 51
+67 68 66 61 59 52
+72 72 70 69 68 66 63 62
+88 88 85 83 80 77 75 78
+10 10 7 6 5 2 2
+59 59 58 57 55 52 48
+63 63 61 58 56 54 52 45
+44 44 41 40 37 40 37 36
+4 4 5 3 4
+68 68 66 64 67 65 62 62
+71 71 68 67 70 69 65
+56 56 54 55 48
+40 40 37 37 36 34 31 29
+40 40 40 39 40
+99 99 96 96 96
+24 24 23 20 20 19 17 13
+26 26 26 24 23 17
+24 24 21 19 15 12
+19 19 18 15 11 8 7 8
+37 37 34 32 29 25 25
+34 34 31 27 25 22 18
+57 57 55 51 48 41
+53 53 50 47 41 39 38 36
+37 37 35 33 32 31 25 26
+72 72 71 69 66 59 59
+49 49 42 40 38 34
+35 35 33 28 25 24 19
+49 45 43 41 40
+71 67 66 64 61 63
+19 15 12 11 10 10
+89 85 84 82 78
+42 38 35 34 32 30 25
+12 8 11 8 5
+47 43 40 38 39 42
+79 75 72 71 73 73
+77 73 72 70 73 69
+87 83 81 78 80 78 75 69
+16 12 11 9 9 7 5
+70 66 66 64 62 64
+55 51 48 48 48
+99 95 94 94 91 89 85
+43 39 38 38 35 32 26
+51 47 43 41 38 35 33
+45 41 40 37 33 30 28 31
+73 69 66 63 62 58 58
+75 71 67 66 63 61 58 54
+49 45 41 40 33
+21 17 11 10 8
+18 14 12 7 5 4 7
+93 89 83 82 80 78 78
+31 27 25 22 16 15 11
+39 35 29 28 25 19
+46 41 38 37 36 35 34 33
+97 92 89 87 85 84 87
+83 77 74 71 68 68
+37 30 27 24 20
+78 71 68 66 59
+28 21 24 21 19 17 14 13
+55 48 47 50 53
+73 68 66 65 62 65 65
+88 82 85 83 79
+61 55 57 56 55 48
+58 53 50 47 44 44 43
+30 25 25 24 21 22
+55 50 49 46 46 44 44
+36 31 28 28 27 23
+74 67 67 65 58
+83 78 74 71 70 69
+86 80 76 74 73 70 73
+24 19 15 13 13
+62 57 53 52 49 45
+25 20 19 15 9
+90 85 78 76 73 71
+25 19 17 10 7 6 8
+61 54 52 50 43 43
+61 56 55 54 52 47 43
+58 51 44 41 36
+56 56 58 63 63
+98 94 91 93 95
+30 31 36 38 38
+33 27 25 18 16 13 12 6
+30 36 39 41 42 48 51 56
+51 54 56 56 60
+12 12 13 16 15 18 18
+20 14 11 11 9 11
+80 76 73 70 68 64 60
+41 41 42 43 45 51 54 61
+40 39 42 41 39
+34 34 31 32 30 27 24 24
+30 30 31 33 34 36 40 43
+2 8 11 13 17 18
+22 22 25 29 30 35
+37 37 35 37 35 38
+29 34 34 36 39 40 37
+31 27 25 22 21 21 22
+49 44 40 37 33
+34 32 31 29 29 27
+33 40 41 42 43 43
+33 34 35 36 39 42 45 48
+69 70 72 73 75 78 80
+53 50 49 48 47
+10 9 6 5 4
+70 72 75 78 80 83 84
+32 35 37 39 41
+79 76 73 71 70 69 66
+72 70 67 66 64 63 61
+33 34 36 38 40 42 45 46
+75 72 70 67 64
+61 58 57 56 55
+35 34 32 31 30 28 25 24
+43 40 38 36 33 30 28
+78 79 81 83 85
+99 97 94 92 90
+67 69 72 75 76
+28 31 34 37 38 40 43 46
+40 41 44 45 46 48
+87 84 82 79 77
+39 40 43 45 47
+39 37 34 32 31 29
+96 94 93 91 89
+75 76 79 80 83 84
+55 52 49 46 43 40 37
+65 63 62 61 58 56 55
+6 7 10 11 13 15 18 21
+11 9 8 6 5 4 1
+26 23 21 20 19 18 16 15
+19 22 25 27 29 31 33 34
+39 36 33 30 28 25
+58 59 60 61 62 65 66
+31 29 27 24 22 21 18
+83 86 89 90 91
+26 28 31 33 34
+64 66 69 71 72 75 76 79
+69 72 75 76 78 79 81
+38 40 43 45 48 50 51
+24 26 29 31 33
+48 50 52 53 55
+33 36 37 38 41 44 46
+83 86 88 91 94
+41 42 43 46 48 50 51 52
+67 68 71 72 74 75
+49 51 52 53 56 59
+12 9 8 6 4 3
+97 96 94 92 91 90 89 86
+33 31 30 29 27
+20 18 17 14 13 11 10
+7 8 10 11 13 16 17
+69 72 73 74 76
+82 84 85 87 89
+48 47 45 42 41 38
+21 23 25 26 29 31 32
+61 60 59 57 56 53
+57 60 61 62 64 66 67
+95 94 91 90 89 87 84
+9 10 11 13 14
+13 16 19 22 25
+95 92 90 87 85 83 82 79
+56 55 52 49 48 46
+16 18 20 23 24 27 28 30
+29 26 24 22 19 16 13 12
+27 28 30 32 35 36 39
+63 65 66 68 71 72
+75 76 77 78 81
+48 45 42 40 39 38 35
+16 17 20 23 24 25 26 28
+10 11 13 15 16
+46 44 41 38 36
+46 48 49 50 52 54 57
+78 75 73 71 70 68 66
+72 69 67 65 64
+80 78 76 73 70 67
+32 34 35 38 41 44
+33 36 39 40 41 43
+9 12 13 16 19 21 24
+18 15 12 11 8 5
+6 7 10 11 12 13 16 18
+20 18 17 14 13 11
+22 19 16 14 11 8 5 2
+47 46 43 41 38 36
+77 74 72 71 69 67
+40 38 36 35 34 32
+15 18 21 24 27 29 31 34
+98 97 96 93 90
+68 67 65 63 62 61
+48 51 53 55 58
+64 67 69 71 73 75 78
+3 4 5 7 10 11
+21 22 24 27 29 30 32 34
+56 55 52 50 49 46
+52 51 50 47 44 43 41
+61 59 57 56 53 51 49 48
+57 60 63 64 66 69 71
+31 33 36 39 41 42 44 45
+62 63 64 66 68 71
+86 85 82 79 77 76 74
+34 33 31 28 25 24 23 22
+7 8 9 11 12 15 18 21
+56 59 61 62 65 66 68 69
+31 32 35 36 39 40 41 42
+44 46 48 50 52 55 58 60
+91 94 96 98 99
+40 41 43 44 47 48 51 52
+82 85 88 89 91
+55 54 51 50 47 46
+98 96 94 91 90 88 86 83
+16 15 12 11 10 9 6 5
+67 66 65 64 63 61 58 55
+41 40 39 37 34 31 29 26
+19 22 24 27 30
+12 14 17 18 21 22 23
+69 67 64 61 59
+87 84 81 79 76 74 73
+84 86 88 89 91
+61 59 57 54 53 51 50 47
+33 30 29 27 26 23 20
+81 80 77 75 72 70 69 68
+95 93 91 90 88 85 84
+47 49 52 55 57 60 62 65
+62 63 66 67 69
+63 60 57 56 54 53 52 51
+13 14 17 19 22 24 25 27
+66 68 70 71 72 75 78
+94 93 90 88 85
+76 77 78 80 81
+79 77 75 72 70 67 64 63
+20 18 16 13 12 11
+39 40 43 46 48 49 51 53
+36 39 42 44 46
+71 73 76 79 81 82
+96 93 91 90 87 85 84
+49 46 45 42 39 36 33 31
+62 63 64 66 69 72 75
+46 49 52 55 57 58 59 62
+61 63 65 66 67 68
+44 47 49 50 52 53
+65 64 62 61 60 57
+85 82 81 80 78 77 74
+80 77 74 71 69 67 65
+73 70 68 66 64 63 62
+55 57 60 62 64 66
+10 8 6 5 4 3 1
+61 59 58 56 54
+28 25 24 22 21 18 15
+30 33 34 37 40
+85 82 80 77 76 73
+57 60 61 64 67
+87 88 89 90 91 94 95
+3 4 6 7 10
+54 52 50 49 48 46
+92 91 88 86 84
+82 79 76 74 71
+56 57 60 61 63 66 69
+71 70 68 65 62 61 59 57
+63 62 59 56 54 51
+10 12 14 15 18
+22 23 24 25 26 29 30
+24 25 26 29 30 31 34 37
+34 33 32 31 29 28 25
+39 41 44 46 48
+15 18 20 22 25
+69 72 74 75 76 77
+88 87 86 85 84
+53 50 47 46 44 43 40 38
+84 81 78 76 74 71 69
+25 23 20 18 17 14 12
+99 97 95 94 92
+17 18 20 21 24 26
+14 17 18 20 22
+66 69 72 73 75 76
+49 46 45 44 41 40 37
+49 47 45 43 42 39 36
+95 92 89 86 83
+42 41 40 37 34 32 29
+68 65 63 60 59 56 54 51
+28 31 32 34 35 38 41 42
+17 18 21 23 26 29 32
+87 90 92 94 96 98 99
+11 14 17 18 20 22 23
+51 48 45 43 41 40 39 37
+72 74 77 79 82 85 86
+82 84 87 90 92 94 97 99
+84 87 88 91 92 93
+88 90 93 96 97 98
+18 21 24 25 28
+87 88 90 92 95 97
+2 5 8 10 11
+60 58 56 55 54 52 50 48
+19 17 14 12 9 6
+42 39 36 34 33
+66 65 63 60 58 56 54 52
+62 63 66 68 69 72 75
+50 47 44 41 40 39 38
+32 33 36 39 40 41
+51 49 47 45 42 40
+73 70 67 66 63 61 59
+36 39 42 44 45 48 51 53
+19 16 15 12 11 9 7
+61 58 57 56 53 50 47
+26 25 22 21 20 18 17
+15 13 10 8 7
+7 8 9 11 12 13 15 17
+37 39 41 42 45 47 49
+63 64 66 69 71 74
+45 43 42 39 38 36 33
+41 40 39 37 34 32 31
+13 14 15 16 19 20 23
+24 23 22 19 17 15 14
+93 91 89 87 84 81
+47 46 44 42 39 38
+83 82 80 79 76 75 74
+17 20 22 24 26 27 29
+41 39 36 33 31 29
+45 46 49 52 54 56
+4 6 8 10 13 14 15 17
+72 69 67 64 61 58 56
+12 14 17 19 21 24 26
+54 57 58 61 62
+9 11 14 16 18 20
+38 40 42 45 46 48 49
+28 27 26 25 22 19 16
+79 76 75 74 71 70 67
+81 78 75 73 72
+76 79 82 85 86 88 91 93
+26 23 22 19 17 14 12
+52 50 48 45 44 41
+71 70 67 64 61 60 57 55
+22 24 26 29 30 33 35 36
+3 5 7 10 13 14 15
+51 49 47 46 43 42
+18 20 21 24 27
+36 37 40 43 45
+93 90 88 86 84 82 80
+6 7 10 13 14
+90 89 87 85 82 79 77 76
+84 81 79 76 75 74 73 70
+2 4 7 10 12
+83 84 85 86 89 91 92
+68 70 73 75 76 77 80 83
+60 57 55 52 49 48 46 45
+78 76 75 73 70
+19 21 22 24 25 28 30
+72 74 75 76 77 79
+45 48 49 52 53 56 57
+55 57 60 62 64 66 67
+87 85 82 80 77 74
+39 38 36 35 33 32 30 27
+26 29 31 34 36 38
+52 53 56 57 60
+65 63 61 60 57 55 54
+59 61 63 64 67 69 70
+53 52 49 46 45 42 39 37
+76 75 72 69 67 64 62
+52 55 56 57 60 63
+51 53 56 57 59
+32 31 30 29 28 27 24
+25 27 30 33 34 35 36 37
+7 8 9 10 12 13 16 19
+36 33 32 31 28
+95 94 91 89 86 83 81 80
+43 42 41 38 36 35 33
+33 30 27 25 22 20 19 18
+57 55 54 51 49 47 45 42
+63 61 60 58 55 53 51 48
+45 44 41 40 38 37 34 31
+87 85 84 83 80 77 74 73
+31 29 28 27 25
+14 11 10 7 4 1
+17 14 12 11 9
+50 49 47 45 44 42
+55 58 60 63 66 68
+88 90 92 94 96 97
+23 24 26 28 29 32
+9 11 13 15 17
+82 83 85 87 89 92 94 95
+16 17 20 22 23
+54 55 56 58 60
+29 27 25 24 23
+73 71 69 68 67 65 62
+3 5 7 9 10 13 15
+76 75 73 70 67
+48 45 44 43 41
+52 54 57 59 61 64 65 66
+68 70 73 75 76 77 78
+68 67 65 63 60
+49 51 54 56 58
+11 8 7 6 4 3
+49 52 54 57 58 59 60 62
+22 19 18 16 13 10 7
+79 81 84 86 88 91 94 95
+34 32 31 30 29
+44 41 38 35 34 32 31
+10 12 13 14 16 18 19 20
+19 22 25 26 28 31 34 37
+68 70 73 75 77 79 81 84
+24 21 19 18 15 13
+98 96 93 92 90 88 86
+97 94 91 88 85 83 81
+65 63 60 58 57 55 54
+58 61 62 65 67
+42 44 45 46 48 50 51
+33 30 27 25 23 22
+57 54 52 50 48 47 46
+48 45 44 42 39
+91 89 88 86 85 83
+39 38 36 35 32 31 29 27
+39 38 37 36 34 33 31
+89 91 93 96 97 98
+48 49 52 53 54 56 59 62
+78 81 82 83 86 87 90 91
+47 48 50 53 56 58 61
+85 87 90 91 93 95
+28 31 33 34 36 38
+41 39 38 36 35 33
+54 55 58 60 61 63 64
+8 11 13 15 16
+20 18 15 13 11 9
+51 53 56 59 61 62 65
+40 41 42 43 46
+90 87 85 82 80
+6 7 8 10 11 13 15
+72 74 76 78 81 84 87 90
+85 86 87 88 91 93
+12 10 9 8 7 5 2
+84 82 79 78 75 73 72 69
+54 51 50 48 47 45 42
+89 88 87 86 85 84 81 79
+36 35 33 31 29
+41 44 47 48 49
+27 29 30 31 32 35 36 39
+3 5 8 10 12 14 15 16
+2 5 8 11 14 17 18 20
+75 76 77 80 81 83 86
+56 57 59 62 65 66
+67 69 70 72 73
+7 10 13 15 18 21 22
+55 53 51 48 45
+3 6 7 10 12 14 16 19
+88 87 84 83 81 80 77 76
+62 64 66 67 69
+75 78 80 81 84
+88 86 85 82 80 79 76
+66 69 72 74 77 78 79
+48 46 43 42 40
+66 69 71 74 77 79 80 83
+55 58 61 64 67 68 70 71
+61 58 57 55 53
+43 46 49 50 51 52
+56 53 50 49 47 46
+57 59 62 65 67 70 72
+46 45 42 40 39
+93 92 90 89 86 85 83
+76 77 79 82 85 87
+31 28 26 25 24 23 22
+35 34 32 31 29 28 25
+84 82 80 78 76 75
+13 11 10 7 5 2
+43 40 38 36 34 31 28 27
+30 29 26 25 22 20
+87 86 83 82 80 77 75 72
+45 46 48 50 51 53
+25 23 20 19 17 16
+31 33 36 38 40 41 43 44
+64 62 59 57 55 54 52
+11 14 15 17 18 20 21
+75 72 70 67 66 63 62
+71 72 73 75 78 80 81 84
+31 34 35 36 38
+26 23 21 19 18 15 14 13
+26 24 21 19 16 13 10
+67 70 73 75 78 80
+64 62 59 58 57 54 51
+62 59 56 54 52 49 48 46
+13 16 18 21 24 26 28 31
+26 28 29 30 33 34 37
+30 28 26 24 23
+74 77 79 81 83 85 88
+45 47 49 51 53
+30 27 26 25 23
+2 5 8 10 11 12
+91 90 88 87 86 84 81
+97 96 93 92 89
+34 36 37 40 41 44 46 47
+44 41 38 37 36 34
+42 44 45 48 50 52 53 54
+12 10 8 7 6
+56 58 60 63 64 67 69 71
+46 47 48 49 52 54 57 59
+81 84 86 88 91
+73 71 68 66 63 62 59 57
+42 39 36 33 32 31 30
+1 2 5 8 9 11
+42 43 44 47 50 51
+33 32 31 28 26 25 24
+67 70 73 76 79
+39 41 43 44 47 49
+42 41 38 37 34 31
+23 21 19 16 14 13
+86 87 88 91 94 95 96
+40 37 34 33 32 29 26
+84 86 88 91 94 95
+69 70 72 73 75 77 80
+35 32 31 29 27 25 23
+19 21 22 23 24 25
+86 83 82 81 79 77 76 73
+41 44 46 48 51 52
+72 74 75 76 78 79
+59 57 54 51 49 48 46
+1 4 6 7 9 10 13 14
+18 16 13 12 10 8 5 3
+82 85 86 87 88
+17 16 15 14 12
+20 17 16 13 11 10 9
+72 70 67 64 62 61 59 56
+57 60 61 63 65 67
+44 42 39 38 37
+35 38 40 41 44
+31 30 27 26 24 22
+18 15 12 11 10 9 7
+30 31 32 33 36 38 39 42
+61 60 58 56 53 52 49
+53 56 58 61 62 64
+78 79 80 83 84
+54 51 50 49 46
+59 61 64 66 68 71 74
+14 12 10 8 5 2
+12 13 16 17 20 23
+54 57 60 61 63 65 68 70
+67 65 63 61 60 59 56 54
+50 51 53 56 57 59
+74 76 78 81 84 87
+23 24 25 28 29 31
+74 71 68 66 64 62 59
+63 61 60 58 55 54 51
+71 73 74 77 78
+20 19 18 15 13 12 9 7
+62 61 60 58 55
+33 30 29 27 26 25 22
+69 67 64 62 61 58 56
+54 55 58 60 61
+77 80 82 85 86 87
+71 68 66 64 63 62
+19 17 14 13 10
+41 39 38 35 34 33 30 29
+69 67 66 64 63 60
+57 55 53 50 48 47 44
+61 59 57 54 51 49
+74 73 71 68 65 63 61
+69 70 71 73 75
+81 79 77 76 75 73
+58 57 56 55 52 51 50
+31 29 26 23 22 20 17
+61 59 58 57 54 51 49
+67 69 71 72 73 76 79 80
+91 88 87 85 82 79
+62 65 67 70 72 75 77
+68 69 72 73 75
+10 13 15 16 17 19
+27 30 31 34 35
+17 16 13 12 11 10 7 6
+22 21 19 18 16
+46 48 51 52 55 57
+60 59 56 55 52 51 50
+92 90 87 85 83 82 79 77
+5 6 9 10 13 16 19
+26 24 22 20 18 17 16 15
+68 69 72 74 75 77 78
+13 16 19 21 22
+19 22 24 27 28 30 31 32
+20 22 24 25 26 27
+48 47 45 44 41 40 37 34
+92 89 88 85 83
+37 34 32 29 26 24
+31 33 34 37 38
+97 95 93 91 89 86
+54 52 49 47 46
+18 15 13 12 9
+32 33 36 38 40 42 45
+81 83 84 85 87
+73 70 69 66 65 62 60 58
+89 91 92 93 94 96 97
+58 56 55 52 49 48 45 43
\ No newline at end of file
diff --git a/2024/input/03 b/2024/input/03
new file mode 100644
index 0000000..dd02298
--- /dev/null
+++ b/2024/input/03
@@ -0,0 +1,6 @@
+^+'*>,,why()mul(229,919)&$-#^~mul(187,600)@