diff --git a/AdventOfCode.csproj b/AdventOfCode.csproj
index 1168b6b..1390a4f 100644
--- a/AdventOfCode.csproj
+++ b/AdventOfCode.csproj
@@ -18,4 +18,8 @@
+
+
+
+
diff --git a/Days/Day8.cs b/Days/Day8.cs
new file mode 100644
index 0000000..dcf9d4b
--- /dev/null
+++ b/Days/Day8.cs
@@ -0,0 +1,221 @@
+using System.Buffers;
+using System.Numerics;
+using Spectre.Console;
+
+namespace AdventOfCode.Days;
+
+public class Day8 : Day
+{
+ public override int Number => 8;
+ public override string Name => "Playground";
+
+ public override void RunPart1(bool display = true)
+ {
+ var boxPositions = ParseBoxPositions(Input);
+ var boxPairDistances = FetchOrderedDistances(boxPositions);
+
+ var circuits = new List>();
+
+ var connectionsCount = 0;
+
+ while (connectionsCount < 1000)
+ {
+ // Fetch next minimal distance pair. This is always the last pair in our ordered list
+ var (pairLeftBox, pairRightBox, _) = boxPairDistances[^1];
+ boxPairDistances.RemoveAt(boxPairDistances.Count - 1);
+
+ // Create a connection if those two boxes are not already connected
+ if (!ConnectionExists(circuits, pairLeftBox, pairRightBox))
+ {
+ // Connect the boxes, eventually merging circuits
+ ConnectBoxes(circuits, pairLeftBox, pairRightBox);
+ }
+
+ connectionsCount++;
+ }
+
+ var result = circuits
+ .OrderByDescending(circuit => circuit.Count)
+ .Take(3)
+ .Aggregate(1, (product, circuit) => product * circuit.Count);
+
+ if (display)
+ {
+ AnsiConsole.MarkupLine($"[green]Result is: [yellow]{result}[/][/]");
+ }
+ }
+
+ public override void RunPart2(bool display = true)
+ {
+ var boxPositions = ParseBoxPositions(Input);
+ var boxPairDistances = FetchOrderedDistances(boxPositions);
+
+ var circuits = new List>();
+
+ long result;
+ while (true)
+ {
+ // Fetch next minimal distance pair. This is always the last pair in our ordered list
+ var (pairLeftBox, pairRightBox, _) = boxPairDistances[^1];
+ boxPairDistances.RemoveAt(boxPairDistances.Count - 1);
+
+ // Create a connection if those two boxes are not already connected
+ if (!ConnectionExists(circuits, pairLeftBox, pairRightBox))
+ {
+ // Connect the boxes, eventually merging circuits
+ ConnectBoxes(circuits, pairLeftBox, pairRightBox);
+ }
+
+ // Check if there is a circuit with all boxes connected
+ if (circuits[0].Count >= 1000)
+ {
+ result = pairLeftBox.X * pairRightBox.X;
+ break;
+ }
+ }
+
+ if (display)
+ {
+ AnsiConsole.MarkupLine($"[green]Result is: [yellow]{result}[/][/]");
+ }
+ }
+
+ private static double BoxDistance(Box left, Box right)
+ {
+ return Math.Sqrt(
+ (right.X - left.X) * (right.X - left.X) +
+ (right.Y - left.Y) * (right.Y - left.Y) +
+ (right.Z - left.Z) * (right.Z - left.Z)
+ );
+ }
+
+ static bool ConnectionExists(List> circuits, Box left, Box right)
+ {
+ foreach (var circuit in circuits)
+ {
+ if (circuit.Contains(left) && circuit.Contains(right))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ static void ConnectBoxes(List> circuits, Box pairLeftBox, Box pairRightBox)
+ {
+ // Try to find circuit containing each box
+ HashSet? leftCircuit = null;
+ HashSet? rightCircuit = null;
+
+ foreach (var circuit in circuits)
+ {
+ if (circuit.Contains(pairLeftBox))
+ {
+ leftCircuit = circuit;
+ }
+
+ if (circuit.Contains(pairRightBox))
+ {
+ rightCircuit = circuit;
+ }
+ }
+
+ // None is in a circuit, create a new one
+ if (leftCircuit is null && rightCircuit is null)
+ {
+ var circuit = new HashSet
+ {
+ pairLeftBox,
+ pairRightBox
+ };
+
+ circuits.Add(circuit);
+ }
+ // One of the two is null
+ else if (leftCircuit is not null && rightCircuit is null)
+ {
+ leftCircuit.Add(pairRightBox);
+ }
+ else if (leftCircuit is null && rightCircuit is not null)
+ {
+ rightCircuit.Add(pairLeftBox);
+ }
+ // Both are already in a circuit, merge them
+ else
+ {
+ foreach (var box in rightCircuit!)
+ {
+ leftCircuit!.Add(box);
+ }
+
+ circuits.Remove(rightCircuit);
+ }
+ }
+
+ private static List ParseBoxPositions(string input)
+ {
+ var positions = new List();
+
+ foreach (var line in input.EnumerateLines())
+ {
+ var split = line.Split(',');
+
+ split.MoveNext();
+ var x = long.Parse(line[split.Current]);
+
+ split.MoveNext();
+ var y = long.Parse(line[split.Current]);
+
+ split.MoveNext();
+ var z = long.Parse(line[split.Current]);
+
+ positions.Add(new Box(x, y, z));
+ }
+
+ return positions;
+ }
+
+ private static List FetchOrderedDistances(List boxes)
+ {
+ var boxPairDistances = new List();
+
+ for (var i = 0; i < boxes.Count - 1; i++)
+ {
+ for (var j = i + 1; j < boxes.Count; j++)
+ {
+ var leftBox = boxes[i];
+ var rightBox = boxes[j];
+
+ var distance = BoxDistance(leftBox, rightBox);
+
+ boxPairDistances.Add(new BoxPairDistance(leftBox, rightBox, distance));
+ }
+ }
+
+ // Sort in reverse order
+ boxPairDistances.Sort((left, right) => right.CompareTo(left));
+
+ return boxPairDistances;
+ }
+
+ private record Box(long X, long Y, long Z);
+
+ private record BoxPairDistance(Box Left, Box Right, double Distance) : IComparable
+ {
+ public int CompareTo(BoxPairDistance? other)
+ {
+ if (ReferenceEquals(this, other))
+ {
+ return 0;
+ }
+
+ if (other is null)
+ {
+ return 1;
+ }
+
+ return Distance.CompareTo(other.Distance);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Inputs/Day8.txt b/Inputs/Day8.txt
new file mode 100644
index 0000000..76095a3
--- /dev/null
+++ b/Inputs/Day8.txt
@@ -0,0 +1,1000 @@
+31316,90057,44547
+31517,64067,5099
+83231,82688,97747
+35658,44604,3753
+87880,40490,45177
+27324,13457,1244
+22745,1984,28324
+26351,73026,74409
+25331,88312,51857
+22272,83015,10838
+11772,69225,77897
+2362,92619,41178
+72041,60347,12547
+91637,80564,10728
+51646,19948,363
+64490,99698,80715
+35104,61088,60640
+75449,86256,69966
+99231,82557,31953
+57276,54487,12253
+79055,17005,74781
+25969,25959,62622
+91573,81515,99351
+77117,2935,15893
+44899,2657,90561
+56600,35285,94162
+20949,22854,67370
+68820,54431,92815
+19657,12028,96854
+38219,30593,82733
+14829,69232,94376
+31748,4416,59648
+93221,66602,57552
+94215,41064,78454
+33579,68931,83415
+79512,83512,93136
+19663,74262,30818
+65226,8247,21634
+18540,86670,10501
+7093,43165,20753
+86926,78782,10155
+11132,99499,57336
+34741,33114,97399
+78304,39734,28526
+81067,94432,55241
+58676,93514,53931
+34445,23276,78738
+83598,66115,24797
+58303,72013,84950
+85057,99681,49337
+72052,35235,7790
+54463,62029,32713
+46000,26785,62916
+2666,49355,44789
+78158,42922,3056
+94611,44426,64985
+28794,2719,58496
+9130,13065,23831
+24627,68009,71066
+80246,69830,71146
+20832,95819,27603
+26093,31113,27317
+5752,23938,47704
+39728,25919,4425
+23209,98896,41637
+35287,9705,14624
+18877,1917,89956
+86851,53980,76328
+46303,14909,35001
+52047,5358,79839
+45222,96421,67360
+8898,4014,487
+80303,62323,27390
+54353,57575,29919
+26094,62986,53397
+99840,95730,51599
+59,26905,64392
+14747,5169,21865
+66959,152,93718
+47149,472,13364
+29578,5812,65817
+97383,42687,67773
+21821,11476,33088
+86235,18378,73480
+90323,14386,55540
+72330,8690,61711
+50818,23152,55116
+5565,22984,61764
+49882,48632,98383
+32681,1380,39956
+66395,53474,27950
+35886,809,65766
+43679,99184,90471
+50937,54800,27310
+97706,77223,40697
+74217,69312,98990
+93155,19854,40232
+82272,81616,35401
+92348,30825,56094
+54538,3817,20969
+6064,57177,61628
+72016,58712,94567
+20818,22268,27292
+77244,7210,2255
+46128,30414,51680
+90295,47493,16991
+57461,57509,24083
+85147,78479,6565
+64035,15050,86678
+40674,61076,95031
+35733,66219,65858
+29109,63727,97077
+14266,70119,89904
+43806,10416,42405
+42301,2775,55311
+97538,41258,14661
+53264,70846,65899
+8135,36855,36169
+49536,41668,74783
+4278,8791,77031
+45543,65586,78398
+73988,11475,31132
+37976,62782,33275
+94418,12649,94279
+52920,89575,60576
+66023,4793,3693
+26971,93989,9726
+60198,16091,26801
+66772,99253,75223
+52527,92599,65418
+83596,13446,11283
+74035,25326,45397
+68256,68996,244
+84150,14720,35710
+86320,8847,73910
+75376,29314,13694
+82319,38187,61417
+44128,78874,13082
+73576,97363,57840
+66437,13661,53183
+79156,48947,2885
+66911,48238,63308
+49312,59359,98899
+20743,53672,79220
+83903,54251,8115
+81724,51171,94533
+62441,67397,46504
+21317,99336,99589
+79802,50149,15319
+76108,48493,1298
+37796,65075,63864
+73192,31446,38255
+41037,34551,15048
+95830,16867,85263
+49186,88436,60409
+70841,87476,7498
+53835,75411,51066
+50180,96834,46430
+75262,26055,31217
+5303,45882,78519
+84288,82684,44013
+53861,86882,48192
+24518,87280,64984
+20644,84310,50064
+20512,87505,19834
+41300,78019,98250
+13497,25950,58234
+44691,30343,47805
+58133,97381,98751
+48891,39667,27968
+12439,38317,7540
+36334,40822,94752
+50327,93694,6560
+92690,21497,60102
+63732,87894,97902
+90319,38961,20293
+6574,85531,27388
+20401,96966,11189
+32655,79800,29480
+91387,17194,47687
+83467,17006,68600
+88755,73912,4383
+67621,16364,27688
+1290,61355,46760
+63001,21371,45148
+92022,52350,62936
+52205,72056,25793
+25222,50040,19571
+91160,18807,77138
+30271,47578,97265
+96195,66802,42326
+36269,37079,16198
+45969,2766,93544
+73080,81445,90688
+83443,34789,57276
+27514,88521,49325
+98640,56098,33322
+15849,1050,73446
+14653,52950,15948
+18638,45520,88480
+14576,79063,67546
+91933,22683,61800
+21181,35942,13669
+16510,46378,95939
+38891,10142,40881
+49311,41255,31289
+97448,29183,79965
+33823,13841,99252
+11093,32898,54445
+9692,49131,10200
+94300,49196,40347
+15081,94760,42695
+28738,10663,15123
+40324,91815,82914
+21563,72030,76153
+30999,99326,89070
+14276,90610,37237
+2813,55564,11809
+36543,51165,77729
+48717,95442,51016
+53065,1817,53245
+22796,49216,42285
+6201,31216,29196
+1420,63174,69079
+44465,12623,21273
+2404,60424,86405
+57458,92769,20790
+94415,45569,53627
+9062,52483,82775
+82038,47450,67261
+4350,26131,39729
+40135,60223,5150
+1143,76109,45770
+36752,69708,96252
+17637,51975,86287
+98586,73570,88500
+389,4145,43716
+57572,72516,88902
+85736,28601,27513
+66690,23590,81397
+75019,7760,41489
+41669,69014,58788
+82358,57256,77355
+55648,91197,46315
+81011,74718,45646
+73705,10869,62919
+81638,97102,54857
+83618,24375,92383
+60059,54177,92460
+80660,1148,72016
+44706,62613,59010
+96862,68825,34639
+30207,96194,73519
+44652,80440,64244
+89887,11314,32786
+89146,34799,11052
+95982,91638,53094
+53784,49604,66966
+72943,55885,3969
+81279,60280,52083
+93821,57763,95305
+4953,79294,16084
+63070,98897,56672
+32502,18133,86587
+98885,75457,62354
+70216,83197,51681
+47614,92309,35808
+7305,59381,14895
+52407,54331,50894
+29346,95260,99600
+24531,48916,34172
+6556,10661,42884
+86489,12130,83858
+15126,23754,95665
+11323,64959,86072
+74434,23234,87225
+74158,2958,74818
+28982,50093,29543
+75232,68044,56291
+13257,49718,74188
+75388,4701,84892
+56406,77467,22589
+58577,52653,93354
+20118,47005,34335
+79862,86672,25387
+43020,3726,4664
+69872,56963,22281
+12425,37465,69737
+20287,73461,48223
+11117,20970,32235
+44308,24330,5666
+36502,21514,45449
+88175,16525,59679
+86124,18138,49691
+52843,64879,60773
+73909,12589,43846
+79811,90121,88495
+25186,55542,60306
+87868,26634,2609
+35956,48392,59786
+22500,68388,7676
+63284,76146,57889
+53726,20057,93215
+97017,31515,1891
+29885,84018,19635
+12984,37128,6658
+94287,38572,30896
+82811,27954,75498
+45644,51201,59385
+23607,68085,19911
+47942,33560,61130
+39291,36988,36027
+3952,83682,91322
+55834,55932,18891
+6489,43638,45690
+41688,72066,26793
+45141,97747,86392
+94394,98948,85688
+91045,32096,86082
+9328,15006,17226
+19529,46284,81027
+70329,77357,8940
+40934,45634,71059
+10019,28426,79472
+20760,37946,73629
+15793,29911,51492
+34815,93931,50502
+25336,11147,32337
+52604,979,93416
+28516,65917,5404
+44786,39714,35473
+4086,33605,19441
+26185,17856,38430
+84678,51535,94113
+29923,39264,78595
+22418,94177,6417
+45326,90095,81198
+42584,95486,3839
+45236,44781,2879
+53890,40048,92404
+89243,65173,62101
+14236,91066,88249
+13380,63280,59585
+7332,18637,51394
+78225,34412,60491
+16628,2872,71069
+41006,7382,6255
+32607,86902,96081
+79272,73989,54228
+22767,83329,41713
+69303,96305,90372
+9569,48728,92445
+5911,75389,49811
+17375,67163,87817
+12316,612,98901
+1137,6191,28648
+6340,87922,11869
+81801,83624,66030
+38782,31017,21453
+62056,63342,43054
+44682,58306,14577
+24457,94706,76516
+98760,64311,68856
+87455,74213,59007
+25025,1450,24510
+79448,71854,67222
+38640,71638,68542
+63636,66478,28731
+11994,15613,48746
+88867,58757,58179
+14542,64955,13898
+43981,33498,5605
+75322,74381,11348
+90189,89756,93268
+29926,34350,2846
+28717,78552,97776
+50942,89645,71774
+55708,84007,13523
+37404,95138,48525
+34079,22717,91129
+24972,63868,59959
+86926,67704,10774
+54729,61840,55260
+17054,82257,5181
+28163,97956,62558
+94109,79149,89272
+21408,83445,10097
+91134,61171,80356
+81127,22202,64809
+85130,33917,3757
+34670,7983,64069
+58625,41648,12929
+70570,93104,92336
+23441,5509,90676
+44282,45740,48981
+70275,40323,7696
+14781,86881,40331
+72278,57278,92284
+95963,1076,61754
+44900,5011,16449
+5282,1602,55751
+30452,26532,35718
+7661,78556,27141
+73834,77736,59736
+88700,2011,6453
+48561,55083,57822
+54440,5893,34590
+48508,40869,82832
+87882,44051,33327
+36970,11492,15385
+62863,74240,10982
+77097,88468,96100
+98888,57086,14459
+86925,99122,35704
+59223,75984,98501
+58446,42097,71716
+46865,40136,49620
+2061,67310,7552
+36175,25918,27602
+10639,25547,69393
+30691,10546,97981
+12079,77419,93060
+55968,18229,16447
+77398,65646,4335
+36619,88171,19077
+26265,44719,29647
+75720,88071,58761
+69700,34627,41840
+93651,81214,97663
+98892,14746,52784
+89660,81598,36153
+21614,54781,50259
+77772,79324,96386
+68595,9231,87237
+37037,65684,73926
+19637,58241,92390
+34092,40843,18711
+965,22712,50817
+22920,31381,52583
+92012,16989,14718
+72002,61421,69680
+89407,83529,82019
+66351,21364,52693
+49326,12277,63646
+31126,25436,38042
+39670,39776,25055
+98591,78831,96802
+47758,3880,32142
+8587,6391,53365
+94084,55833,83432
+29346,15777,17664
+91747,41393,12892
+60429,1892,82157
+13078,32953,29572
+25117,4267,22218
+10549,59397,3730
+32033,58944,52768
+73653,8685,43181
+68821,31973,91553
+82590,41044,5857
+60578,79719,48112
+22466,66298,47670
+9744,39071,229
+59200,69570,58290
+14045,52001,84896
+19049,54345,41466
+57202,78770,6847
+63781,11598,25478
+59127,45178,38113
+61920,96409,41407
+8115,58883,50348
+39814,60803,66543
+68881,66650,48783
+25628,66580,97539
+39219,22442,32731
+59237,84780,61064
+9846,17168,23307
+73652,32255,23789
+99086,86449,14697
+16942,54330,99280
+68857,91100,44775
+3920,74123,55428
+36368,59249,42373
+54935,34211,95636
+58635,80543,44182
+38154,95557,72731
+30849,8167,43513
+25615,92009,89436
+56242,94113,44998
+71227,28449,68287
+7898,14189,23741
+4542,50289,21091
+93643,43253,93806
+44188,38751,23183
+18485,73308,86953
+52957,2996,37111
+9308,73796,16919
+16804,77754,51792
+33090,33403,39248
+55395,25001,81985
+44950,88780,15769
+68888,20231,75433
+4096,69212,88913
+81324,82116,84982
+3503,72472,98510
+10755,70132,58332
+96497,29219,63418
+47528,54442,79338
+80945,54875,81174
+92835,1133,43724
+18401,49432,51001
+62514,98928,89268
+13963,62436,16996
+63627,71917,39510
+21566,37683,73559
+80713,25915,55760
+2127,63374,88496
+79021,14341,39621
+7482,34898,78999
+64553,51421,18568
+32591,5995,33447
+39847,22065,14524
+8727,58666,36133
+71176,12421,32555
+58532,54153,56301
+57952,64692,39436
+9888,10576,40281
+38930,20271,29382
+21867,76075,82765
+83728,50129,46486
+91539,68296,21028
+30639,50224,78124
+14392,38839,52043
+83931,49538,24146
+87772,1957,48643
+96845,68275,93010
+98359,90977,62612
+31729,64056,47606
+28892,22442,87396
+95792,24817,55072
+52819,86896,20133
+59662,40872,3765
+31108,36847,52855
+58181,65274,83766
+31579,68492,5844
+58920,64469,87347
+2505,8347,18004
+16065,37267,20844
+54468,88039,39379
+67827,44161,46058
+66169,78555,36995
+58362,40673,48817
+41359,64490,65298
+87151,49314,34210
+71705,66323,43556
+97083,645,53665
+99197,44806,21770
+8606,56480,44219
+45803,80681,8138
+49409,90923,82652
+9094,88403,32454
+6014,24409,767
+42770,82026,40871
+7725,95942,80389
+27033,70846,55181
+7369,19408,11142
+18153,63996,36790
+22891,79879,46120
+16993,88545,953
+75490,31690,28529
+82468,3761,55313
+56187,42231,8689
+47216,40074,29875
+28571,95564,47329
+83487,52158,73819
+80217,15696,87263
+72388,57813,73050
+82555,99352,3985
+65633,29775,44395
+6756,42212,53874
+82530,21140,44967
+28094,61487,13669
+22928,71606,85028
+41123,97906,86217
+29727,25058,45186
+23385,34411,17184
+84747,96151,88214
+45913,39765,35783
+37883,21529,46871
+58326,99248,44480
+37806,40747,17716
+79126,21928,93887
+92990,2333,2491
+64513,93184,24192
+51970,51028,891
+75997,50068,96888
+91037,20496,75811
+47850,58375,21240
+17590,59405,26699
+4246,73554,213
+56566,6619,12923
+67163,61855,66630
+36040,54606,75263
+9019,38971,71015
+10521,92040,64837
+83284,34993,40618
+18480,74332,35357
+7517,69466,1738
+64605,4114,58449
+41662,48733,79151
+17693,37032,92725
+10996,83832,55438
+8921,11995,12000
+9628,36298,26309
+39109,31219,80806
+71408,10801,91002
+77553,22530,3267
+72015,12645,45888
+35119,88801,27862
+65612,14034,13651
+49588,13402,12715
+98626,28101,21323
+61660,12235,40001
+70701,83952,18956
+24940,81026,10863
+41940,2588,85486
+88250,52156,98452
+23300,19893,79055
+75678,36270,22491
+49375,48851,96521
+72519,49218,34618
+90674,76252,86018
+35511,99279,98889
+36515,96246,65809
+26976,41671,37763
+27688,87187,34810
+54383,52986,86324
+67349,27161,55653
+43142,37079,86870
+35314,37653,69724
+54866,35515,32215
+56049,2368,38278
+9283,87208,28439
+9434,756,51678
+45377,95284,44741
+81721,35245,9060
+27994,47725,62471
+67716,50803,59505
+80721,73878,69402
+17059,95252,32134
+26885,64536,48899
+37076,13813,3319
+6356,36066,5248
+58881,59863,11846
+91581,25143,63580
+28221,60456,15760
+94255,60772,39187
+78456,4293,88944
+78668,3155,78445
+46257,46816,12134
+77249,22441,12604
+28450,75659,40906
+89826,2872,12298
+23493,86376,47903
+8149,23379,72414
+96186,99694,98344
+55941,18689,43378
+97422,92359,12235
+70294,1926,75466
+85762,13262,49616
+69449,37468,55437
+51723,67759,51025
+99624,4836,66966
+36160,71095,92398
+47696,68023,11351
+47526,75581,19444
+14691,14627,1662
+41869,99116,51551
+22062,3723,84950
+76660,83093,91107
+2091,1761,11383
+75211,35293,37763
+44502,45935,97695
+96345,10164,52818
+49432,88933,89703
+15486,30286,90631
+31784,7717,84242
+27500,80196,89088
+54688,59428,75479
+29848,9634,74098
+23998,39309,77669
+86083,4498,37607
+69610,2243,76665
+57619,89940,17004
+89304,98297,36599
+74479,33202,40706
+57997,70431,15738
+67449,7192,81067
+89040,59777,37390
+25893,59454,52747
+25743,46851,83723
+53650,78665,15886
+77194,32677,79331
+44539,27446,76853
+62060,40399,99350
+21980,97261,41018
+6285,95133,10679
+12597,98822,78679
+40627,61252,24113
+51321,13653,3454
+43635,42113,32040
+40357,67093,8191
+63114,90763,88963
+89102,80780,48590
+70017,11786,71837
+33613,27947,96321
+8604,91985,87318
+99,898,34499
+56151,81092,93105
+99661,45747,51122
+58419,20539,78994
+31778,58223,44797
+48069,48593,7788
+15044,25346,27216
+70822,91443,15200
+84234,65696,29563
+90569,14724,96550
+89592,87553,35408
+90073,1536,3691
+82170,54050,26441
+20167,15959,71404
+818,31336,89786
+87212,2337,53896
+19717,33644,35067
+17312,77795,5957
+64653,22077,48686
+52273,83975,35626
+23420,60981,11458
+70900,22394,26095
+3723,30175,70506
+85974,46057,68729
+84861,71454,95121
+37864,70373,61973
+23378,54671,61309
+42850,21566,43550
+53417,32895,79637
+29957,67988,22283
+96201,95040,97614
+28663,77854,27011
+45408,61159,31688
+14235,72247,32972
+33505,582,67761
+3246,60431,76568
+13022,66368,6973
+72878,79502,64879
+88383,95058,28215
+42189,62459,30426
+23763,99544,41265
+96602,14142,56746
+27926,98539,26156
+76140,56811,34309
+66150,87197,71657
+87471,16448,40508
+63512,74164,96936
+40740,89281,27311
+30560,50937,51390
+41277,14669,25107
+76263,71927,23224
+86889,8369,71511
+14846,64214,57448
+98161,92606,80711
+28335,7828,62931
+76516,69951,26681
+8890,62038,36506
+36780,15209,96255
+7248,42352,22670
+69670,48212,31242
+13819,74970,71083
+1880,32556,74781
+90615,94017,60801
+55018,56852,77951
+36754,59029,34895
+16255,22921,76911
+80208,91132,66946
+56471,57667,74421
+23446,4451,99141
+74719,90108,45967
+60351,84420,90888
+8421,2736,67547
+68028,76791,5985
+96799,76026,43769
+91040,53784,9326
+31680,83289,96042
+86405,82503,85610
+45163,89515,9641
+66372,80595,2521
+94542,19798,16330
+1047,81896,60946
+81774,35568,17975
+72868,1722,13494
+41699,54731,29055
+88960,17571,17416
+31335,87580,94947
+51439,68291,43861
+5105,91720,53649
+84248,48986,87133
+44870,13924,89952
+40080,85258,16584
+68792,30057,81321
+9441,91707,7428
+67871,37429,90209
+64232,41519,79162
+68652,22192,16050
+282,24211,96673
+8225,75704,43306
+4290,13971,4328
+84473,44108,98541
+21770,51464,43849
+42128,37754,31836
+76698,48651,64268
+29452,7687,10341
+83255,97245,65473
+96172,23408,86398
+82611,96932,64919
+66024,40055,63608
+79525,43630,57302
+45630,96681,80578
+13752,99531,91644
+61636,77811,51502
+39100,46129,74204
+65523,8672,16579
+85662,75188,83403
+4598,69502,66371
+16663,32937,62082
+60670,59611,75486
+42061,8597,63708
+26638,57050,96034
+8972,49391,75529
+38121,17798,63899
+77682,48931,70059
+59745,23624,51736
+42374,95015,46877
+28864,2552,51444
+84001,99004,19349
+79452,20190,76969
+13076,11197,65168
+91306,9957,78857
+66604,60608,53441
+23773,69910,13001
+20128,57984,77154
+54878,33168,70739
+84807,85980,28933
+27,64268,26062
+25438,93874,22201
+73402,46183,12486
+54280,93072,48401
+4105,8265,20955
+88402,72461,55708
+32093,72262,28652
+48893,24751,1177
+36106,6713,6929
+36617,54012,33678
+83790,10256,16025
+66563,52958,62244
+40447,57522,41897
+16151,6882,54872
+49268,49141,34037
+69715,90122,50228
+45463,93326,97242
+75971,26956,16409
+94406,4885,51881
+41681,52697,94649
+7449,42150,91100
+95844,21563,53753
+73899,2016,77414
+1946,9761,45947
+95259,34465,62190
+10425,1828,91428
+54793,74418,28045
+81603,23691,18581
+18750,26433,6970
+4541,68223,57984
+17618,51104,85145
+937,67995,61822
+50315,65797,82253
+80543,21224,53150
+65029,44945,66060
+78998,94739,50264
+27217,64542,45859
+67377,62546,9611
+1530,1615,38971
+39741,39210,56823
+67417,64836,44983
+72587,10070,67861
+65764,1367,12465
+89298,50262,49841
+49007,19351,19070
+24241,44063,41261
+11271,49383,66774
+21216,13400,85080
+96786,82917,84513
+28173,44223,14677
+37242,21088,11763
+43158,87344,4980
+49228,16042,16546
+97412,37699,92413
+21830,89975,63108
+74180,44261,27903
+46886,73577,9687
+63759,91596,47780
+38976,31958,33232
+62688,50210,54479
+91837,23790,83738
+98030,21979,87331
+36388,74606,51076
+43947,57563,7520
+63948,17945,9237
+62385,66600,68102
+41650,23782,20569
+65185,40690,15808
+6587,49282,39346
+47857,57804,30122
+54708,85155,95197
+5857,45705,48786
+24650,55659,6434
+2033,91662,44552
+50678,71598,87334
+46146,79533,33996
+11391,91581,94071
+2538,4434,37712
+46438,19999,93567
+81089,56882,70032
+61058,39065,41790
+98585,54099,57616
+43273,99478,41285
+65336,58080,88180
+75420,72424,80179
+20062,7169,55989
+84275,16750,75368
+69959,1918,73193
+26779,66191,93915
+50352,89202,84564
+6543,41419,704
+61719,86564,8614
+56268,71810,71075
+76779,61823,15846
+92315,61020,37657
+74749,25030,52694
+6206,78650,13165
+73463,14860,85007
+19706,26156,12202
+37897,32242,69445
+47592,33115,64516
+26674,55932,73055
+28370,76882,61426
+22764,13902,27200
+33466,86634,31484
+2718,34655,3121
+6023,24865,53410
+93323,10190,57772
+32330,15594,13477
+49312,17228,41281
+21877,91050,59462
+48846,11887,72822
+37447,31409,18610
+95783,85748,69990
+94373,19405,11454
+80730,70669,10625
+24172,43154,59979
+21703,56053,20922
+20222,66595,85311
+68481,70322,48921
+9065,2236,41537
+9377,38599,7372
+21895,50927,84329
+51609,27515,95361
+38811,26946,28294
+75106,85688,20791
+92937,60882,11234
+47410,41463,85132
+26584,72789,92658
+69394,89707,32485
+95020,43157,2651
+45731,76679,24315
+46864,77174,69760
+15505,97575,86295
+92440,6574,38063
+44080,75270,87838
+32117,36177,22643
+99785,34285,25000
+13958,27376,44298
+12375,88026,97319
+86146,46005,67719
+37649,977,2723
+76297,95000,43700
+78848,62019,87317
+18838,31722,80718
+60770,54844,69309
+17340,58731,16307
+38583,44904,38383
\ No newline at end of file