AIO commit

Sorry for the late commit, forgot to commit and push it on Saturday 7th.
Thank god there are moodle reminders
This commit is contained in:
MarcUs7i 2024-12-31 23:47:08 +01:00
parent 3083dbce7f
commit 2e6b418fef
24 changed files with 5790 additions and 1 deletions

View file

@ -0,0 +1,22 @@
namespace AdventOfCode.Test;
public sealed class Day1Test
{
private string _input = "3 4\n4 3\n2 5\n1 3\n3 9\n3 3";
[Fact]
public void Part1()
{
var day1 = new Day1();
var result = day1.Part1(_input);
Assert.Equal(11, result);
}
[Fact]
public void Part2()
{
var day1 = new Day1();
var result = day1.Part2(_input);
Assert.Equal(31, result);
}
}

View file

@ -0,0 +1,22 @@
namespace AdventOfCode.Test;
public sealed class Day2Test
{
private string _input = "7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9";
[Fact]
public void Part1()
{
var day2 = new Day2();
var result = day2.Part1(_input);
Assert.Equal(2, result);
}
[Fact]
public void Part2()
{
var day2 = new Day2();
var result = day2.Part2(_input);
Assert.Equal(4, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day3Test
{
[Fact]
public void Part1()
{
const string Input = "xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))";
const int Expected = 161;
var day3 = new Day3();
var result = day3.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const string Input = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))";
const int Expected = 48;
var day3 = new Day3();
var result = day3.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day4Test
{
[Fact]
public void Part1()
{
const string Input = "MMMSXXMASM\nMSAMXMSMSA\nAMXSXMAAMM\nMSAMASMSMX\nXMASAMXAMM\nXXAMMXXAMA\nSMSMSASXSS\nSAXAMASAAA\nMAMMMXMMMM\nMXMXAXMASX";
const int Expected = 18;
var day4 = new Day4();
var result = day4.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const string Input = ".M.S......\n..A..MSMS.\n.M.S.MAA..\n..A.ASMSM.\n.M.S.M....\n..........\nS.S.S.S.S.\n.A.A.A.A..\nM.M.M.M.M.\n..........";
const int Expected = 9;
var day4 = new Day4();
var result = day4.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,29 @@
namespace AdventOfCode.Test;
public sealed class Day5Test
{
private string input
= "47|53\r\n97|13\r\n97|61\r\n97|47\r\n75|29\r\n61|13\r\n75|53\r\n29|13\r\n97|29\r\n53|29\r\n61|53\r\n97|53\r\n61|29\r\n47|13\r\n75|47\r\n97|75\r\n47|61\r\n75|61\r\n47|29\r\n75|13\r\n53|13\r\n\r\n75,47,61,53,29\r\n97,61,53,29,13\r\n75,29,13\r\n75,97,47,61,53\r\n61,13,29\r\n97,13,75,29,47";
[Fact]
public void Part1()
{
const int Expected = 143;
var day5 = new Day5();
var result = day5.Part1(input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const int Expected = 123;
var day5 = new Day5();
var result = day5.Part2(input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,28 @@
namespace AdventOfCode.Test;
public sealed class Day6Test
{
private const string Input = "....#.....\r\n.........#\r\n..........\r\n..#.......\r\n.......#..\r\n..........\r\n.#..^.....\r\n........#.\r\n#.........\r\n......#...";
[Fact]
public void Part1()
{
const int Expected = 41;
var day = new Day6();
var result = day.Part1(Input);
Assert.Equal(Expected, result);
}
[Fact]
public void Part2()
{
const int Expected = 6;
var day = new Day6();
var result = day.Part2(Input);
Assert.Equal(Expected, result);
}
}

View file

@ -0,0 +1,24 @@
namespace AdventOfCode.Test;
public sealed class Day7Test
{
private string input = "190: 10 19\r\n3267: 81 40 27\r\n83: 17 5\r\n156: 15 6\r\n7290: 6 8 6 15\r\n161011: 16 10 13\r\n192: 17 8 14\r\n21037: 9 7 18 13\r\r\n292: 11 6 16 20";
[Fact]
public void TestPart1()
{
const int Expected = 3749;
var day = new Day7();
Assert.Equal(Expected, day.Part1(input));
}
[Fact]
public void TestPart2()
{
const int Expected = 11387;
var day = new Day7();
Assert.Equal(Expected, day.Part2(input));
}
}

View file

@ -0,0 +1,83 @@
namespace AdventOfCode;
public sealed class Day1 : IDay
{
public long Part1(string input)
{
var data = ParseInput(input);
var leftList = data[0];
var rightList = data[1];
Array.Sort(leftList);
Array.Sort(rightList);
int totalDistance = 0;
for (int i = 0; i < Math.Min(leftList.Length, rightList.Length); i++)
{
totalDistance += Math.Abs(leftList[i] - rightList[i]);
}
return totalDistance;
}
public long Part2(string input)
{
var data = ParseInput(input);
var leftList = data[0];
var rightList = data[1];
var uniqueNumbers = new FlexArrayInt();
var counts = new FlexArrayInt();
foreach (var num in rightList)
{
if (uniqueNumbers.Contains(num))
{
for (int i = 0; i < uniqueNumbers.Count; i++)
{
if (uniqueNumbers[i] == num)
{
counts[i] += 1;
break;
}
}
}
else
{
uniqueNumbers.Add(num);
counts.Add(1);
}
}
int similarityScore = 0;
foreach (var num in leftList)
{
for (int i = 0; i < uniqueNumbers.Count; i++)
{
if (uniqueNumbers[i] == num)
{
similarityScore += num * counts[i];
break;
}
}
}
return similarityScore;
}
private int[][] ParseInput(string input)
{
var lines = input.Split('\n', StringSplitOptions.RemoveEmptyEntries);
var leftList = new int[lines.Length];
var rightList = new int[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
var numbers = lines[i].Split(' ', StringSplitOptions.RemoveEmptyEntries);
leftList[i] = int.Parse(numbers[0]);
rightList[i] = int.Parse(numbers[1]);
}
return [leftList, rightList];
}
}

View file

@ -0,0 +1,126 @@
namespace AdventOfCode;
public sealed class Day2 : IDay
{
public long Part1(string input)
{
var data = ParseInput(input);
int safeCount = 0;
foreach (var levels in data)
{
if (IsSafe(levels))
{
safeCount++;
}
}
return safeCount;
}
public long Part2(string input)
{
var data = ParseInput(input);
int safeCount = 0;
foreach (var levels in data)
{
if (IsSafeWithDampener(levels))
{
safeCount++;
}
}
return safeCount;
}
private int[][] ParseInput(string input)
{
var lines = input.Split('\n');
var result = new int[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
var parts = lines[i].Split(' ');
var numbers = new int[parts.Length];
for (int j = 0; j < parts.Length; j++)
{
numbers[j] = int.Parse(parts[j]);
}
result[i] = numbers;
}
return result;
}
private bool IsSafe(int[] levels)
{
int[] diffs = new int[levels.Length - 1];
for (int i = 0; i < levels.Length - 1; i++)
{
diffs[i] = levels[i + 1] - levels[i];
}
bool increasing = true;
for (int i = 0; i < diffs.Length; i++)
{
if (diffs[i] < 1 || diffs[i] > 3)
{
increasing = false;
break;
}
}
if (increasing)
{
return true;
}
bool decreasing = true;
for (int i = 0; i < diffs.Length; i++)
{
if (diffs[i] < -3 || diffs[i] > -1)
{
decreasing = false;
break;
}
}
if (decreasing)
{
return true;
}
return false;
}
private bool IsSafeWithDampener(int[] levels)
{
if (IsSafe(levels))
{
return true;
}
for (int i = 0; i < levels.Length; i++)
{
int[] tempLevels = new int[levels.Length - 1];
int index = 0;
for (int j = 0; j < levels.Length; j++)
{
if (j != i)
{
tempLevels[index++] = levels[j];
}
}
if (IsSafe(tempLevels))
{
return true;
}
}
return false;
}
}

View file

@ -0,0 +1,65 @@
using System.Text.RegularExpressions;
namespace AdventOfCode;
public sealed class Day3 : IDay
{
public long Part1(string input)
{
var data = ParseInput(input);
int total = 0;
for (int i = 0; i < data.Count; i += 2)
{
int x = data[i];
int y = data[i + 1];
total += x * y;
}
return total;
}
public long Part2(string input)
{
var tokens = Regex.Matches(input, @"do\(\)|don't\(\)|mul\(\d+,\d+\)");
bool enabled = true;
int total = 0;
foreach (Match token in tokens)
{
var instruction = token.Value;
if (instruction == "do()")
{
enabled = true;
}
else if (instruction == "don't()")
{
enabled = false;
}
else if (instruction.StartsWith("mul(") && enabled)
{
var numbers = Regex.Matches(instruction, @"\d+");
int x = int.Parse(numbers[0].Value);
int y = int.Parse(numbers[1].Value);
total += x * y;
}
}
return total;
}
private FlexArrayInt ParseInput(string input)
{
var matches = Regex.Matches(input, @"mul\((\d+),(\d+)\)");
var data = new FlexArrayInt();
foreach (Match match in matches)
{
data.Add(int.Parse(match.Groups[1].Value)); // x
data.Add(int.Parse(match.Groups[2].Value)); // y
}
return data;
}
}

View file

@ -0,0 +1,155 @@
namespace AdventOfCode;
public sealed class Day4 : IDay
{
public long Part1(string input)
{
var grid = ParseInput(input);
string word = "XMAS";
int wordLen = word.Length;
(int dx, int dy)[] directions =
[
(0, 1), // right
(1, 0), // down
(1, 1), // down-right
(1, -1), // down-left
(0, -1), // left
(-1, 0), // up
(-1, -1), // up-left
(-1, 1) // up-right
];
bool IsValid(int x, int y)
{
return x >= 0 && x < grid.Length && y >= 0 && y < grid[0].Length;
}
bool SearchFrom(int x, int y, int dx, int dy)
{
for (int i = 0; i < wordLen; i++)
{
int nx = x + i * dx;
int ny = y + i * dy;
if (!IsValid(nx, ny) || grid[nx][ny] != word[i])
{
return false;
}
}
return true;
}
int count = 0;
for (int i = 0; i < grid.Length; i++)
{
for (int j = 0; j < grid[0].Length; j++)
{
foreach (var (dx, dy) in directions)
{
if (SearchFrom(i, j, dx, dy))
{
count++;
}
}
}
}
return count;
}
public long Part2(string input)
{
var grid = ParseInput(input);
int count = 0;
int rows = grid.Length;
int cols = grid[0].Length;
for (int x = 0; x < rows; x++)
{
for (int y = 0; y < cols; y++)
{
if (grid[x][y] == 'A')
{
count += CountXMasAt(grid, x, y);
}
}
}
return count / 2;
}
private char[][] ParseInput(string input)
{
var lines = input.Split('\n');
var result = new char[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
var line = lines[i];
int start = 0;
int end = line.Length - 1;
// Trim start
while (start <= end && char.IsWhiteSpace(line[start]))
{
start++;
}
// Trim end
while (end >= start && char.IsWhiteSpace(line[end]))
{
end--;
}
var trimmedLine = new char[end - start + 1];
for (int j = start, k = 0; j <= end; j++, k++)
{
trimmedLine[k] = line[j];
}
result[i] = trimmedLine;
}
return result;
}
private int CountXMasAt(char[][] grid, int x, int y)
{
int count = 0;
int rows = grid.Length;
int cols = grid[0].Length;
(int dx, int dy)[][] diagonals = new[]
{
new[] { (-1, -1), (1, 1) }, // Top-left to bottom-right
new[] { (-1, 1), (1, -1) } // Top-right to bottom-left
};
foreach (var diag in diagonals)
{
var positions = new (int, int)[diag.Length];
for (int i = 0; i < diag.Length; i++)
{
positions[i] = (x + diag[i].dx, y + diag[i].dy);
}
// Check if all positions are valid
if (positions.All(pos => pos.Item1 >= 0 && pos.Item1 < rows &&
pos.Item2 >= 0 && pos.Item2 < cols))
{
char c1 = grid[positions[0].Item1][positions[0].Item2];
char c2 = grid[positions[1].Item1][positions[1].Item2];
// Check for 'M-A-S' or 'S-A-M'
if ((c1 == 'M' && c2 == 'S') || (c1 == 'S' && c2 == 'M'))
{
count++;
}
}
}
return count;
}
}

View file

@ -0,0 +1,167 @@
namespace AdventOfCode;
public sealed class Day5 : IDay
{
public long Part1(string input)
{
ParseInput(input, out var rulesX, out var rulesY, out var updates);
int total = 0;
foreach (var update in updates)
{
if (IsCorrectOrder(rulesX, rulesY, update))
{
int middleIndex = update.Count / 2;
total += update[middleIndex];
}
}
return total;
}
public long Part2(string input)
{
ParseInput(input, out var rulesX, out var rulesY, out var updates);
int total = 0;
foreach (var update in updates)
{
if (!IsCorrectOrder(rulesX, rulesY, update))
{
var correctOrder = OrderUpdate(rulesX, rulesY, update);
int middleIndex = correctOrder.Count / 2;
total += correctOrder[middleIndex];
}
}
return total;
}
private void ParseInput(string input, out FlexArrayInt rulesX, out FlexArrayInt rulesY, out FlexArrayInt[] updates)
{
var sections = input.Split($"{Environment.NewLine}{Environment.NewLine}");
var rulesSection = sections[0].Split('\n');
var updatesSection = sections[1].Split('\n');
rulesX = new FlexArrayInt();
rulesY = new FlexArrayInt();
// Parse rules
foreach (var line in rulesSection)
{
var parts = line.Split('|');
rulesX.Add(int.Parse(parts[0]));
rulesY.Add(int.Parse(parts[1]));
}
// Parse updates
updates = new FlexArrayInt[updatesSection.Length];
for (int i = 0; i < updatesSection.Length; i++)
{
var parts = updatesSection[i].Split(',');
var pages = new int[parts.Length];
for (int j = 0; j < parts.Length; j++)
{
pages[j] = int.Parse(parts[j]);
}
var updateArray = new FlexArrayInt();
foreach (var page in pages)
{
updateArray.Add(page);
}
updates[i] = updateArray;
}
}
private bool IsCorrectOrder(FlexArrayInt rulesX, FlexArrayInt rulesY, FlexArrayInt update)
{
var position = new int[10000];
for (int i = 0; i < position.Length; i++)
{
position[i] = -1;
}
for (int i = 0; i < update.Count; i++)
{
position[update[i]] = i;
}
for (int i = 0; i < rulesX.Count; i++)
{
int x = rulesX[i];
int y = rulesY[i];
if (position[x] != -1 && position[y] != -1)
{
if (position[x] > position[y])
{
return false;
}
}
}
return true;
}
private FlexArrayInt OrderUpdate(FlexArrayInt rulesX, FlexArrayInt rulesY, FlexArrayInt update)
{
var pagesSet = new HashSet<int>();
for (int i = 0; i < update.Count; i++)
{
pagesSet.Add(update[i]);
}
var graph = new Dictionary<int, FlexArrayInt>();
var inDegree = new Dictionary<int, int>();
foreach (var page in pagesSet)
{
graph[page] = new FlexArrayInt();
inDegree[page] = 0;
}
for (int i = 0; i < rulesX.Count; i++)
{
int x = rulesX[i];
int y = rulesY[i];
if (pagesSet.Contains(x) && pagesSet.Contains(y))
{
graph[x].Add(y);
inDegree[y]++;
}
}
var queue = new Queue<int>();
foreach (var page in pagesSet)
{
if (inDegree[page] == 0)
{
queue.Enqueue(page);
}
}
var orderedPages = new FlexArrayInt();
while (queue.Count > 0)
{
int page = queue.Dequeue();
orderedPages.Add(page);
for (int i = 0; i < graph[page].Count; i++)
{
int neighbor = graph[page][i];
inDegree[neighbor]--;
if (inDegree[neighbor] == 0)
{
queue.Enqueue(neighbor);
}
}
}
if (orderedPages.Count != pagesSet.Count)
{
return new FlexArrayInt();
}
return orderedPages;
}
}

View file

@ -0,0 +1,198 @@
namespace AdventOfCode;
public sealed class Day6 : IDay
{
public long Part1(string input)
{
var mapData = ParseInput(input);
int height = mapData.GetLength(0);
int width = mapData.GetLength(1);
// '^', '>', 'v', '<'
int[] dx = { 0, 1, 0, -1 };
int[] dy = { -1, 0, 1, 0 };
int guardX = -1, guardY = -1, direction = -1;
char[] directions = { '^', '>', 'v', '<' };
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
for (int d = 0; d < directions.Length; d++)
{
if (mapData[y, x] == directions[d])
{
guardX = x;
guardY = y;
direction = d;
break;
}
}
if (direction != -1) break;
}
if (direction != -1) break;
}
// Track with bool array
var visited = new bool[height, width];
visited[guardY, guardX] = true;
while (true)
{
int nextX = guardX + dx[direction];
int nextY = guardY + dy[direction];
if (nextX >= 0 && nextX < width && nextY >= 0 && nextY < height)
{
char cell = mapData[nextY, nextX];
if (cell == '#') // Turn right if wall
{
direction = (direction + 1) % 4;
}
else
{
guardX = nextX;
guardY = nextY;
visited[guardY, guardX] = true;
}
}
else
{
break; // Out of bounds
}
}
// Count visited cells
int visitedCount = 0;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
if (visited[y, x]) visitedCount++;
}
}
return visitedCount;
}
public long Part2(string input)
{
var mapData = ParseInput(input);
int height = mapData.GetLength(0);
int width = mapData.GetLength(1);
// '^', '>', 'v', '<'
int[] dx = { 0, 1, 0, -1 };
int[] dy = { -1, 0, 1, 0 };
char[] directions = { '^', '>', 'v', '<' };
// Find initial position and direction
int guardStartX = -1, guardStartY = -1, startDirection = -1;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
for (int d = 0; d < directions.Length; d++)
{
if (mapData[y, x] == directions[d])
{
guardStartX = x;
guardStartY = y;
startDirection = d;
break;
}
}
if (startDirection != -1) break;
}
if (startDirection != -1) break;
}
var possiblePositions = new List<(int, int)>();
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
if (mapData[y, x] == '.' && (x != guardStartX || y != guardStartY))
{
// Copy the map and add an obstruction at (x, y)
var newMap = new char[height, width];
Array.Copy(mapData, newMap, mapData.Length);
newMap[y, x] = '#';
int guardX = guardStartX;
int guardY = guardStartY;
int direction = startDirection;
var visitedStates = new HashSet<(int, int, int)>();
bool loopDetected = false;
int maxSteps = height * width * 4; // Arbitrary step limit
for (int step = 0; step < maxSteps; step++)
{
var state = (guardX, guardY, direction);
if (visitedStates.Contains(state))
{
loopDetected = true;
break;
}
visitedStates.Add(state);
int nextX = guardX + dx[direction];
int nextY = guardY + dy[direction];
if (nextX >= 0 && nextX < width && nextY >= 0 && nextY < height)
{
char cell = newMap[nextY, nextX];
if (cell == '#')
{
direction = (direction + 1) % 4; // Turn right
}
else
{
guardX = nextX;
guardY = nextY;
}
}
else
{
break; // Guard leaves the map
}
}
if (loopDetected)
{
possiblePositions.Add((x, y));
}
}
}
}
return possiblePositions.Count;
}
private char[,] ParseInput(string input)
{
var lines = input.Split($"{Environment.NewLine}", StringSplitOptions.RemoveEmptyEntries);
int height = lines.Length;
int width = lines[0].Length;
var map = new char[height, width];
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
map[y, x] = lines[y][x];
}
}
return map;
}
}

View file

@ -0,0 +1,165 @@
namespace AdventOfCode;
public sealed class Day7 : IDay
{
public long Part1(string input)
{
string[] lines = input.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
long totalCalibrationResult = 0;
foreach (var line in lines)
{
string[] parts = line.Split(':');
long testValue = long.Parse(TrimWhitespace(parts[0]));
long[] numbers = ParseNumbers(TrimWhitespace(parts[1]));
long n = numbers.Length;
long numOperators = n - 1;
if (TryMatchTestValue(numbers, testValue, numOperators))
{
totalCalibrationResult += (long)testValue;
}
}
return totalCalibrationResult;
}
public long Part2(string input)
{
string[] lines = input.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
long totalCalibrationResult = 0;
foreach (var line in lines)
{
string[] parts = line.Split(':');
long testValue = long.Parse(TrimWhitespace(parts[0]));
long[] numbers = ParseNumbers(TrimWhitespace(parts[1]));
long n = numbers.Length;
long numOperators = n - 1;
if (TryMatchTestValueWithConcatenation(numbers, testValue, numOperators))
{
totalCalibrationResult += testValue;
}
}
return totalCalibrationResult;
}
private bool TryMatchTestValueWithConcatenation(long[] numbers, long testValue, long numOperators)
{
long combinations = (long)Math.Pow(3, numOperators);
// test all combinations of '+', '*', '||'
for (int combination = 0; combination < combinations; combination++)
{
long result = numbers[0];
long opSelector = combination;
for (int i = 0; i < numOperators; i++)
{
char op = GetOperator(opSelector % 3);
opSelector /= 3;
if (op == '+')
{
result += numbers[i + 1];
}
else if (op == '*')
{
result *= numbers[i + 1];
}
else if (op == 'C') // '||' concatenation
{
result = long.Parse(result + numbers[i + 1].ToString());
}
}
if (result == testValue)
{
return true;
}
}
return false;
}
private char GetOperator(long opIndex)
{
return opIndex switch
{
0 => '+',
1 => '*',
2 => 'C',
_ => ' '
};
}
private long[] ParseNumbers(string numbersStr)
{
string[] numberStrings = numbersStr.Split(' ', StringSplitOptions.RemoveEmptyEntries);
long[] numbers = new long[numberStrings.Length];
for (int i = 0; i < numberStrings.Length; i++)
{
numbers[i] = long.Parse(numberStrings[i]);
}
return numbers;
}
private bool TryMatchTestValue(long[] numbers, long testValue, long numOperators)
{
long combinations = (long)Math.Pow(2, numOperators);
// Test all combinations of '+' and '*'
for (long combination = 0; combination < combinations; combination++)
{
long result = numbers[0];
long opSelector = combination;
for (int i = 0; i < numOperators; i++)
{
char op = (opSelector & 1) == 0 ? '+' : '*';
opSelector >>= 1;
if (op == '+')
{
result += numbers[i + 1];
}
else
{
result *= numbers[i + 1];
}
}
if (result == testValue)
{
return true;
}
}
return false;
}
private string TrimWhitespace(string input)
{
int start = 0;
int end = input.Length - 1;
while (start <= end && char.IsWhiteSpace(input[start]))
{
start++;
}
while (end >= start && char.IsWhiteSpace(input[end]))
{
end--;
}
var trimmedChars = new char[end - start + 1];
for (int i = start, j = 0; i <= end; i++, j++)
{
trimmedChars[j] = input[i];
}
return new string(trimmedChars);
}
}

View file

@ -0,0 +1,119 @@
namespace AdventOfCode;
public sealed class FlexArrayInt
{
public const int DefaultStartSize = 4;
private int[] _data;
public int Count { get; private set; }
public int Capacity => _data.Length;
public int this[int index]
{
get
{
if (index < 0 || index > Count)
{
return -1;
}
return _data[index];
}
set
{
if (index < 0 || index > Count)
{
return;
}
_data[index] = value;
}
}
public bool Remove(int value, bool firstOnly)
{
var removedAny = false;
for (var i = 0; i < Count; i++)
{
if (value != _data[i])
{
continue;
}
RemoveAt(i--);
removedAny = true;
if (firstOnly)
{
break;
}
}
return removedAny;
}
public bool RemoveAt(int index)
{
if (index < 0 || index >= Count)
{
return false;
}
if (index != Count - 1)
{
ShiftLeft(index);
}
Count--;
return true;
}
private void ShiftLeft(int fromIndex)
{
for (var i = fromIndex; i < Count; i++)
{
_data[i] = _data[i + 1];
}
}
public FlexArrayInt(int? initialSize = null)
{
var size = Math.Max(0, initialSize ?? DefaultStartSize);
_data = new int[size];
}
public void Add(int value)
{
if (Capacity == Count)
{
Grow();
}
_data[Count++] = value;
}
public bool Contains(int value)
{
if (Count == 0)
{
return false;
}
for (var i = 0; i < Count; i++)
{
if (_data[i] == value)
{
return true;
}
}
return false;
}
private void Grow()
{
var newData = new int[Capacity * 2];
Array.Copy(_data, newData, Count);
_data = newData;
}
}

View file

@ -0,0 +1,7 @@
namespace AdventOfCode;
public interface IDay
{
long Part1(string input);
long Part2(string input);
}

View file

@ -1,5 +1,35 @@
using System.Text;
using AdventOfCode;
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("*** AdventOfCode ***");
const string DataLocation = "../../../../../data"; // a very nice path
const string DataFileName = "/Day";
for (int i = 0; i < 7; i++)
{
Console.WriteLine($"Day {i+1}:");
var data = File.ReadAllText($"{DataLocation}{DataFileName}{i+1}");
var day = GetDay(i + 1);
Console.WriteLine("\tPart 1: " + day.Part1(data));
Console.WriteLine("\tPart 2: " + day.Part2(data));
Console.WriteLine();
}
// using interface, because I am too lazy to write a gigantic switch in the for loop
// I hope you are ok if it's done this way :)
IDay GetDay(int day)
{
return day switch
{
1 => new Day1(),
2 => new Day2(),
3 => new Day3(),
4 => new Day4(),
5 => new Day5(),
6 => new Day6(),
7 => new Day7(),
_ => new Day7()
};
}

1000
data/Day1 Normal file

File diff suppressed because it is too large Load diff

1000
data/Day2 Normal file

File diff suppressed because it is too large Load diff

6
data/Day3 Normal file
View file

@ -0,0 +1,6 @@
~-mul(858,892)?@#mul(380,985)what()[^what()%mul(340,11)~*}don't())/~-mul(849,387)%-why()when():how()>-,what()mul(605,504)what()~:]what();how()who()];mul(771,783)?^ who()}~?>mul(111,830))@ ~mul(329,797)%'why()why()mul(125,409)-*/where()()@&!why()mul(390,37)when(974,538)#/when()){/don't()/mul(20,990)}?%{(who()mul(627,567)(how()'<(#%how()mul(387,315){;%who()%#from()mul(868,680)}^$mul(862,19)mul(847,689)>((#@when()}mul(339,156)+/{}@{^%[why(231,704)mul(236,754)]'^where(978,690)mul(460,872)#'*mul(518,944)>mul(301,886))mul(477,933)^mul(685,909)who())]what(288,791)mul(170,434){ &where()~(@where()mul(191,104)mul(637,600)&select()why())~select()mul(534,617)?mul(763,508){from()when(22,266)+who() when()mul(204,352)when()mul(426,122)-<*where()'$ why()mul(192,980)[(#[!$-}mul(798,208)''[!where()what()select()mul(295,727))#)}($<?<mul(452,502)(don't()mul(737,492)>,$%where(539,126)what()when()select()'@mul(311,541),?don't()#select()!}!(}&?mul(100,142)),-}%mul(222,856)~$;>!from()where()mul(758,901)mul(757,796)mul(976,686);@'~+-{#who()mul(26,971);mul(404,362)^~who(417,106)what()#mul(186,691)from() %#+{/mul(67,433)-who()!-+!mul(184,469)*when()[&when(458,221)<$mul(163,556)^)]?,'}&+who()mul(514,239)~)(mul(143,441)'how(741,776)~who(766,575)when();>*^mul(281,143)+!>;+:mul(767,44)#<mul(490,849)> when()why()don't()how()from()[from()from(){mul(436,519)what() *who();@{,>do()%'mul(19,540)when()mul(643,539)~when(812,543)mul(527,639)-!mul(409,379)where()/(mul(168,491)#$>]mul(432,333)@%<when();{?what()^mul(819,413)'where(65,845)}-' ^@don't()?how()when()>><mul(591,832)where(600,755)]who()}do()!^-$what()from()select()'#mul(572,956)@#:what()from(),]mul(303,346) when()$$how()@%/#$mul(857,344)/what()where()mul(969,234)$!#when()>>&who()(mul(113,494)%where()why()when()mul(659,592)<why()!<}mul(429,162)[who()*>#(/'mul(72,670)when()^^mul(369,596)mul(631,168)-why()()[*}mul(330,968) $why()where()mul(230,139)don't()@)@<mul(849,413)-when(){*?]mul(821,9)mul(753,277)]{&when()%:mul(262,360)what()mul(65,276)don't()])who();where()$!,(-mul(952,221)+:/{where()where()mul(608,843)'>where())%}where()&,}mul(875,661)~don't()':why(){mul(793*:mul(399,702)!://select()@when()why()do()@mul(488,581{?{&<who(617,140)@how()mul(156,982)why()'&<where()*:{mul(452{-+$$*/mul(202,724)]#:#why()+??(#mul(607,2)@^mul(20,845)#{+#[/#~/mul(111,872)how()select()]<how())'how()mul(921,254)$:;/where() ~why()}?mul(558,122)@how()<<who()mul(992,319)what(734,450)[^mul(498,490)/mul(632,639)when()]from(){why()]$[who(664,268)mul(401,695]!>how()&select()!<'mul(912,311)why()! })@+}mul(128*mul(626,752)%mul(49,60)[,who()what()select()<what()mul(24,8)>)@@]*]why(937,788)from():mul(945,658)<]don't()where()how(515,644)@+'select()how()mul(369,665)/],<when(){( $how()mul(361,594)$select()&:{:$when()mul(52,806) #from()@when()where():>mul(263,185)where()^why()why()@what()mul(82,407)mul(464,537)[mul(871,333)^mul(560,227)-why()mul(966,203)$what()+where()#mul(101,21)}%how(),)^who()>,select()mul(667,565)('what(),%select()(@mul(500,204:''<~'why(477,559)<do()>)[where()mul(698,648);how(){&?what()^@[%mul(280,395)>~, mul-#/%:where()>where():mul(170,746)don't()}($:@mul(998,876)*~<[mul(121,366)-?#;how()>from() ::mul(804,883)^-[ (:mul(100,354who(544,766)+,]>!['/;mul(949,115)
[^!})from()&mul(617,518)*how()(:@who()what()/mul(591,163):what()?{'do()!/when()!$mul(394,797)]how(620,741)!:!mul&%mul(523,862) ~}where()why()}from()! @do()mul(270,205)from()[&^mul(577,474)?{*/why()*what()mul(656,30)where()+#,@mul(295,616)why()/mul(8,267))-^when()who(610,661)'mul(182,139)select()}select()!when();;mul(492,992)?how()~($who(716,562)%/mul(702,654))*>mul(126,386)[mul(351,400)select()%$[!}{+mul(98,266)mul(924,5)*'(^:[}!?mul(112,163)+!?where()mul(987,791)mul(943,488)how()mul(698,312)&:@from(442,439)~%~:mul(235,520)%mul(248,221&>/;select()what()) ~@from()mul(546,261)'mul(956,953why(458,937)when()~!where();mul(442,916)%;)&(mul(410,237)where()~why()[+?[mul(169,337)what()who()&what()mul(901<where()#&who(808,156)-mul(322,634)>/mul* don't()mul(999,662)*]&/'#<+<select(621,69)do()>,^}'mul(365,260){{?,,}from(520,861)where()what()mul(325,208): when()+>{!;mul(335,726)#',:>@?mul(48,443![mul(130,626)!{</#%*select()mul(806,140)'']'~mul(697,649)&,+??[%?how()mul(515,385)mul(878,769)^when()&what()]:$)*%don't()#){/mul(119,439)-[,+!'don't()^<what()~^-[(-%mul(791,824)+>^don't()*?-*[%>mul(934,995),how()@from()'<mul(907,832)?% who()(*[do()%:where()what()>#mul(433,843)why()<}$}how()-mul(754,464)when()why()mul(992,113);]/{%mul(87,293^]how()why()~&when()*#mul(589,979)@-&select()/%mul(218,248);mul(536,581)when()mul(215,212)/%when(66,857)@what()+mul(958,271) '%#who()&{mul(239,197)}what()$>{*'select()mul(365,443)>why()how()what()%mul(885,496how()when()}{@/ mul(589,42)^:;who()where()why() !how()(mul(574,947)*;where():&where()%]<{mul(572,4)$mul(232,716)when()<?>when()mul(928,697)^(where()mul(301,501)-mul(100,436)#~?mul(708,770): @:@)!*mul(89,177)><where()]mul(699,985)(-)do()#who()mul(194,358)why():when()/why()where()mul(103,669)#mul(779,400)@when()~/;/({mul(760,763&-when()%]where()*#mul(781,829)*select()><@+ {when()+mul(926,998);>,)?,$)mul(813,382)}from(728,403)^mul(497,820)where()(?why(454,153)!select()}*!don't()what()from()}&}<?)([mul(379,305)!when(): don't() ~~why()@&%mul(953,224))![*)/mul(802,693):;mul(126,477)-when(409,550){mul(238,713)!/!why()-}+>?how()mul(432,895)$!+mul(743,149)$!why(704,998)when()mul(229,683)((when()from()#&{mul(217,869)^)?)?what() select()}mul(765,209)who():}%{mul(448,553)[:-,don't()what()<,}from()where())mul(543,719)from(415,153)why()!'?^~mul(666,540)mul(922,877)mul(416,636)+#;$select()'mul(971,485)from(964,539)where()^ *who()/mul(35,594)<:mul(207,585)~*}'<when()>[]#mul(815,776){?%&*@?mul(385,133)['!:who() )mul(439,846)&)mul(529;?>;#mul(677,906)^& ()mul(75])how())mul(481,206)who()why()$^ from();what()'why()do()(%^&)mul(277,454)>where()where()$-#select()+/don't()what()select()]mul(295,126)why();from()mul(203,301){#mul(572,420){%(-*mul(929,786)do()mul(107,813)mul(921,668)'^+++!:[;mul(587,921)mul(242,920)mul(933,463)why()mul(340,196)'--']-mul(623,675)select()what()mul(656,927)<$)from()where(473,933)]~mul(408,566)!>$mul(373,541)}%*^)mul(346,14)>&how()@^-(&;mul(993,735)select()*{mul(990,221)*from():[ mul(940,96)/how()^>#;select()/#?mul(624,249)>mul(160,974)]^mul(589,900)&$[?[<-!select()mul(512,717)^/&mul(226,478)* ';'+from()?@~mul(224,929)!when()^what()where()'@'>~mul(451,87)
when()%how()where()how()what() mul(59,36)how()where() )><when()[(mul(776,247)when()# &why())}?mul(331,460)]how()/why(382,926)&*mul(494,482)'*;~#/select()?who(828,76)mul(205,327)~:how(),^how()why()mul(466,546)+'~&mul(481,829?who()!{+who()from()^(%>mul(270,950)--mul(864,193)$!!from()[+when()do()?&]from(){?who()mul(576,443)}>*what()mul(60,617)]where(){*}what(16,936)*:mul(613,575) @$%%'mul(930,241)!~when()<+what()&{mul(189,41)don't()how()%who()how()mul(79,681){']{({ mul(615,354)~#&{mul(863,397)<?;how()mul(264,31>@?(mul(469,991)!mul(97,649)'%{where()/{+*}when()mul(429,913)[ >where()>](when(654,639)),mul(763,148):!~do()%+*',mul(646,831)~*$!?>mul(632 @?from()[mul(165,564)#mul(464,289)from(),mul(197,442)~[&mul(739,935)how()where()!],mul(583,831){mul(4,501)mul(912,584):select()(when()>&& &what()mul(836,498)where(987,400)*${mul(983,648)+~]don't()&,how()'^[*({mul(180,898)mul(982,907): select()($what()mul(294,259)do()where();>mul(130,154)mul(566,682)how()-:from()/ )^mul(50,250)~@select()(->mul(65,434)mul(865,288)+$don't()#+-<when()mul(348,972)#{^*<who()&,mul(545,238)select()mul(736,427)$from()mul(24,605)select():mul(183,229) do()-$where()$where()how()#[why(){mul(440,221)?when(171,776)$mul(930,461)?mul(118,801)how(162,609)where()'why()@ ;:$mul(538,213)>mul(875,123)@@>?mul(606,377);do();!where(){mul(267,543):]','# #*why()mul(31,575)#;who() *<$mul(797,419)'what()}when():what()/mul(627,73)'how(218,429)who()]*$,$from()mul(221,471)$ ;what()mul(38,106)?-&!~&from()mul(117,669):how()mul(422,348)(:/]mul(568,980)when(){~where(490,375)<(& mul'*)'where();##:}mul(34,144)mul(352,352) select()-when()/where(365,161)mul(571,634)mul(373,66)}how()don't()where()@>$$(!&mul(532,260))!mul(304,873)select(676,286)?#<,why(),<!do()/what()]?~^where(558,20)mul(744,233)^''mul(119[/%where()why()%who()mul(797,726)~*why()mul(743,436)?/-why()mul(399,351)mul(398,28))what()(when()/$what(169,128)>^~do()%@~where()mul(56&+select()>select()what()mul(670,288)< $:+<mul(706,866),)when()when()from()mul(391,781)~mul(142,120)>[$~what(){@!%mul(422,126)(who()?from()}*}mul(459,923)mul(38,243)^)!who()::#from()/mul(845,589)^/when()'#when()~,'select()mul(454,166)who()~>when()^when()?'@where()mul(237,855)~from()from()why()mul(233,606)]@mul(947,750)!@*}who()(@%mul(252,951)[from(995,363))}),when()who()+where()mul(368,442)>from()where()select()from()what()^?mul(190,689)mul(337#who()*when()/*mul(652,631);,*why()+select()>}where()%mul(839,296)>&%,@}$mul(723,530)who(685,511) %~where(782,449)mul(36,917);]]{mul@where()!&*%why()mul(191,759):why()what()$mul(900,773):$who() *{mul(426,740) why(396,306)/from()why()*%}'+do()@!'how()%^/mul(970,462)when()who()!-mul(535,35)}from(377,342)when()/(how()who()-}:mul-what()/how()?*^how()mul(217,447)/]?%!mul(495,690)}#<{?,do()+-why()<mul(613,900)<@when()@)from()mul(590,34)-why()mul(524,292)>mul(3,559)who()+what()mul(942,139)})when()who()<-]'what()what()mul(218,316)how()mul(669,389),<+mul(861,165)why(){^}[mul(594,386what()who(){mul(801,662)mul(852,2)-mul(458,479)//mul{don't()mul(826,480)>mul(954,968)$;mul(871,184)from()select()**<]!mul(503,290)#select()where()?do()mul(154%[&how()?mul(279,673)-[don't()$]why()-what(754,13)mul(841,495)where()}{mul<-'##!/usr/bin/perl@~mul?what()<^-@/>from()!mul(573,383)where()-{#mul(420,579)when(977,697)when() &@##from()+}mul(314,487)
who()+from()where()mul(878,982)]~mul(812,80)?select()don't()how()];mul(986,548)/how(311,658)/select()(don't()(select()select(533,328)<^+from()what()why()@mul(786,152)*<[ }},)mul(30,285)mul(721,12)#(-{what()mul(70,496)^when()-/how(420,87)select()what()]$mul(645,406);-~where()>do()~&^(,}$#$mul(993,357)?/select()}do()+from()~@mul(661,590))what()*!?]*!'mul(19,345)-why())select(){%(% don't():*#when()~select()mul(910,416)}mul(550,400)<from();/)$who()mul(107,198)*^;what()*mul(585,659)]}<*[mul(408,612)(how()+'[don't()select()mul(910,993)({[who(895,379)>when()]~mul(515,93)&where()mul(412,99);(;+mul(611,500%what()%,from()when()mul(822,769),-*(([$(mul(153,856)why(){mul(476,25)do()-mul?from()<<[why()&mul(859,60)what()]+ :how()what(434,726):^from()do()}*?}?mul(432,641)>%<why();where()mul(722,325)who()why()do()'$,>?!mul(93,484)++}?mulwho()#>who()select(): why()mul(889,212)>]?where()&mul(808,71)<*/'-+select()mul(523,619)+#where()mul(324,306)why()';why()}mul(337,315)~:what():^?-$from()mul(924,137)mul(444,59)why()[from()how()who()mul/how()>mul(304,707)'select() select()mul(224,915)mul(991,306)[>$! &how()>/mul(719,679)how()select()mul(65,620)from()#'~:]<mul(906,303)}what():how()&%^select():{mul(644,751),^,&,!*'@mul(323,720)why()>+-from()]mul(971,857)how()#[~~]?%mul(230,961)from()from())# } where()mul(330,14)>mul(411,981)}}<)mul(304,453)how()from()$who()mul(573,848)% ;:<mul(23,887)>from()(~select()!mul(542,790)}'#mul(530,502)%$(-#$mul(358,540)mul(10,361)when()where()<}&where()mul(429+!*$~)mul(446,812)%when()don't()>~>^what()select()why()from()where()mul(330,214) -[mul(731,164)/mul(776,235)mul(240,20)who()^what()']@!-who()%don't()(( )'!how()why();>mul(941,911)'?where()from()how()/mul(489,746(select(725,995)-from()?;when()%]%<mul(293,629){;what();(~!<mul(176,456)<~who(252,77)who()~{why()?]&mul(587,279){%?]from()<?mul(313,626)@[/how()+&don't()mul(298,798@!'&when()~(#[mul(827,523)from()$ where()who()%mul(54,803))*mulselect()%mul(500,731)mul(946,993&;{/;where()^where()mul(795,350)where(),~ @^how()-]mul(995,399)%who()do()where()mul(911,909$(?!$]]~what()mul(151,846)[select(636,807)mul(111,19)where(){^mul(730,317)who()^do()'~#]$/$@<>mul(555,315),how()#%!><from();mul(845,939)>?mul(664,596how()+'-who()from(51,408)mul(605,672)?!%from()) #}don't():}mul(579where()mul(243,699)mul(321,902)*!/mul(465,704)*when()[*how()mul-!mul(15,80)}#}mul(413,156)(;mul(71,288)/$;'don't(),how()+[;$who()%$when()mul(516,863)mul(268,600)(</from()~how()'<how()where()mul(715,920)&,mul(989,598)[~where()where()mul(635,110);from()*mul(843,35)&*}@[how(232,546)'-+ mul(979,532)[do()&mul(649,85)]how(832,401)-;mul(876,724)-[mul(432,417)!from()select()]mul(967,886'mul(561,191)#mul(660,865)-}~#mul(736$mul(623,276)from(93,634)^<&-+!@(how()mul(543,427)]#what()from()mul(247,751))from()where()+/^@!;?mul(919,365)where()]&!{-:~why()mul(220,330):]&mul(919,207)-&who()?*how()#%mul(759,323)!how()how()mul(695,755)[{mul(426,127)-{% /~mul '*&how()who()^(mul(797,201)'mul(509from()when()(@(<()don't() :&mul(852,261)<#^]from()mul(981,414)(</who()*do()(+where()*'why()what(229,53)+mul(954,398)mul(148,957)what()^&*mul(92,295)select(){mul(146,508) who()}[>mul(602,939)who())>)<&'!mul(323,967)?mul(673,398)):&#}>>{!mul(501,484)<;who(969,453)-who(624,921)-)<-mul(72{-//!mul(576,751)mul(318,331)mul(707,186)+how()mul(660#how()!+#?where()mul(547,453)
[what()?->+[mul(266,969)what()from()%^!how()?mul(236,335) )'<>,&!-where()mul(563-select()(mul(405,969)when()[%;why():$]mul(266,763)what()~#-<how()?mul(574,316))^;//}:when()}}mul(798,955)%?(%}*>{+don't()~+-mul(68,150)#{{?%:mul(422,966)select()mul(143,33);mul(917,142))]'>mul(23,457);'what()why()-where()}/>mul(66,911)&&':(>why()>mul(413,27)mul(772,64)mul(266,512)%$<what()who()*-)mul(169,905))where()do()~where(),how()^:what()mul(584,453{#&&:how():,how():%mul(937,5)mul(974+:when()where()~}+-<mul(356,901)~?]when()select()mul(933,555)&'-mul(728,399){&>*[why()<mul(862,418)?>:where(),@%^',mul(750,295)*]:<mul(491,8)#^&mul(801,442)where()where()@/how()+where(17,463)(select()mul(460,732)*what()}/-})>mul(17,60)!!}*from(975,930)mul(763,134)mul(463,381)when()(select()where()+{?what()mul(755,843)!why()+>mul(24,584){mul(105,734)$why()@where()!+what()%what()mul(5,111)#^;?{^/?^~mul(24@>when()what()where()#from(284,9)when(437,59)mul(978,337))+:(select()mul(996,373)(what(188,513)@ ]from()}mul(370,765)~$mul(490,904))]/%who()why()/mul(123,978how()why()[who()~%how(180,982)<mul(251,677)!%(>@:mul(343,157)![/*^mul(157,976)who()from() select()]+?+do();)&)<from()!/select()mul(143,894)]<*,?mul(900,759)]:%@:mul(496,2)*don't())-$# ?!>mul(734,420)$%(select()>'mul(143]mul(4,351)mul(279,828)'}^mul(108,132) #how()why()}mul(573,602)}@mul(747,126)where()'@mul(247>why())when()+::^&from()mul(843,212)^mul(612,743)[mul(204,899)$mul(174,265)%]mul(864,804)-from()how()%%mul(674,431)^^#[(@:&*mul(619,935)select()//~^mul(70,941)why()select(405,825)why()who()@mul(112,658)'+(@!$who(){select()do()from()from()@how(846,925)mul(417,888)~{: who()&-;mul(285,186)-+what(){/+-mul(24,944''mul(935,370)why()?~ +mul(468,38)'why()(/mul(704,512)%mul(946,591,<);from()select(290,495)*{:<do(),)/mul(522,493)(^mul(182,31)/mul(330,74);'%:mul(793,487)-;where()who(){where(590,54)(mulwhen()@ :]!mul(812,795)(:mul(468,59-(how())where()',;mul(263,506);^why()mul(159,826)(,: /$mul(179,478)[,(who()>['%mul(554,965)<why(920,323)mul(3,344)do()]why()mul(353,389)' )+)%from()do()select()#>(~mul(308,534)mul(6,373)^how()@%&how()~mul(669,386)when() 'mul(33,652)mul(950,268)::mul(98,181)]^how()'!mul(982,613)how()&where()]what()how()do()[from()#[? mul(929,452)<$$<who();^]don't()&what()-]}<&from(),~mul(721,96)$}^[what(272,30)&who()mul(107,629)why()why()where()-how()/}from()+mul(718,337) *mul(49,736)why()&/'where(888,569)#&where()]+mul(728,703)!'> mul(506,408)-mul(670,674)how()mul(645,104)do()(>[%from()@'who()&%mul(45,884)mul(895,714)mul(871,6)},?&;!select()#where(779,295)^mul(113,370)why())%[select()[,^' mul(976,960)][%mul(828,993){}}mul(135,443)>what()mul(344,20)>where()/) :@mul(564,715){([,]'mul(675,478)#*@who()>]$*+mul(94,992}<mul(565,578)/mul(85,827)mul(565%do()/+{[mul(956,611)what()mul(807,414)]what()how(521,834)]where()}>from()mul(288,445)mul(72,57)*/})how()[how()!mul(543**%who():what()mul(345,778){mul(462,244)from()[@*who(),+mul(591,870)#select()%mul(779,654)$+%%@ mul(920,934)?-select()-}mul(247,709)@$why()mul(179,824)(when(989,252)?mul(422,816)$[from()#who()<mul(672,845)mul(118,135)
*what()}[*how()?why()mul(386,104)[from()];mul(208,918))){(+<how(),:how()mul(694,384)@!-*{mul(69,248)?',what(), ^<;mul(902,984)*mul(369,924)^?^mul(594,537)>@,when(),mul(922,47)@mulwhy()-mul(890,397)-^/+'select()[&!who()mul(547,6)-]>:^;mul(870,938),~?[%mul(8,689!>*@!]mul(311,244)->how()$when()'}mul(213,766)$:!+ mul(620,644)%where()mul(430,127)%{[mul(682,585)mul(245,26)don't()mul(510,688)where()]-mul(844,443)/@+who()?who()when()mul(453,182)mul(928,131)<select()who()(]mul(422,986)[&&who()[how()$mul(54,860)!]{;mul(549,103)<%;mul(807,173)/mul(513,515)@mul(852,657)'#when(293,457)$&+why()mul(694,888)*why()mul(912,542)$$!:$mul(776,404^$$}&(mul(965,836)-what()*:]mul(97,471)/*~]what(){[what()mul(241,843)where()[^mul(639,208'}(- who()how()mul(869,533)how()who()what()select()%don't() where()(why(811,325)!<where()^~;mul(955,806)][)])+,% mul(207,798):&who(),<where() how()mul(857,424::,]mul(250,416)select()'{mul(815,806)[)/@mul(285,41)$mul(901,755)from()!)?why()){!mul(78>?&'{[+@?,mul(55,18)mul(795,739):}what())@$]'mul(377,34)&,~*why()<do()<mul(795,39)where()$%+?>/@who()mul(467,127))&how(28,925)mul(955,519)}where(830,382)$when()[-why()/+mul(310,139)mul(217,931)!mul(574,122)!mul(227,82)where()mul(940,851) {mul(545,758)<select()?[mul(720,337)mul(52,940)~how()from(855,795)*mul(664,962)>:from()%~/mul(937,897)mul(665,919)^&/ &what()mul(23,37),select()%*mul(98,952);mul(171,967)who()$+]when()%$mul(426,870)<<;;why()[do()@mul(28,286)-what()([+select()why()do()<^+what()^?~-mul(246,992)/mul(938,936)'$>when()mul(18,736)%?how()-what()from() <do()mul(994,498);<,how(800,873)[%/&mul(260,162)why()]when())(what()}#don't() mul(99,24)(*!@]]mul(490,150)~mul(47,794)$#}where()(who(){what():mul(369,830)mul(24,75)where():(,@)]$~mul(509,783)mul(914,160)+mul(619,799)&@~how()from()mul(445,64)*>when()select()mul(37,387)}<[}?+how()#&?mul(779,369)select()mul(750,510)%[,'from()>who()mul(13,97)what(547,477)why(859,962)?,where()mul(806,879)mul(577,179)#from()+>where(705,292)what(712,121))when(227,970)*mul(942,336)& who())!<mul(345,567)/-select(838,572)-~'*)why()[mul(12,866)@^where()?<mul(985,870)where(503,821);^mul(803,551)'[%#where()-who())mul(38,22)^}$who()?,how()%what(528,476)who()mul(486,865)<(/mul(714,503)%%,$select()]mul(299,58)-when()~why()-}mul(684,388) /^<:[;:don't()why()who()<who()-{mul(413,975),>*mul(992,750):from()<:+-mul(938,672)mul(55,872)mul(354,183)>+(+mul(520,932)#from():}{who()$mul(675,973)@^@%mul(58,468)/select()what()->]mul(343,375)^ ,%mul(480,300)where()(/*$mul(695,676)how()where(),-!:from()mul(363,212)~(!where()-[what()don't()mul(614,594))mul(569,802)'mul(995,471)~&$:^:how()how()-^mul(853,428)-;-%what()(from()+do()'where()() !{^?#mul(376,780)select())where()select()&{-,{,mul(894,646)select()*< @}*[}}mul(332,665)[

140
data/Day4 Normal file
View file

@ -0,0 +1,140 @@
MAMAMASXXXSAMXSSSSSXMXMAMMSXMASAMXMXSSXMXXXXMSMSSMXXSAXMMSSSMSXMMXSMMMMSSMMMAMMMMSMMSXMAXMASMMSXASXSAMXXAAMXMXMAMXMAAXMASXSMXSSSSSSSSXMXSAMX
MSMMMMSXAAAMSMMAAMMMMAMASXMASAMMSXAXXMAMSMMMMXAMAMXAMMXSAAAAASASMASXAAMXAAXSAMAMMAAXXAMXMMSMMXMAMSAMXMMMSMMAXXXMXSMSMSMASMSMAMAAAAAAXXSASAAX
XAAXMAMMSMMMSAMMMMXAMAMXAAXAMXSAMAMXMSXMAASASMSMAMMXXAAMXMSMMSAMMAMXMXSXSMMMASMXSSMMMAMAAMAAASXSAMXMAXSAAAMSSSMMAAAASAMXXAMMAMAMMMMMMMMASMMS
SSXMMAXAAXMASMMXSXSMSSSSSXMSSMMXSAMXXAAXSMSASAMAMXXMMMXXAMXXXMXMMSXMSAXMAMXSXMXAAMXSASMMSXXMMAAXMXXSAXMMMSAAAXAASMMMSXSSMSMSASXSMXAXASMMMMAX
XXASMSSSMMMMSAMAMAXMAAMAMXMAAXAAMMMMMSSMAAMMMMMSSSSXSAASMSAXSAMXXXAAMAMSAMXSXAMMMMASAMAXMMMSAMXMSAMASXAAAMMMMMAMMAXXXAAAAMASASXAMSMSMSXXAMXM
MSXMAAAAXMSAMAMXSAMAMSMSMMXSMMMXSAXAAAXXMMMXMXMAAXAAMMXSAAMSMAMSAMMMMAMSASAMMSMSAMXSASXMSAAAAXSXMASAAXSMXMMASMMSSSMXMMMSSMAMAMMMMSAAXMAMSXSA
ASMMMMAMAXMASMMMMASMXAXAMXAAAXMASXSMSXSSXSAMXAMMSMMMMSMMXMMMXAMXXSAMSSMXAMMSMXASMSASAMXXMMSSSMMXSXMASMXMSMSASAAXMASXXXAAXMAXAASXMMSMSMXSAAAS
AXAXAMAXMMSXMASXSXMXSXSXXMXSAMXMSMMAXMAMASXASXSXAMAAAAASXMSXSXSASAAXAMMMSXXAMMMMAMASXMXMSXMAAAXASASAXXMASAMXSMMMMMMMSMMSSSMMSMMXXAXMXMSAMXMM
AMXSMSMXSAMAMSAAMMMMSMMXXAAXAXMAMAMAMMAMXMAXXMAXSSSMSSSMAAMXMMMMMMSMSMSAAMSSSXSSSMMMMMXMMAMXMMMAXAMASAMXMMMMMMSMSMAAAAMAMAMXXAMSMXXSAMXMAAXS
XAMMAMAAMMMAMAMXXAAAXAAMMMMXMMMMSSMSXMASASMSAMMMMAAAXXXXMMMAAAXASXMAXAMMMMAAXAXMASXAAXAMSMMASMSXMAMXSMMAXAAMXAAXAMMSSSMXSAMASAMAAASMMMAXMMMA
SSSMAMMMSASMSSXSSSSSSMXSXAAASAXMAMAMXMMXAXAXMASAXXSMMMMASASMMXXASAMSMAMAASXMMSMSAMMSMSMXAAXMSAAXSXMXMAXAMSSSMSSSSSMMAAMAMAMASAMMMMXAASMMSAAM
AAAMXSXXMASXAXXXAAAXAMAMMMMXMASMSMSMMSAMSMMMSXSXSAMAAAAMSAAAASMMMAMAAAMSMSAXAXAMMSMAMAMSSSMXMMMXMAAASXMSXAAXAXMAMSXMMAMASAMASMMXAMMMMSXASMSX
MSMMMSXSMSMMMMMMSMMMAMASASMSMXMXMAXAAMAMXAMASXSAMMSSMSMXMMXMASAXMAMXXAXMXSMMMSSXMAMAMAMMAXXAXAXASMMMSAAMMMMMSMMAMSXXMASASASXMXMMAXASAMMXMMMM
XMAAAMMMSAAAASXAXMSSXSASAXAAXMSMMMMMMSMMSXMAXAMAMXAAXMXSXMASXSAMXXMMSSXMASAMXAXXSSXSSSSMAMMSXSXMMSSXMMSMAXMXMAXASXAASXMMSXMASASXSSMSAAXMXMAS
XMSMXSAXMSSMXMMXSAXAAMASAMSMMMSAAXAAXAAMXMMXSASMMMSSMMASASXSAMMMXMAAAAAMAMAMMXMMMAAMAMMMASXXAXXAAAXXXAXXSMXMASMXSMMMSXAMSASMMASXXAXSAMXXXMAS
SMXSASAMMAMXAXAAXMMMXMXMMMXAXASMMSSSSSSMSXAMSAMMAXMAMMASXSAMXMAAASMMXSMMAXASMSXAMMMMAXMXXSAMAMSMMSSMMMSMMMXSAMMMMMXAXMXMMAMAMXMMXXMSASXMSAMX
AAAMMSASMMSSSSXMMXAXXMMAXXXMMMSAMXAXMAXAMMSXMAMMXSSXMMAXMXMMMMMSXSAAAXMXSSMSASXSMSXXMMMMMMAMAMXMAAAAAXAAAAMMXMASAAMXSMMSSSSSMMXMSMASAMXAMSMM
SMMSMMXMAAAAAAAAASXMMSAMXMSXMXSMSMSMMMMSMAMMXXMSMMMMAMXSAMMAAAXXASMMMSAAAAAMAMSMAMAMSASAAMAXAMAMMSSSSXSSMSXXMASMMXSAAAAAAMAXSAAMAAXMAMMXMASX
MAMMXMASMMMXMXMMMMSAAAMXSMMAXMMAAAAMAAAMMXSAMSXSMAMASXMAXAMSMSSMMMAAAXMMSMXMAMAMAMAMSASMSSSSSSXSMAAAAAMXMMMAXXXXXAMXSMMMSMSMSSMMASMSSMSAMXMM
MAMXASMSASMMSAMXMAMMMMXASXSAMSMSMSMMSSMMXMMASMAMSAMSAMXSMSAMAMXMASXMXMXMXXASASMSSSSXMMMAXAXAASASMMXMMXMAMXAMMMMMSAMXXAMXXXXAMMMMAXAXAASXMAMX
SSSSMSXXXAAAMXSAMSMSXXMASMMAAMMXMXMAMAMSMMMSAMXMMXXAMMXXAXXMMMASASAMXMAAASASASXSAMXAASMMMXMSMMXMAXMMXXXAMXSXAAAXAMMMXSAMXAMSMASMAMXMMMMMSXSA
SAAAAXAMMXMMMASMMXAMAAXMMXMMMMXAMMSXMAASAXXXXMSSSMSSXSXMMMMMXSXMAXXMAMXSMSXMMMXMMMSSMMAASMMAMXMMMMMSAMSASXMSSSSSSSSSMXAMMMMAMAMMXMXAXXMAASAM
MMSMMMAXSMSAMMSXAMAMMMMMMAXXAMSMSAAXMSMSSMMMXSAAAAXMAMASASAMXMAMMMSSSSXMAXMXSXASXMAXASMMSASMSAAAMXXAAMSSMMMAMAAAAAAAMSMMAXAMMASMMMMSSSMMMSXA
MAMXXXMASAMAMSSMMXAMAAAAMSXMAXAMMMXMMAMXMMAMSMMSMXMMAMASMSSSMSMMMXAAAMAMMMMMMSMMAAAXMSAASXMAXXSMSASMSMXMMMXMMMMMSMSXMAAXMMSXMAXAAXAAAAASASMS
MSSMMXSAMAMXSAMAMSXSSXMXXAASXMMSASAMMMSMXSMSAXMAMMXSXSXSASMMMAMAMXMSMMAMXAAAMMMSAMXSXSMMMAMXMMMMAMXAXMAXAAASXMAXXXXMMXSMAAMXMSSSMMMSSSMMASAX
XXAAXAMASAMXMASAMSMMAMSSMMMMXAXSASMMAAAAMSXMASXSXSMXMSXMXMAAMAXSSSMAXSXSXSSXSAAXAMAMXXMAXXMXMAXMXAMXMMSSMMMMAAXMMMMAAAXAMMSMMMAXMXAAMXXMMMAM
MSSMMMSAMAMASAMXXSAMXMAAAMMMSMMMXMASMSMSMXASMMMMAAXAAMSXXSSMSSSXAASAMSMSAAAAMMMSAMASXMSSMSXXSSSMSSSSXAAMASMSSMSXAMAMMXSAMAXAASMSMSMSSXXXAMXM
AXAXAXMMSASASXXMASAMXMXSMMAMXMASAMMMXAXXXMMMAAAMAMSMMAMMMMXMAMMMSMMMSXAMMMMXMSASXSAXAAAXASMASASAAXAAMMMSAMXAAMAMMMXASASAMXSXMMXAAAAMXMASXSSM
XXMXSXMASXSAMXMAMXSMASAMXSAXAXXSXSXMSSMMAAXSSMMXAXAXSSXXAAXMASXAAAASXMMMXAMXAXAMAMASXSSMAMAXXAMMMMXMAAAMXSMXMMMSSSMAMAMAMXSASXSMSMXMAMMMAAAS
SXMAXAMXSXMAXMASMMMMAMMSXSAMSMMMMSAMXXAMXSXXAAMSMSAXXMMSMSSSSSXSSSMSXAXMSMMMMSAMXMMMMAMXMAMAMSMMSMXSMMXMXSMMMXXXAAMXMXMSSMSAMAXAAXASMSAXMSMM
AASASAMAXASAMAXXSAAMXSAMXMAMXASMASMMAMSMAMMMMXMAMMXMAXXAMAAMMMMXXXAXXMAAXAAAXSAXXSXMMMMAXXSAMXAAAAAMAXMMAXMASMSMSMMMMMMMAAMMMSMSMSXSASASXMXA
SMMASMMMSMMMXMSASXXSAMXSMMSMSAMAXSAMMMXMSXMAMAMXSMSSMMSASMMMAAMMAMAMMSMMSSMMMSXMASAXAASMSXAXAXMMMMSSSMAMSSSMSAAAXMAXXAASXMMSAAXAAXAMAMAMAXSA
MXMMMMAAXMASAAMXMAMMXSXMASAXMMMXMSXMMMSAXASASXSXMAAMAASMMXMSSSSMXMAXMAAXMASMMMASAMXMMMMSAMSMMSSSXAXAMXMAMXMAMXMMMSMSSSMSMAAMSMSMSMMMMMSMXMAS
SXXAASMXMSASMMMSXSXMAMAMSSMSMXMAXMMSAAMXMASASAXMMMMSMMSSXAMXAAAASXMMAXMMXAXMMSAMASMSXSSSMMAAAAAXMXMSMXXXMMMXSSSSXXAAAMASMMMXMMXXXXAXASXMASXM
MXSMXXMSMMXSAAMSAXSMASMMAXXAXAAXXMASMMMMMXMAMMMSXXXXMASMSMSMMMMMMASXMSSMMXXAMMMMXMAAASAMXSSSMMSMMMXMAMSMMAMXAAAMAMMMSMASAMXASXMASMSSMSASXMAS
XMAMXSAAMMSSXMXMAMXSMSXMMSSSSMSSXMMSMSMSMSMXXAASMMMXMXMAAMAMASXXMAMAAAMMAMXMMAXMXXXMSMASAMXAAAMAMAAMAMAASASXMMMMXMAXXMAMMMMMSASXXAASXSXMASAM
SMSAMMXMMSXMASAMSMAMMMAAAMXAMAAMXMAXAAAMASMMMMAMMAAAMAMSMSASMSAMMSSMMMXMMSAXSXMMMMXXXAXMAMSSMMSAMSXSASMXSAXXXAXAASXSXMASXMXXMAMMMMMMMSASXMXS
XAMXMASMXSAMASXSAMXSASMMSSMMMMMSSSMXSMSMAMAMAMXSMMSXSAMMXSXSXXXMAAAASXXMAMMMMXXAAAXMSMMMXMXAMXMAMXASMSXMMXMAMASXXSMAMAXAMASMXSXSAXMAASASXAMM
MXMSMASAASAMMSXSAXMXASAMMAMXMXMAMAAMMMMMXSMMAXAXAMXXSXXSAMXMASMAMMSMMSMMSXXAMXSSMSSXMASXSXMAMAXXMMMMAMXMAMMAMMMMAMAMMSSMMAMSAMAMSSSMXSAMMSSM
ASMXMAXMMSXMAMMXMMSMMMMXXXMAXXSMSSMMAAMMMMASAMSMAMMASAXMASXMMMASMMMMAMXAAASXSAXAAAAMAMXAMAMSSSXSASAXMSMMAMSASXXMAMMXAAAXMASMMMAMAMAMAMAMMMAM
XMASMSXSASAMASXXSASASXMSSXSXXXAXAXMSXSMMASMMMAMSMMXAMMMSMMXMMXSAMAMMSSMXSMAAMMSMMMSMMXMMMMMAAAAMASMSAAAMAMSAMXXSASMMMSSMMXSASMSMMSAMXSSMASMM
XSXMAXAMXXAMXMMAMASXMAAXSAXAMAMMXSXSMAXSMXXAMAXASXMXMXMAMXASAMMAMXMAMAMAAXMXMAMAASAMMASXSXSMMMXMXMMXMSSMMXXAXMMSASXXAAMASXMAASAAXSASXSXSAMXM
MXXSAMAMSSSMAMMSMAMASMMMMSMMMMMMXSAMXSASAMSXMSSMMSMAMMMSMSXMAMMAMXMXSAMXMMSMMMSMMSAMSAMXAAMXSXAXMAMAAMAAMAXMASAMAMXMMSXSAXMMMXMSMSAMMMMMSMMM
SAMXMXAXMAMAASAMSASAXASXMAMMAXASAMXMAMXMAMSAXMAXAAMASMAMXMASAMASMSMAMXSXMAXXAMXMAMAMMXMSMMMAASMXMAMMSMSMMAXSAMXMAMASMXXXMXXXXXXXAMXMAXAAAXAA
MMSMMMMMMAMMMMAMSMMMSAMXXMMSASMSAMSMXSSMMMMAMSMMSMSASMAMASAMXSMAAXMAMAXAMASXSMSAXXMMMSMMXAXXXXMASASXAAXXMAMMMMASASAXMMMMXXMSMMMMSMASASMSXMXM
XMAMSASXMXMMASXMXSAAMAMMXMASAXXXXMAMAMXASMSMAMXMAXMXXMAMXMAXXSMMXMMSSMMMMXSAMSMMSAMXXAAXSSMMSMSASASMMMMAXXAMAXXSAMXXAAAMAXMAMAXAAMXMAXAAMSMS
MSAXSASASMASASASAMMSMSAMXMAMMMXSAXAASMSXMAAXSXAXMMSXSMXSAMSMMSASAAXXAMMAMAMXMAMXMXASMMSMXAASAMMXMXMXMMSMMMXSSXXMMMMASMSSMMSSSXMMMXSMMMMMSAAA
AMXMMXMAMXXMASMMMSXXMAMXXSSSSSXAMSXMXAMXMMMMMSMSMAAMMASMMMAAXSAMMMMSAMSXMMMASXMAXASXMAXAMSMMASXSMASMMAAAAAMAMXSMSAXXMAXAMAAXAMSMSAXASXMXSMSX
MSMMXMASMXMXXXAXAMAXXXXSAAAAXSAMXMAMSMMMSXMXXAMAMMSAMMMAXSSMMMMMASXMAMXMMXMAXAXSSXMAXAMSMMXSSMAMSAMAMSSSMSMMMXMASMSMMXSAMMMMMMMAAXXMMAXXXMAM
AAAXSAAASXMSMSMMSMAMXSAMMMMMMMSXASAMAAAASAMXMSSXXXAXSSMXMMXMAAAXMSASASMSMAMSMSXMAMSSMSSXAXXSAMXMASXSMMXXAXMXSAMAMMAXAAMASXMAAAMAMMSSSXMASMMM
SSSMAMSSSMASAMXAAXMASMAXXXSXAMASAMAXSMMXXAMAAXMASMMMMAXSXXASMSMSAXASASAAMSMMAMXMXMXAAXAMMMMMMMAAXXXMASMMSMMXSASASMMMMXMAMAMSSMSAXXXAAXMAXXAM
XMMMMAMAMXAMMMMSSXMSXXMMSMAMSXMSMSSMXXXSMSSXSXSAAXAAXMMSMSXMAAMMMMXMMMXMMAAMXMAMXMSMMMMMAXAAAMSMMSSMMMXAAAXXSMMMAAXSAAMSSSMAXMSMSSMMMMMAMSAX
MASXXAMAMMXSXSMMXXXAMASAMASXMAXSAAXASMMXAXSAAAXASXSSSXAXAMMMMSMSMSMAMASXSMMSASASAMMAXAXSXMSXSXXAMASAMSMSSSXAXAAMSAMSMMSMAAMAMAXMXXAAMAXAMMSA
MAMASXSASXMMAMAAXSMASAMAXSAAMAMSMMMSMSAMXMMMMXMXMAAAAMSSXMASAMMAAAMAMMSAAXXSASXXASXMSSXMSMXAXAMXMASXMAMMAXMMMSXXMXMXXXXMXMMAAXMSMSSMSMMMXAMX
MASXMASXSASMSSMMSMAMMASXMMMSMAAXAXXXAMMXAAAMMXSAMXMXMAMAXSXMASMMSMSSSMMMMMAMMMMSXMMMAXAAXMMMMMMSMMSXSASAMASXMMSMMASMMSMMSSSMMAAAAXXMAXAMMAMX
SASXSASXSAMAAMAMAAXMSMMXMAAAMXSMSMSMAMAXSSMSSXMASXXSXSSMXMAMMMXAMAAAXMAXXXAMAAXMAXAMSSMMMXSXSAAXAASXSASAAAXMAAXMSASAAXAAAXAMMSSMSMSSSSXMAAMX
MAMAMAXMMAMMMSSSSSMXXXMASMSXSXXAMAAMAMMXMAXAXASAMXXSAAAXSSSMMSMMMSMMMMSSXMASMMSAMMSMMAAMAMXAMXSSMMSAMASXMSSSMMMXMASMMXMMSSXMMAAXMAXAAXMASASA
MSMSMAMSSSMXAAXAAAMXMAMXMAXXSAMAMSMSSSMASMMMSMMAXSAMXMMMXAAMAMAMXAXXAXMAXSXMXAMAMAMXMSXMSSMMMAMAMAMAMAMXMAXAAXXXMMSXSXAAXXMASXMMMXMXMASXXAAX
MXXMAXMMAXXMMMMMMMAAMAMXMSSMMAMAMMAAAAAXMXMAAMSSMMMSXXXSMMMMMSSMSMSSMSMAMMSMMMSAMXMAXAXSAAASMMXAMXXAMASXMASXMSMAXXMAMXMXMAAXAAAAMAMMSAMXMSMS
MSASMMSMMMMAXXAXAXSMASXSAAAXAMXSMMMMSMMMSXMSXXAMASAMMXAXAMXMMAAXXXAASXMASASXMXSXXAMAMXXMMMMMAMXMSXSASAMXAAMXAXMAMMMAMMSSSXSAAMSSSMSAMASMMAXA
ASAMXXXAAXASMMSSMXAMXMAMMSSMSAMXMSXMAMMAXMAXMMSSMMASAXMSSMASMSMMXMMMMXSXMASAXXMMXSMMASMSMSSMSMASAMXMMASXMASMXMAMMXSASAAXAAXXXXAMMASMSAMAMAXM
XMXMASXSMMXAXSAMXAAXAMXMAAAXMAMAMXAASXMSSMSSXAMAXSSMMMASXMASAXAXMMSMMAMXMAMMMAAMAMASXMAAASXAASXMAMMMSASAMXXMASAMMMSAMMMMMMMMMMMSXMXAMMSAMSMX
SMSSXXMMASMXSMMXSSSMSSSMSSSMXMSMXXSMMXMAXAXSMMSMMXXAAMMMAMSMAMXMMAAAMASAXMAMMXXMASAMXMXMSMMMMMSAMXSAMAMMXMXSASAMSAMXXSMAAXAXAAAMAXMMMMAMXAAM
SAAXXMASAMXXMASAAXXXAAXAMXXXAAAXMMXAMXSAMMMMXASMSMMSMSXSAMAMMMSSMSMXMXSXSSMSMSMMXMMMMMSMXXAASXSMSMMASXSSSMASAMXMMAMSAMXSAMMSSMSSXMAXSSMSSMSA
MMMSMSMMMMXMSAMXSMSMMSMXMXSSMSASXSXAMAMXXSASMMXAAMAAXMMSAXAMXAXXAMASMMXAAXMAMAASXXMAAXAXASXMMAXXAASAMMMAAMASXMASMMMSAAAMMSMAXMAAAMMMXAXXAAAX
SMXMASAAMMMXMAMMXAXXMAMAMXMAAMXXAMSMMAXMASASXSMSMMSASXAXSSSSMXSMMMAAASMMMXSMSMSMMMSSXSMSAMXAMAMSSXMMSAMSMMASASXSASASXMXMAAMMSMMASXSSSMMSMMMS
AMAMXSSMSASASMSSMXMAXAMASAMMXMXMAMAXXMXSAMAMAMAMAAXXMASMMMAAMAXAAMSSSMAXSAMXXXXAMAAMMSXMXMXXMAAXXXAXSMXASMAXXMASAMASMAXMSSSXXXXAMAAASXAMXMAX
SXXSXMXMXMSASAAAMASASXSMSASAXAASASMSXAASXMAMXMAMMMSMXAXMAASAMXSSMMAXAXSMMMMAMMSMMMXSASMSASXSSSSSMSMMXMXXMMMMMMXMXMAMXMXXMAXMASMMSMMMMMSMAMSM
MSMMAAMMSXMAMMXMXASASMAASAMASXMSAMAXMMMSASMSMMSSMAAXMASXMMMAMXMAXXXMSMXAXAMAXXAXMAMMMSAXASAMAMAAXXMMXXMAXASASASMXMAMMMSSMAMMAMXAAXAAXAAMAMAA
MAXSMMMASAMXMSASMASAXAMAMAXAMXXMXMSMMSASXMMAAAXAMXSSSXMXSXXMASMSMSXAXXXXSXSAMXXMXSXAXMXMAMAMXMXSMSASMAXMSXSASASAMXSMAAAXMASMXSXSXSSXSSMSSSMS
SXXMXSMMSAAMXXAXMXMAMSXSSSMSMXXSSMMAMSASAMXSMMSXMXXAXAXAMMSSMMAAAMMSMMSMMMMAMSAMXMXMSAMXXSXMXSXAAMAAMSAMXMMAMAMAMAXSMMSMSAMMAMAMXAXXAMXAXAXX
XSAXAMAXXAMXMMSMSXMAMMAAXAAXMMSAAMMAMMAMMMAXAMXXMXMASXMXAAXASMXMAMMXAAAASAMAMXAMASAMAXXSMAAXAMSMSMSMAXAMASMMMXMXMSMXMAMXMASAMMAMXAMXMMMMMSMS
SAMXASMMSMMAAAMAMMMAXMXMXMMMXMASMMSMMSAMXMASAMMMMSMAMXAXMMSMMXXXSASMMSSSMSMSXXAMAMASASMAMSXMAMMXMAAAMSXSASAMSAMXMAAAMASXMASAXSAMXASAASXSXAAX
SMSMXAMAAASMSSMAMAMSXSAMMSAMXMAMXXSAAAASXMXSAMMAXAAASMSMMAAAASMAMAMAXAMXMXMAAMSMMSAMAXXAMXAMXMAASMSSMAASXSAMXSMAMMXSSXMAMASAMMMSAAMASMAMSMMM
XXXMSXMXXMMMAMMAMXMXAXMMAMXSXMAXXSMMMSXMASAMAMSSSXSMAXXAMSXSAMMAMAMSMASASAMMSMMAXMAMASXSSMSMAXSMXXAAMMMMMMMMXMXAMXAXAMSXMAMAAAAXMXMSMMSMAXAA
SAMXMSSMSMMMASXMMAXMAMSSSSXMXSASMXXXAXASAMXMSAMXMMMMXMMMMAAAXSSMSSSXXMMASMSAMAMXMSAMXMAXAAAMXMXXXSSMMSAXXAAAAMSSSMXSAMXXMXSMSMSSXXXAAXMSXMAS
MXSAMXSAAAXSMSASMXMMSMAAXAAMXXMAMSXMSMMMXSAAXMMMXAMMSMASMMMMXAAXAMXAMMMXMXMAXXMAAMXMAMMMMSMSSSMMMMAAXSAASMSSMXAMAAAMAMXMXXAAXAAXAASMSMMASXXM
SMSASAMXMMMMAMAMXAXAXMMSMSMMASMSAMMMXASXMAAXXMAMMMXAMXAXMSMXMSMMSSSMSASMSMSSMSSSSSSMMSXAXXMAMAAAASXMMMXMMXAAXMASMMMSMMSAMMSMMMMMMMXAAAMAMMMM
AAXXMMSMSSSMAMXMSXMASXSAAAAXXSAAAXSMSAMAMXMMMSMSSSMSSMSSMAXSAXAAAAAASXMAAAXMAMAAAAAAASMMMXMASXSMMXASXSXXXMAMMMMMMAXSXAXXMAAAAXMASMSMXSMMSAAX
MSMAMAMMAAMSAMXAMASASMMMSSMMXMMMSMMAMXSAMASAAAXAAAXMAXMAMASMSSMMMSMMMAMSMSMMAMMMMSMMMXASXMSAMAAMAMXSXMASXSSXSSMMSMSXMMSMSSSXMMSMSAAAXMXMAXSX
AXMXMAMMMSMMMSMASXMASAXXAMASMSAAAAMXMASASAMMSSSMSMMSSMMAMXXAMXMMAMAAXSXXAXASXSASXMASXSMMAAMASMMMSXMMAMAMXAMXXAXMAXSMMSAMAAMASMMMMMMSMMAMSAXX
MMMXMAMAXAMXAAMXMXMAMMMMASMMASMMSSXAMMSXMASAMXAMAXXMMSMMSSSMMASMMSSMMXAMAMMXAXMMXMAMMAMSMMMAMAAXMAXSAMASXXMASMMMMSMAXSASMMSAMAAMMXMXAMAMXAMM
SAMAXAMMSMSMSSSXMXMXSXMSXMXMXMXMMXXXXMXAXMAMXMSSXSMMAMXSMMAASAMAXAMXXMAMAMXMSMMSAMAMSAMXSASXSMMMSMMSXSXXXXSXSMAMSAMSMSAMXMMAMSMMXAMMSMMXMXMA
SSMMSXSAAXSAMXAMMAMMMAMXAMXSAMMSXAMMXMXMMMAMAMAMXMMMXSMMAASXMASXMASMMMMSMMSAXAAXMMMMXAXAMXSMXXMAAXXXMAMMSXSASXAXXAMMMMMMASMSMMSSSMMAAXXSMMSS
MMSMAAMMMMSSSXMASASXSMMSMMASAXAXMAMAAMXSASASXMASXMAXMAMSAMMXSASASMMAASXAASMAMMAXXAMXMSSSMMSAMSMMSXXASAAMAAMAMMMXSAMAMAASMMAAAMAMAAMSSMMXSAAM
XAAMMMMAXXXAXMAXSAXAAAXAMXAMXMMSASMXSXASAXASXSASXMAXSAMXASMMMAMAMAMSMSMMXMMXMMSASASAAXAAXAMXMAMXMXSXMASMMXMAMAMMAXSXSSXSMMSMMMAMMMMAAAXAMMSM
MSSMXAMSXSMMMMSMMMMSMMSMSMMSASMAMXMAXMMMXMXMXMAXASMASXMSAMXAMAMAMMMMMSXSMMXXXAMMXAXMXMSMMMSASASASMSASAMXSXSMSSMSAMXAXMASXAAAASXXSAMXSMMXSXMM
MMAAMSMXAMXMAMAAMXAAAMXAAASAAMSMXSMASAXMXMSAMXAXAMMAXAMMAMXMSXSMMSAAXMASAMSAMMSSMMSXSXXXMASMSXSAXASAMMXAMASAAAAAXAMXMMMXMAXSMXSAXAMXXAXXSMMM
SSMSMXAMMMAMAXSMMMXXXMSMSMSMMMXXSXMASMSSMSASXMASMXMXMMMSMMSMAAAAASMSAMAMAAMSXSAXAXAASAMASAMXMAMXMXXMASXMMAXMMMMSXSXMXSMMMSMMAXMSMSASXSMAXAAX
AXXMAMAMASAMSXMAXAMSSMSAXAMXSXMSSXAMMAMAMXAXXSXAXAXAAXMXSAAMMSMMMMXXAMXXXMSAMAXSMMMMMAMASMSSSXSAXSAMASXXMMMXAXAMAMMSAMAXAAAMSMAMXXSXMXSSXSMS
MXMMMMMMAMASMASAMXAMAAMAMXMAXAMAMMSXMAMAMMXMXMASMMSMSMMAMMSSXMAXMMSSMMSMSXMASMAXAAXASXMASXAMAAMAXSAMASXSASAMMMSMMMAMASAMSSXMXMSAMXMXXAAXXXAM
XAAASAAMSSMAMAMASMSSMMMMMMMMXAMMSAXXSSSSMSASAMXAMXAAAAMXSAMXXSXSXAXAXAAXXASAMXAMSMSASAMXSMXSMXMXMXAMMSASAXMAXAAAAMXSAMMMAAMSXMXXMAXAMXSSMMAM
SXXXXMXXMAMMMMSAMAXAXMSMAMXSAMMXMXMMAAXAASASMSSSMSMSSSXAMMSXMAASMSSMMSSSSMMASMSXXASASMMMMAMAASMXMSMMXMXMMMXMSMSXMXAMXAXMMSMXAMAMXASXSAMAXAAS
SMMSSMSXXAMXMASASMSAMXAMMMAXMASXMASXMMMMMMXMAMMMMXAXAXMASAMMAMXMAAAAMMMAAXASMMXAMXMXMMSMMAXAXAXXAAXXAXASAMAAXMMASMMSASMSXXMSSMASAMMAMASXMXSS
XASAAAAMSMMXXMMASAMXASMSSMMSXASXMASAXXAAXMXSXMASXMMMASMMMASXSSSMSMMMMAMMMMXMAXSSMSMSMAXSSSSSMSAMSMSSMSASASXMSASAMXSAMMAXAXAAXMAMMXSXSXMAASAX
XSMSMMMAAASMSSMAMMSMMMSAMXXSMXMAMASXMSSSXMMMASAMMAXSAMAAMAMAAAAAXXMSSMMMXSXSXMAAAXAAMAMXSAAXAMXXAAXAXMAMAMAAMXMXMXMMXMXMXMMMSMSSXASMMAXXSXSX
SXAAMASXSSMAAAMSSMAAAMMMSXMXXXSAMMSMMXMAXSASAMMMXXXMASMMMSMMMMMAXAXAAAXSAMMMSMSMMMXMASMMMMMXXXXSMSMSMMAMXMMMMMMSMAXMASMSMMAAAXAAMXSASMSXXAMS
AMMMSASMXAMMMXSAAXSXMMAASASMMXAXSASXXAMXMSAXASXSAXMSXMASAXXXSXXMMMMSSMMMASAAAXAXMXMXMMAAXASXMSMXMAAAMXXXXXSMAAAMMASMMSAAAMMXSSMXMASAMASAMAMS
MSXXMASAXXMSMXMMMMMXSMMMSAMXAAMMMASASXSSMMSMAXAAMXMAXSAMSAMXMXMMSAAXMMMSAMMSSSMSSMMAMAMMMMSAMAAAXXSMSMSASAAMSMSSMMSASMXMMXSMMXXAMXMAMMMMMSMX
XAMMMMMXMXMXXXAMSMAASAMAMXMMSMXAMAMMMXAAXAXMSMSMXSXAXMXXMXMASASASMMMAMXMASAMXXMAAXSXSASMXAMAMSSXSXMXSAAAMMXMXSAMXMSMMAMXSAXAXASXXMXMAMXXXAMX
SMAXXAAAXAMAMMMAAMMMSAMXXAMAASASMSSMSMMMSASAAAAAMAMXSSMMXASASAMASASMXMASAMXMSMMSSMMASASXMMSAMAAASXSAMXMXMASMMAMSAMXAXXMAXMSMMMXMXSAMASMSSMSS
AXSXSMSXSASAXAMMMSAAMAMXMMMSMSXMAAMASAXMXAMMMSMSMSMMAAASMXSAMXMXMAMAMSASAXAXAAAAAAMAMXMXAASAMMMMMAMSSSXMSAAAXMXSASMMMSMMMMAXXMASAAAMXSAASMAX
SMMASAMXMASMSXSAXSMSXSMSXMAMMSAMMMSASAMAMSMMXMAMAAMMMSMMAAMMMXMXMXMAMMASXMXSMSMSSMMXSAMMSMSXMAMAMXMAMAAXMMSAMXMSMMXXAAASASMSASXMASMMXMMMMMSS
XAMXMXMASXMAAAMAMMAXAAAXASASASXMAMMXSAXMAXAMXMAMSSXSXMXAMXMAMASASASXXMAMXAXMMMXMAXSASAXAAXXMSSSMSSMSSSMMXMXMMMMXXSMMSSSMAMASMAMXXAAXMAMAAMAS
SMMSMASASAMMMSMSXMAMMMMMXMAMAMASXSMASAMMMMMMAMXMAMAXASXSMMSASXSASASMSMXMXXMSXMASMXMASAMSMSXMAMAXAAXAAMAAAMXMASMSXSAAXMAMXMAMSSSMSMXMXAMSMSAS
SMAAMXMASAMASAMMAMSXXAXMAMXMXMMAMAAMXXXAAAAXMSSMAXMSAMXAAXSASAMXMAMAAMMSMMXSASAMMASAMMMXAMXMASAMSSMMSMSSXSAXXAAMASXMMMMMSMSXMXAAXXAASMMMAMXS
MMSSSMSASAMXMAMSAMXMSMSMSXXXSSSMSSMMMMSMSSXSASXMSMXXAXXSMMMMMXMAMAMMAXMAMXASAMASXMSAMXAMAMASMMMAMXAXAAAAAMMSXMAMMMMXMAAMAAMMASMMMMMXASAMXMMM
SMMMAAMASAMASMMSASAAAAMAXXMASAXXXXAXXAAXMAXMMMAAMSMMMAXMSAMXXAXASXMSASMASMASASASAASXMMSSXSAMXSXMXMASXSMMMMASASAMSAMXSMSSMSMAAMMAAXSMMSXMMSAM
MAAMMMMAMAMAXAAMASXSMSMAMAMMMMMMMSXMMSMSXMMXSSMMXAXAXMXMAXSXSMSASAXMAMXAMMXSAMASXMMMXAAXAMMXMMAMSAXXXAXXMMASXMASXMMMSAAXAXMMMXXMSXMAXMAMMXAS
SSMMMAMXSXXXMMMMAMMMAMMXXAMAAXAAXXAXXMASMAAAMXMXSMXSAASXSMSAAMMAMMMMMMMSXMXMXMXMAMMXMMSXMMSAXSAMXSMASXMASMXMMSXMMAAAMXMMMMXASMSXXAMMMSAMSSMM
XAAXSSSMMMMMAAAXXXXMMMMSSMSSSMSSSSMMAMMMAMMXXAXAMXAXMASAAAXMMMMSMXAAXAAMASAXMMXSMMSAMXXXAASMMMSXSAMAXXXXXSAAXMAMSSMSSXXAASMMSAMASXMSAXXXAAMX
SMMAAAAXAAMSSSSSSSMMAAMXAXMAMAAAMASAMXXASMSASMMXMMSSXAMMMMXXAXMAASXSSMMXAXASAXAXMASASAMMMMSXSAXXSAMASMXMASMXMXAMXAXXXXSMXSASMAMXMASAAMSMSAMX
XAMMSSMMSSMMAAAMXMAMSSMMAMXAMMMMMAMMMSAMXAMAMSAMXAMAMSSXSMSSSSXSXMMMMXSMMSMMAMMSMMMXMMSMMASAMAMASXMASAXMAXMSSSMXAMXMSMMSASXMMAMAXXMMSSXAMXMA
XXXAAAAXAMAMXMMMMXSMAAXSMMMMSXAMMXSAAXAMMSMAMAXAMXXAMXMASAXMASAXMAXAAAXXAAAXSASAMXSMAAAAXASXMXMXMASAXMXMSSXAAAASXSAAXAAAMSXSSSSSMAXXXMAXMAXS
MMMMSSMMASXMSXMASAXMMMMAAAXMAMXMAAMMMSMMMMAASMXSXSAMXMMAMMMSAMXMMXMMMSMMSMXMMMSAMXASMSSSMMSAAXMASMMXSAAXAMMMSMMAXSMSSMMMXMAMAXAAXAMXMASASMMM
SAAAMAMXAXAMXASASAMXAAXSSMSSMSSMMSSMXXMAAXSMSXMMASMXAXMAXMAXAMSSMMSXMAAXAXSAMASAMMMMMAXXAXSMMMSASAAASXMSASXAXAXMXSAMXAAAAMMMSMSMSMSMXAMMMAAX
SASMSASMXSAMSXMASAASMMXMXMXAAAXAXMAMMMSMSMMMXMAMXMAXMSMMSMXSAMAAAAXAMMSMASMAMMMXSAXAMMXSSMSASAMMXMMXSAMXXMMMMMMXAMAMSSMSXSXAXAMAAAAAMSSSSMMM
MAMXMASAASMMXXMASMXSMSAMXMSMMMSMMSXMXAMMXAMXAAMXMSSMAAASAXAXAMSSMMXSMSAMMMXAMXMAXXSSMSAXMASAMSSMSMSMMAMXXMXSASMMXSAMMMMXAXMASMMSMSMSMMAMAAXX
MAMXMMMMMSAXMAXXMMMSASMSAAMASXAMAXXMSSMASXMSAMSAMAAXXSXMAMMSSMAMAAAMXSASAAXXSAMMSMMXAMXSMAMMMXSAAXAASAMXXMASMSXMAMAXAMSMSAMXSMMXXMMXXMSMSMSA
MAXXMXAXXXMMSASXXSSMMMXSAMXMMSMMSSMXAAMAMMXSAMSAMXSAMXXMAMXAXMASMMMSAMAMMMSMMASAAAMMSMSXMASASAMSMMXXMAXMXMAXMSAMXSSXXMAAMAMXMAXXAXASAXMAAAMA
SSSMMSXSMSMMXAAXASXSMXXXAXMAASXAAAXMXSMSXSAMAMMXSAMMXMAXSAMXSSMSXMMMXMXMXAAAXSMXMMMAXXMASAXXMAXXXMSSSSMAMMXSASXSAAAASXMMMMMASXMMMMMMAMMMMXMM
MMAXAXAXMASXMMMMXMAXXASMSMSMASMMSSMSMMMXAMAXXMAAMASMASXMXMASXAXMASAAMMSMMSXSXXAXMMMMSXXAMXMSSSMSAXAXAAXXMAAMXMASMMMAMAXASASAXMMAAXAAXMASMSSM
MMAMMSMAMAXMASAMMMSMAXAAAXAMMSAMXMAAMAXMMMSMAMMMSASXMXASAMXMSSMSASMMSAAAAXAMAMMMMAAXAXMXSASAAAAXMMSSMMSSMMSMMAMXXASAMXMXMAMXSSMSXSMSSXXAXAAS
SMSXMAXXMSMSAMAMSAASMSMSMSXSAXXAMMSMSMXAAAAMXMAAMAMXSMMMMXXXAMAMAMXAMXSMMSMMAMAASMSMMMAAXMAMSMMMXAXAAXAAAAAXMSMMSXMAMSXSMSMMXMAXAMAAXMMXMSMM
XAAASXSXAAAMMMSMMMMSXAXMASAMASXMAMMMAMMSMSSSSMMSSXMASAXSXSMMSMSMSSSXSAXMMMASXSMXMXAMXASXSXMXMMSAMMSSMMMSMAMAXMAMXSMAXMASAXXAAMAMAMMXSXMAXAMX
SMSXMASMXMXMXAMAMXSMMMMMMMSMAMMXSASMMSAXAXAAAXAAMAMASAMXAAAMAAAAMAAAMASMAXMMMXMAXSAMXXXAAMXXAAMAMXAMXSXMXXXMXSXMASXMAMAMMMASXMXXXMXAMASXSASM
XAXMMXMAMXMMMMSAMXAASXAXMAXMAXMXXAMAAAXMMMMMMMMXMAMXSXAMSMSSMSMXMMMMMMXXSSMAMSMMMSAXXXMMMMASXMSAMMASASAMXSSMAAAMXMASXMAXAMAMXMSXSSMMSAMXXXMA
MXMASAXXAMAXAXAMXMMMMASXMXSSMXSMMAMMMMMAXAXAXAMMSSSXXMSAMAXAAMXAMXAXXMMXMAXSMSASASXSMSMXAMASXAMASMSMMSAMAXAMMSSMMSAMMXSMSAMXASAMXAAAMASXMSSS
XAXSMMXXSXSXSSSXSAMXMXMASMXMMASASXMXXAASMMSMSXSAAMAMXAXXMXSMMMSXSAASAMAMSMMMASAMMMASAAASXMASMXMASXXAXSAMASMXMAMAXMSXSAMMMMSXMMMSSSMMSAAAAAXM
SMSMMASXMAMSAAMAMMXXXAMXXMASMASAMXAASMSMAXSXSAMMSSMMXSXASAMXSXSAXMXMAXSAAXAMXMAMXAAMMMMSAMXXXAMAXASMMSXSAMXSMXSSMMAXMASASASXXAAXAMXMMMSMMMSS
MXMAAAMAMAMMMMMAMMAMSASAMXXMMXSAXMMMMMAMSMMAMXMAMMMSXAXXMASAXMXMMXASAMXSXMASXMASAMXSXXXSAMXXSXSSSMMAXMAXAMAXMXXMAMXSMAMXMAMMSMSMSMASXMMAMAAX
SASMMXSXMAMMXMMXSMAXSAMMMMSXMASMSMSMMSAMXAMAMAMMXAASMMAMMXMAMMASMXXXXXMASMAMXXAXXXAXXXAXXAXMMAAMAMXXMASMSMXMAMXSAMMXMAMXMAMAAAAXXSASAMMAMMSS
SASMSAAMAXXMAXXSAMXMMMMASAMAMASXAAAAAMAXSAMXXXSASMMSASMSSSMMASASMASMXXMAXMAMAMMSMMSSSSMMSSXMMSMMXMASAAXAMASAMMXSASAASASASMSSMSMXAMXXMMXASXMA
MAMAMMSAAMMSASXAASXSAXSASXSAMMXXMSMSMSAMSAMMSMSASAAMXMAAXXAXAXAMXAAMAMMMMSAMSMMAAXAAXXAAAXASAMAMAMXSMMMAMAMMXSXSAMMXXMXASAAMXMASXSXMASXXSMSS
MAMXMXAXXAXAAAMSAMXSAMMASASMMSXXXAXXXMAMSXMAAAMASMMSSMMMMSSMSSSXMAMSASASXSAAAAMSMMMXMMMMSSXMASMMAXMXAXSXMASXSMAMAXMSXMSAMMMSSMAXMAMSASMASAMX
SMSSXXXMMSXMSMAMASMXXAMXMXMAASMSSMSXMAXXMMMSSSMAMXAXAXXMXAXXAAAXXXMSXSASXSMMXSMAXXSMSAMXAMAMAMMMSSSMMMXAMASXAASMSMAMAMMAMXAAAMASMSMMASMSMMXA
MMAMAMAMAMAAXXXSXMAMMSAMXAMMMMAXXAAMASXSMAMMAMMMMMMMXMXSMMXMMXMXMMMMAMMMXXXMAXMMMXSASASMASAMXXSAXXAASXSSMAXXASMAXMXMAMSAMMMMSMMXAXAMAMXXASMS
SMXSASAMSSMMSSMMMMAMSXMASMSMSMSMMMMMMMAASMMMXMASMMMSXSAMAXSASAXMAAASXSSSMSMMMSAMSAMMMAMXMXMASAMMSSSMMMMMMSSMSAMXMMXSSXSMSXSAAXMMSMMMSSMSMMAA
AAASMSASAXAAAXAAXSASXAXMASAXMAMAAAXAAMSMMXASAMMSAASAAMASAMSAMXMASXMSAAASAMXAASAMMAAXMXMASAMXMAAXMAMAAAAAMMAMXAAAAXAAXAMAMAMSSMXXMASAAAMMAMSM
MMMSAMXMXSXMSSMMMSXSMSMAXSSMMXMSSSSMSMMXXSSSMSXSMMMXSSMMMMMAMMMMXSMMMMMMSMSMMSMMSAMXAXSXSMXXASXXMASXSSSSSSXMSSMASMSSMMMMMXMAXMSMSSMMSSMSAMXX

1367
data/Day5 Normal file

File diff suppressed because it is too large Load diff

130
data/Day6 Normal file
View file

@ -0,0 +1,130 @@
..........#....#..........#......#.......................#...#..........................................#.........................
...................#.........#......#.....#.......................#......................#...#....................................
...........#..#....................................................#..........................#................#......#...........
.....#.#...........................................................................#..........#................#..................
...#..........................................#...........................#....................#..#.........#.....................
...........#.#...#..........#...............#..................#.............#...................................#............#...
......................................................................................................................#..#......#.
....................#..........#.........#.....#.......#....#........................................#..#..........#...........#..
....................#......#...................................................#............................................#.....
..................................................#.........................#...........................#...............#.........
#....#....#..................#.........#..#...................#.........#....#.....#.#........................................#...
...........................................#..............................................................#.......................
#...............................................................................................#...............#...........##....
...#......#.............#...............#.....#........................................#.#........#...........#...#...............
#........#......#............................#.......................#............#...........................#...................
............#................................................#....................................................#...............
.......#.................#......................#.....................#..........#................................................
.......................................................................................#.....#......#.............................
...........................#..#....#.......................#.............................................#...#......#.............
........#........##...#.....................................................#...........................................#.#.......
...............................#.........#......................#...........#..........#.....#...........#.#.................#....
..#.#.............#................................................................................#..................#...........
.....................#.................#............................................#...................#...................#.#.#.
........#...........................................................................................#............##...............
........................................................#........................................................##...............
..#........#.................#...............#......#..........................................#................#.................
..................#......#.............................#.............................#.....................#...#........#........#
....................................#.#.........#..#...............#...............#..............................................
...##..................................................................#....#..............#.#...............................#....
...........#....#...#........#..............................................#.......#.............................................
.................................#.............................#...................................................#..............
..........#.............................#.....#...............#..........................................##...............#.......
...........................................#......##...............#..............#.............................#...#............#
.#.#.....................#........#........................................................#..........#.........#.................
.............#.......................................##..........#.#..........................................................#...
.............#....................................................................................................................
..................##.....#......#........................#......................#........#........................................
.........................................................................................#.....#............#....................#
.#...........#....................................#.#.....................................................#......#...#............
#.#...#....................................................................................#............................##.......#
...#...............#................#...#...#.......................#................................#.#....#.....................
................................#........................................#...................#....................................
...#..#.........#......#......................#..#.....................#..........................................................
.................................................................#.......#........................................#...............
..................................##.......................##........................................#............................
....#....#.............#........................................................#....#.......#....................#..............#
.........##.............................................................#..#.#.....#...........##.................................
....#.........................................#......#.......................#....#..............................#...........#....
.##.....#...........................#........#...................................................#....#...........................
...........................................................#.....#.#...................#......................#......#............
....#............#......................................................#.......#............................................#....
#.......................#..........#.#............................#........#..................................................#...
#....................#.....#......................................................#....................................#.....#....
...#.....#.....#.................#...........#...............................................#....................................
...........................#..........................#............#............#...........................................#.....
.......#.....#..........#........#...................................................................................#........#...
#.....................................#......................................#.............................#......#...............
#.....#....................#.........................................................#................#...........................
.........................................................#....#............#..##.....................#............................
...#..............#.................................#.......#...................................................................#.
............................#........#...........#.......................#.......................#..........#..........#..........
....#..............#.............................................................................#.........#.....#...........#....
..........#................#.........................................#.#..#......................................#...#............
............#...............................................................................................#.#.......#......#..#.
.#................................#...............#.........................#............................................#........
....................................................#.......................#........#........................#.................#.
..###...............#...............#..........................................#.............#...............#..#.#...............
..#...#.......................................#...................................................................#...#...........
..........#..........#..#......#.............................................#......#..................#...................#.....#
.......#.....#.......#.......#.....................................................................................#..........#.#.
#........................#..#......................................................#......#...........#................##.........
....#.....................#...........................................................................#...........................
.......................#..........................#.............................................................................#.
.........#..............#...................#................#.........................#..........#...............................
.........#...........................................................#................................................#......#....
.................#.....#................#.............................................................#...................#......#
....................#.....................................................#...................................................#...
............##.................#...................#................#.......................................................#.....
.........................#............#.#..........................................................................#........#.....
............#.........#........................#..............................................##....#.......................#.....
......#...................................................#..##................^......#...#.......................................
............#.....................................................#..............#.##.....#...............................##......
....................#...................#......#......#......................................................#.....#...#..........
..........................................................................#....#..........#........#..............................
.#.................................................#..............................................................................
.......................#.............................................................#.....#..................#.................#.
...#...............#.#................................#..............................#.....#..#.....#..........#...............#..
...........................................#.............#................................................................#.......
#..............#................................................................................................................#.
..................................#.#................##..............#......#..................#......................#...........
..........#...................................#..................................................#................#............#..
....#.....................#......................#.....#.........#........#................#....#.................................
................................................#......................#.....#....................................................
......#.....#.........................#..........................................................................................#
............................................#..............#.................................#......................#.............
...#......#................................#...............#................................................#.....#...............
#...............#.........................#.#..........................................................#......................#...
..#........#......................#.........#............#...###.........#....................................................#...
............#.....................#........................................#..............#.........#........#....................
...#....#...........................................#.................#...............#.........................#.................
......#........................#..................................................................................................
...#..........................................#....................................................#...........#....##.#.........#
....................#..........................#....#..#...........................................................#..............
.....#...........#.........................#...............#..........................................#..#.#.....................#
................#.......#......#.............................................................#...#................................
...........#....#........##.....................#.....#.....#.....#.........................................................#.....
.#.#.........................#...#......#................................#.......##......#..........#...#..........##.............
...................#...................#......#............................................#...........#.......................#..
..............#.#.................................#.....................................................................#.........
......#............#...................................##....................................#...................#.#..............
......................#.............................#....................................................#...............#........
..........................#.......................................................................#.......##...#..................
...................................................#..............#...#.............#.................#..........#.#....#.........
...#......#....................#..................................................................#...............#......#........
....#......#.#.........#..#..#......#.....................................................#.................#.....#...............
......#..........#............#..............#.......#..................................#.........................................
.##.#.........................#..#.............#..........#.........................................................#.............
.....#..#......................##...........#........................#..#.............................................#...........
.....#...............................#................#...........................................................................
.##....#...................#............#....................................#..............##.............#................##....
....................#......##..............................#...#.................#...............##...#............#..............
.................#...........................#.....................................#.#........#...........#.........#....##.......
......#.............................##....................#......................................................................#
...........#........##...#......#...........#................#.....................................................#..............
......#.#.................................#...........................................................#...#......#........#.#....#
...........#......#....#...............#.......#................#.....................#...........................................
....#......#............................##.#...............##.#..........#.........#........#.................................#...
.#............................#................................#.#..............................................#.....#........#..
.#.#.......#.......#.....................................................................#..............#.................##......
.....#.......................................#.......#........#..............#.........#................#...#...#.................

850
data/Day7 Normal file
View file

@ -0,0 +1,850 @@
82042417: 7 5 192 12 8 82 8 1 6 9 1
2580: 252 9 212 98 2
3554112: 2 515 8 4 856
127435: 7 72 6 51 1 5 222 7 6 7 7
600421542065: 241 56 478 116 52 30
18582: 5 588 3 3 826 26 3 3 6
2907: 4 726 3
1334594: 8 834 492 5 94
11464362: 5 84 98 87 57 5 78 9
6165: 6 55 20 6 38 1
743449725: 8 9 2 269 246 17 3 3 75
265518: 1 99 3 6 149
215288: 5 3 4 4 2 4 8
7272: 717 8 1 4 9
79460193082650: 9 98 89 9 930 82 650
18337280: 616 3 37 152 2 32
869638795708: 57 4 852 31 466 38
418327253: 806 6 2 634 3 963 47 5
2408091537: 70 344 91 535 1
71186: 943 8 4 882 378 8 722
509646: 5 7 7 7 89 3 94 7 3 3 36 6
65366: 9 7 9 4 54 7 879
2229016465: 6 89 237 99 25 6 465
155: 14 2 13
2116248444: 3 933 2 7 14 6 9 6
393021858: 74 8 793 663 99
27222056614: 33 197 63 82 1 4
3327312: 8 93 613 16 1 5 42 9 14
113110367: 770 254 73 7 89 17
8780457: 235 642 949 7 960
1509: 21 48 49 12 93
34641: 337 8 75 1 65
11744767: 22 58 4 9 52 619
22531: 48 1 4 9 8 4 7 77 727 6 7
5252: 8 3 178 4 12 2
1522: 33 7 4 717 2
337392518: 58 7 831 6 518
116800: 32 4 18 8 20
2233246681792: 77 3 8 57 1 2 80 96 7 86
6584995387: 6 13 392 802 84 17
111052288: 9 25 3 660 2 642 4 6 6 6
53874653: 42 9 8 4 7 3 43 8 4 4 82
2749437: 3 475 2 51 79
1003: 35 7 9 95 421 436
11931540: 5 6 93 153 8
1651: 44 5 761 417 28
1926656: 71 9 3 57 908 6
3218061121: 42 5 8 108 433 737
69028: 590 295 7 693 14 7
7988724: 83 7 5 2 3 8 9 3 81 929 9
5533444: 5 6 306 35 6 98 83
51450028: 8 4 9 4 9 2 13 9 3 3 7 4
17146971648: 81 9 4 36 3 27 4 8 752
83507688: 9 2 5 421 645 588 291
1737402116: 435 33 931 5 633 26 8
12421568663642: 77 70 845 68 6 636 42
21760: 661 8 11 8 4
39002586: 525 64 7 106 98
1668692704: 36 83 626 4 8 5 399 56
335560368: 12 3 3 97 366 13 8 682
4244333: 42 2 689 4 35 93
4311422208: 364 685 5 818 4 8 9 4 3
286270: 7 47 221 5 4 1 7 5 1 6 7 3
44451241073: 51 31 89 470 281 3
5015508: 18 5 218 94 7 564
74778098: 22 55 1 618 98
487307415: 73 9 1 7 212 7 287 565
276695: 49 968 62 4 8 8 465 6
7449846: 6 2 737 5 192 824 62
1378920140201: 5 3 321 325 9 891 9 9
1407403: 33 4 76 1 343 763
1845694633: 1 5 677 3 1 77 18 9 6 3 4
707459260: 1 28 1 8 4 21 31 8 2 6 3
547220811: 912 60 24 115 5 685 8
137301177675: 32 7 828 55 507 675
7451982902: 7 6 789 413 1 9 7 8 6 97
1646069845: 4 81 4 5 7 50 6 98 42 3
423103729: 8 47 5 1 4 9 43 38 3 29
501413058: 9 260 25 42 7 54
6766589: 254 74 90 4 29
1407127249: 5 873 8 5 2 3 8 724 6 3
22767125: 1 9 25 3 851 7 125
586463195: 8 42 6 6 3 8 385 71 85
2160452: 94 30 766 4 328
14083090: 80 33 865 41 98
187721659: 131 56 720 83 82 9
1027: 11 2 79
32: 4 3 2 10 8
263256283575: 99 954 25 62 8 3 57 5
37170: 1 582 3 5 63
377341867: 3 8 30 783 9 2 26 218
4188173044: 81 116 782 57 6
979: 6 7 877 54 6
13232: 77 7 23 835
4264: 13 371 8 369 44
16377515: 394 815 9 7 51 89
4680761405: 5 71 2 60 7 61 3 29 77
32046982: 92 8 1 8 3 6 57 9 5 74 4
357612: 723 284 355 47 68 5 7
1979: 878 580 4 275 242
4041171478: 8 7 1 2 7 2 1 76 36 9 3 23
1071675: 74 965 35 3 5
59261728680: 54 7 4 1 1 7 22 785 4 81
84516446: 60 368 87 2 14
794869179: 60 81 9 95 5 9 7 29 1
3385720: 8 266 64 571 8
946846: 879 6 61 783 64
10066: 61 6 633 7 5
9229111592: 922 7 2 110 9 6 1 1 7 5
21742576: 7 6 5 1 4 4 833 76 1 2 4 4
1880: 8 8 314 723 4 707 3 65
4974334113837: 491 1 63 3 341 1 383 7
1980: 79 6 1 607 89 810
914511: 13 9 6 451 3 70 9 2 9 4 3
12037223: 2 2 7 249 5 224 4 7 5 2 3
14566483: 75 816 876 1 8 4 82 3
858: 6 5 1 1 1 78
931135319105: 57 957 3 49 17 5 945 5
3895507111: 8 507 768 42 711 4
204523320: 8 964 35 66 5 7 6 4 1
4416: 88 96 8 3
67034: 66 964 6 5 54 5
700206: 67 9 85 358 929 5 78
745422: 94 44 428 3 439
47440: 472 6 1 1 4 1 9 8 7 3 5 9
100915823046: 2 3 9 8 4 77 794 6 3 41 6
6064691: 6 95 6 4 691
76052: 1 77 975 2
65482: 6 535 13 2
6975: 1 700 621 39 34 5
18156255: 437 4 2 674 258
4268960: 9 415 9 7 44 41 8 4
92110132224: 6 52 2 5 4 6 16 97 969 8
549947: 196 28 4 5 5 81 5 717
854444814: 3 4 6 1 295 7 8 16 13
5281757: 286 3 15 1 6 29 6 3 7 7
252349405: 6 8 15 1 8 899 73 9 385
19673804880: 65 558 54 4 45 51 59
383488: 2 1 98 9 651 56 2 4
13621: 76 51 3 1 34 985 974
38967484: 8 1 5 8 59 2 24 39 482 2
27342247: 256 3 751 3 6 247
15734: 4 4 978 6 80
1571395: 17 3 46 2 7 8 7 95
83562: 62 1 5 6 4 1 16 649 4 1 6
61624782824: 96 95 529 908 7 500
1107112: 2 601 1 51 36 4
16778202: 8 2 1 5 7 9 2 6 165 5 6 1
138664: 9 8 3 3 906 46
844009: 7 68 6 2 6 203 602 2 5
9368306308: 9 3 33 35 21 9 6 30 6
43332149: 3 4 78 2 5 8 69 55 94
854701: 11 14 11 74 2 21 1
26847296: 433 62 776 4 516
279235: 6 93 42 5 5
3486120720: 7 661 3 5 65 7 8 8 5 8 64
5054: 49 1 54
84392160: 586 6 340 3 8
354455198890: 385 277 390 1 92
156146585: 78 2 137 9 579 6
16431072: 3 648 1 5 6 8 5 29 3 9 1 7
68684: 93 8 68 4
7385614: 246 3 55 70 42
66220840: 91 81 385 708 132
441696: 6 4 594 191 9 8 16 248
1698162977: 82 5 82 3 415 78 2 2 4 1
1035271918: 2 8 667 1 6 2 97 4 3 18 8
6240240: 3 7 8 1 39 8 21 9 3 216 6
23215498: 8 9 2 8 9 9 984 9 23 4 8 7
2722917882: 228 71 7 74 64 170
132544765: 556 3 76 76 765
254959068: 55 1 68 9 96 91 83
19458: 1 66 139 1 94
26352: 376 4 142 2 8 8 8
2071416: 5 8 5 7 4 6 159 7 6 1 80 9
10006390: 7 801 4 9 344 115 3
1206452203650: 2 14 696 71 65 810
142568786242: 1 584 9 872 6 62 37 5 1
25986: 17 2 572 96 37 567
5636751122: 4 52 3 6 74 4 41 670 9
9265906: 4 8 6 8 9 45 348 21 4 58
654: 4 5 90 5 2 6 9 2 1 3 199 6
1169: 8 4 5 9 1 78 3 7 61 6 45 1
13776086: 3 6 8 1 79 565 5 1 46 5 6
36373363267: 41 82 906 96 70
2851304: 75 6 44 800 104
1591645: 83 599 421 6 785 43 5
15591: 1 864 2 1 3 6
280828: 1 3 27 118 7
47926943: 52 37 223 3 68 753
2240: 208 2 6 6 975
808084: 545 6 7 5 900 1 90 1 7
965453818: 473 9 6 1 1 7 9 892 2 34
47700: 443 34 2 10 5
60081595: 594 6 80 6 35 72 888
51765424906: 96 5 4 493 3 5 7 4 906
9732: 67 74 7 3 80 7 5 6
252517230191: 835 8 3 3 2 378 174 17
84474639541600: 4 90 4 28 483 800 769
1189017437355: 4 2 323 95 5 37 887 99
587144716: 53 17 4 7 682 2 1 831 4
27031122: 4 2 5 1 79 66 4 36 4 1 6 3
102799: 3 922 973 21 4
346500171: 2 88 55 70 170
5132997233: 56 3 7 1 58 2 901 230 3
44065984: 57 76 99 63 72 66 30 4
105159: 659 607 1 83 81
10108602: 52 7 1 6 10 3 1 9 511
184443: 41 1 143 4 46
44700: 39 54 4 5 6 2
1316022593: 6 61 782 912 1 6 592
24538370210: 24 518 15 5 370 207
3324805704: 3 4 484 8 6 7 8 6 81 99
904128000: 45 5 30 4 272 554
11628152: 6 4 88 9 6 97 3 8 6 84 76
782106380: 790 99 63 18 62
2208104: 69 70 6 74 76
1187200644: 6 2 2 54 7 1 1 96 2 2 641
51106677924: 35 2 73 667 79 10 14
171010225: 3 1 73 5 89 1 2 10 225
7008750: 252 3 590 2 6 15 25
758394873: 758 394 863 4 7
1170182: 4 975 60 3
6427825250: 79 620 74 7 350 5 71
105568282766: 897 294 4 810 827 66
441936099: 7 4 5 5 620 288 1 9 99
10286: 238 4 186 4 6
6646548: 70 63 941 257 8
342551514: 2 9 457 3 3 7 9 31 6 9 1 4
794584: 30 975 4 3 31 196
32321: 1 95 339 42 74
264538971216: 3 79 1 127 458 2 536 6
47079978: 4 4 461 987 78
39123068781: 705 68 1 1 2 77 4 5 8 2 9
7983435214: 924 9 4 3 3 39 8 1 7 1 8 2
6820: 6 62 1 8 2
801941971: 43 2 736 9 890 964 3 7
16464: 2 33 97 5 98
2056737: 3 39 2 3 9 9 37 9 9 3 90 2
63530: 6 17 824 75 5
861664: 169 5 5 66 5 108 5 7 3 4
3076568831166: 9 7 8 9 11 28 4 1 66 6 6
552769: 895 1 44 5 83 7 2 3 14 7
521743: 5 77 3 53 61 9
367950978896: 919 2 1 7 5 45 3 9 2 896
5856046: 946 29 6 6 7 7 1 88 9 6 6
271166253: 5 7 291 832 32 804 9
4183386: 7 90 39 7 67 7 5
99538988: 192 749 41 3 860 7 1
922179: 922 151 9 19
389862: 332 35 86 77 31 3 11
35131284: 9 74 829 897 84 78 6
3268318: 728 89 4 254 64
97544442: 6 2 1 93 8 437 5
2195535: 6 3 3 701 58
4851: 86 1 60 9 8 251 3 7 371
18853063359: 822 46 6 831 4 2 1 1 98
75389016612: 37 71 949 9 8 1 25 7 3 2
37529: 3 8 3 519 161
12511908: 4 524 138 375 69 36
110080572017: 72 91 41 5 6 28 17
869149: 6 79 92 99 46
1858869754: 7 4 3 419 4 20 9 9 8 5 3 1
502936: 319 4 7 56 7
45611: 152 3 10
43680: 4 16 40 4 182
599510566: 6 427 22 424 6
1866641985: 802 6 663 485 585
278576: 73 945 659 1 4
1099308900: 843 93 123 7 2 8 3 9 61
114456696: 19 95 456 6 98
7193495: 5 862 3 4 40 52 8 2 7 8 6
443284986: 92 35 2 227 83 2 3 46 6
582: 1 93 488
11761: 12 4 234 84 2 88 3 1 3 4
4845605: 48 3 34 57 2 73 331 1
1690: 99 87 909 54 24 517
55019728696: 9 33 9 7 9 8 41 3 8 2 695
10962253824: 96 90 9 81 93 8 8 218 1
15494491: 5 11 333 9 94
1563280482: 287 366 34 5 585 2 8 2
731484438: 36 4 10 3 282 521 437
1121: 7 12 32 504 9
232722: 6 91 214 21 46 7
137003592: 22 663 50 8 98 4
51876: 259 8 9 6 5 69 24 2 4 6
3863340: 5 46 11 509 8 2 3
563742422208: 60 4 649 98 96 249
90736: 906 8 5 1 31 20
4528: 60 7 2 35 902 6 40 4 60
99699: 9 6 3 69 6
1214: 9 29 4 88 1 875 210
330644788: 71 87 93 46 8
5010: 7 2 69 21 21 1
14340: 17 50 4 449 20
1445594511764: 108 38 74 326 476 4
109588: 5 3 7 7 44 9 7 2 8 7 5 747
3209365: 323 23 48 3 3 3 10
1844721: 9 1 6 91 6 9 6 2 161 8 2 1
126894624: 9 30 2 4 7 6 2 4 2 567 21
7030625: 8 64 20 83 70 14 875 5
306035: 163 1 7 3 6 32
1187: 320 51 3 1 73
18151127284: 358 76 8 66 28 9 792 4
26862096682: 9 730 1 121 32 3 681 1
131688: 20 619 6 204 100 8
584180: 78 3 9 7 1 100 2 54 1 6 8
510077: 75 68 6 1 7
6295698: 503 116 9 96 698
3708373817: 9 8 9 31 3 5 33 1 521 1 7
1780365283548: 8 9 5 5 4 566 8 3 51 5 30
1100018: 664 1 6 4 4 2 275 8 8 2 1
3789: 8 467 50 1 3
474966: 59 358 13 8
109552579: 4 978 1 55 4 3 9 509
16318811991: 3 23 4 841 3 3 6 11 9 9 1
43842584: 913 1 6 3 2 4 7 2 5 1 23 8
70010209766: 80 9 5 5 3 9 3 3 2 6 221 8
56690634117: 776 58 3 9 7 1 2 47 73
70605: 250 4 3 3 702 7 4 19 1
24992234: 4 89 702 29 6 935 67
59286529134: 21 8 408 8 84 378 3
114794780: 7 3 2 4 3 46 8 8 9 8 7 78
34225880: 718 7 37 130 52
372240: 5 72 88 3 1 1 752
92561: 3 4 7 8 908 7 8 9 97 6 8 9
1788: 40 946 802
10280: 233 2 987 603 5
1022892576: 11 1 7 44 95 6 2 6 4 6 4
18581414: 37 93 2 27 17
42933785: 6 423 32 925 860
586: 1 6 82 94
6399: 8 8 8 7 9
678687802: 2 4 8 7 87 859 7 8 40 8 4
8668343520061: 3 7 6 23 8 15 5 12 48 61
1838: 4 6 56 8 31 10 1 8 780
21041178: 612 18 6 23 2 83 3 4 6 1
19897605: 91 5 694 65 7 9
8775425450: 835 740 5 74 2 5 2 3 7 8
3871: 4 6 55 3 7
558008: 9 8 175 7 7 53 9 6 44 1
2919622388: 811 1 6 3 1 1 1 9 1 2 5 1
1059118768: 4 17 8 9 507 1 5 5 9 9 3 9
263727849491: 1 9 27 337 54 6 127 9
14381413: 1 7 4 573 9 273 796 1 3
82052628903: 5 721 8 8 5 5 448 65 9 7
333340: 3 11 24 9 3 6 4
1074564: 65 5 146 3 228
21086456116: 2 8 7 1 2 7 5 40 94 50 66
58793: 8 342 56 1 7
3461525: 41 55 15 830 425
19055232: 2 7 536 4 2 9 7 8 1 68
1383999: 2 7 40 368 1 748 10 99
14162750262: 9 7 73 5 1 3 5 755 6 8 4 8
21591892257: 790 91 178 7 17 39
152259: 3 49 99 8 126 2 49
60458946: 6 23 2 195 88 8 1 5 60
130368: 9 7 64 21 1
42810084: 1 791 72 6 35 6 9
10299: 19 71 34 7 386 225 7
630740: 9 621 366 374 1
607: 56 4 1 7
1413736709100: 918 55 596 8 6 7 5 9 2 8
898415963432: 326 84 83 2 2 58 571
1438948288006: 69 73 737 7 2 400 6
1152: 213 5 8 3 67 8 1
5714: 33 55 4 6 68 1 3 29
170131421784: 6 2 686 5 4 27 66 4 59 8
4060: 1 3 23 5 30 10
7706289: 13 4 53 838 9 943 93
336: 6 54 6 2 4
283524329545: 6 4 4 88 9 319 6 5 9 5 4 5
56777: 86 3 793 54 23
9525: 3 731 973 9 3
120152808: 8 406 9 6 2 37 76 54
271057945: 9 45 211 589 5
881144: 41 87 4 42 589 1 17
991: 7 5 3 904 6
2834614: 78 2 440 497 41
13580362: 20 679 34 8 17
36635: 4 31 85
1138576325: 71 5 805 1 2 16 5
2940716494: 49 88 96 24 3 2 296 6
4273426: 1 6 2 106 65 161 5 8
956124: 3 7 1 5 3 31 5 1 977 7 36
569155356942: 7 5 4 8 3 4 5 4 77 3 1 945
44416728: 2 3 147 466 3 5 757 36
3126568575: 9 6 4 2 1 7 38 56 857 2
2205314: 5 867 6 508 86
24302: 9 15 278 4 20
2859438598: 72 266 395 1 845 2 1
37923486: 2 4 4 4 3 8 331 62 4 14 4
14138920: 4 69 8 6 38 5 40 39 5 26
26029: 9 464 2 323 3 4
4574281: 2 852 4 8 125 5 961 5
919442: 3 2 6 9 2 12 7 622 2 269
11187126629: 1 97 9 174 3 501 7 5 1 7
1732752: 2 4 4 3 2 7 1 54 1 772 9 7
7686: 5 3 6 6 98 702 9
3031374168: 11 956 1 8 6 36 8 2 7 1 8
644520102: 925 715 3 131 102
4765080664800: 7 9 1 762 14 7 200 709
96471: 1 9 939 228 6 6 3 27 3
30985: 30 4 5 82 3
4059067834: 2 3 18 1 98 88 78 27 7
48735: 2 9 60 8 515 45
1369: 3 7 5 151 63 4 4 70 1 6
636174772137: 93 5 3 63 4 85 7 84 9 9
4851957505: 4 84 4 9 763 8 5 8 8 4 3 1
244514: 355 7 98 83 901
1405481: 1 6 5 57 6 39 7 3 3 3 71
20940131: 4 48 339 1 5 8 972 4 11
205146: 408 8 493 57 1
13543116: 4 498 5 742 1 36 3 93 1
5490888: 3 92 90 371 1 8 6
133082684295: 2 135 64 713 79 605
2965227329635: 74 7 39 6 386 1 2 572
73621: 99 1 780 8 83
561700: 4 92 5 1 386 9 2 8 82
970086174: 932 13 2 319 78 172
1911986999: 2 977 775 9 280
296273268776: 88 29 410 732 68 776
12458895913: 34 550 46 6 601 35
15665229: 296 20 294 83 18 9
2577418: 530 3 4 81 2 2 4 960
18856: 96 92 56
1419: 56 17 68 1 7
22459778: 3 2 78 8 685
119345444: 36 3 830 4 5 3 3 5 1 3 3 5
2679263061: 3 880 394 273 883
13714046195: 8 3 4 237 829 900 95
75918: 75 91 6
3233825: 5 429 6 85 7
6998621: 2 1 711 8 5 3 7 5 90 7 1 7
24840: 79 266 2 36 1
133350455172: 911 5 8 177 9 282 146
122836: 25 53 6 48 6
66638: 54 4 7 44 16 85 9
729258: 65 8 723 9 57 94 9 1 5
6443892: 50 8 4 85 562 39 2
5219221770: 988 8 9 4 4 9 6 83 3 42 7
103209182: 19 1 14 388 951 231
169488: 8 9 102 360 22
904694402: 3 9 19 3 2 9 7 1 54 20 8 2
33766336296: 9 2 55 957 588 822
135034: 18 748 30 7 87
1398: 1 74 946 293 84
185237973760: 530 78 82 665 64
3731185: 64 25 8 29 4 9 5
4751567577720: 388 521 51 569 810
28765978: 34 830 487 58 9 7 8
45629472867: 582 98 84 1 8 66
39721705915: 273 291 41 183 5
47443: 5 81 7 229 74 9
362852784: 518 9 6 138 94
34762477: 8 6 15 559 1 3 7 7 47 7 1
962208: 9 4 9 1 8 6 4 73 208 18
277488992: 6 6 776 3 21 88 4
2510205: 5 62 3 2 37 7 5 52 141 6
31693936: 3 61 5 3 5 431 77 351
1149703276: 8 499 8 36 6 4 7 9 797
8692151: 7 1 727 1 3 6 73 1 2 9 23
164112488: 1 6 7 1 9 54 67 6 2 6 5 8
136879759121: 8 8 9 9 83 903 33 44 3 6
4501841: 539 835 1 112 6 57
79965188: 50 28 96 7 23 3 332
13294611000: 129 11 150 90 694
44580515: 6 6 3 672 1 9 27 7 7 87 7
36409: 7 634 17 8 769
721870: 99 622 8 65 5
980549: 3 3 2 28 552
197065482800: 9 912 7 685 8 256 6 93
1492605: 325 7 152 615
216885264: 9 9 6 3 435 42 720 8 2 5
784513608: 98 6 5 4 6 58 2 6 4 6 79
43153004: 4 2 1 646 7 7 3 5 9 7 639
64535869440: 922 84 28 93 4 80
5921923803: 1 659 986 85 91 65
95230827: 586 18 15 4 1 641 3 6 3
659839: 417 66 86 90 839
2823500: 48 15 44 51 500
111615927768: 6 9 6 8 9 85 8 3 277 6 3 5
1233: 59 1 3 8 658 77 2
20010714: 185 63 584 863 7 12
179457: 685 86 92 817 3
1274865556: 7 182 8 655 52 4
311254962: 9 953 3 1 336 3 6 97 6
710778: 884 8 2 2 5 327 6 3 1 2 6
1009083693: 438 732 230 9 3
11899845: 82 9 78 2 976 2 1 7 905
258: 2 31 5 93
146136236: 4 510 18 2 5 3 6 767 6 6
500228: 6 343 1 1 1 1 323 6 5 7 8
4701: 9 58 70 11 1
5772: 58 8 9 127 8 4
32851085: 7 904 9 8 4 9 3 6 5 8 3 61
850168170046: 2 79 4 1 389 390 5 6 43
204708384: 9 757 3 1 2 5 6 1 667 9 9
99253310718: 281 3 3 8 7 7 6 3 7 679 4
41947138: 49 7 896 836 2
495: 8 1 55
1211838288: 561 44 208 636 59 4
3061539894: 6 7 463 63 2 6 51 49
1261471276241: 5 629 8 1 67 8 1 906 4 1
26282899: 3 6 156 4 3 195 4 9 1 7 3
59211: 648 7 31 61 9
314847: 85 2 37 253 3 2 621
225678: 1 695 43 13 3 78
55: 1 6 49
6505384491: 7 7 199 900 9 357 584
47469174312: 61 658 9 306 1 4 322 3
7426295: 6 365 31 2 47 48
622850043: 999 2 7 3 87 5 7 9 6 9 1 2
47672: 24 4 58 871 2 1 305 9 8
1013: 4 6 1 1 8 88 41 15 6 4 49
4719423039: 7 9 990 221 59
32727139: 5 5 59 52 44 84 8 31 67
18384030: 264 7 6 8 410 284 4 2 7
2348354059: 906 72 36 16 189 6
2856248987: 4 3 45 305 8 24 87 2 8 8
2953398: 808 14 2 1 58 179 77
10591944: 5 666 8 53 6
1423704: 23 7 2 84 6
52565760000: 208 2 5 81 375 832
214016947200: 420 28 89 710 288
4717682123: 31 40 5 1 6 6 6 7 4 3 8 25
3381089: 61 9 69 7 3 5 54
5508468: 868 47 7 135 63
202480566: 391 4 4 729 883 3 3 59
18954805: 6 8 4 376 5 1 8 621 7
5125: 4 4 65 4 52 5 64 636
85567207572: 771 6 4 7 55 8 7 4 2 9 14
1196283387: 8 69 5 72 31 551 38 7
143411: 35 4 6 2 279 1
8849012251: 884 90 122 5 1
23771104870: 2 248 2 7 8 474 43 5 7 1
24308: 55 7 8 48 206
154616070: 196 98 5 983 107
49352688: 987 25 807 537 2
1399167: 3 8 9 72 694 3 3 7 8 6 3 4
1746482400: 5 5 6 365 1 360 47 65 4
17442000: 66 2 36 4 7 3 764 204 9
9369297541: 4 16 413 9 2 25 38
4434524: 85 4 8 1 2 18 37 1 83
538278646: 12 9 623 6 8 4 6 4 79 9 7
25674303: 59 712 925 4 9
623352364: 1 538 579 7 9 65
4136655595: 7 2 947 4 6 1 4 202 78 7
1041: 9 31 108
1015482150: 4 9 8 2 6 41 611 2 1 50
6710: 1 7 39 8 72
16757169: 96 605 612 659 39
690976730: 2 9 1 3 8 22 811 4 3 88 6
6966: 5 4 129
666851462: 6 4 870 2 7 5 5 1 2 6 7 9
519190: 2 2 404 6 12 1 8 3 5 5 70
381850200: 9 64 6 405 4 405
5072464: 943 9 665 6 2 963 7 8
433183766518: 6 9 894 77 912 82 36
606665867: 3 4 133 2 537 620 5 82
26531: 94 2 6 46 35
1462819: 5 379 3 83 1 69 77 5 9 4
124816429: 5 1 4 9 3 4 1 895 2 4 4 31
84154546878: 2 8 468 6 7 73 8 7 8
16190100: 7 3 135 8 1 6 5 4 4 9 52 9
21573: 89 615 3 3 452
6349804023: 62 987 5 35 4 695 9 7 4
335814: 939 2 585 999 97
219004174: 94 807 6 55 7 1
5581443: 4 1 47 40 8 95 64
2491375328: 29 962 838 4 4 3 8
57538: 958 15 4 9 49
22964234: 2 1 29 63 818 416
1024849747837: 6 3 1 291 9 9 5 2 5 6 6 43
318448: 55 4 3 82 13 448
30033360700: 417 13 720 6 97
173508: 87 35 6 952 1 3 9 483
21110947: 3 465 9 8 3 5 7 8 1 11 6 1
2695000228: 28 4 7 3 22 696 92 2 74
4568231: 6 9 5 992 39 78 4
239039: 6 2 3 8 6 5 1 75 2 78 409
10096752: 276 5 9 5 7 53 114
198559200: 20 50 8 669 530
12702301242240: 6 9 940 6 6 41 408 80
175107: 1 49 92 3 205 2 8 439
39551458: 43 891 55 9 57
13285608: 26 19 10 163 1 9 31 31
405744027: 7 30 3 8 95 9 8 632 24
2997721: 92 479 16 68 9
523183: 398 3 2 652 78 201
6951812: 3 769 8 64 3 2 5 481 9
3435759673472: 844 18 949 7 6 734 7 2
124233456: 7 643 93 4 4 535 3 29 7
110606134088: 1 657 21 7 766 761 1 8
2690276461191: 372 21 66 76 813 889
1539522: 59 2 2 9 31 9 595 3 186
3634947456: 8 3 412 691 532
2105559380: 183 765 9 852 7 2 835
4690009: 66 743 330 95 46
367735534: 45 966 942 2 4
13146574: 57 3 96 4 7 78 544 8
170181372255: 15 87 855 9 779 4 994
9309567: 113 5 4 519 38 78 705
50277: 1 55 3 865 2 47 58
324895639860: 86 954 35 35 396
1361: 923 1 437
10597271: 716 148 12 2 457
816105568: 889 9 34 4 9 3 686 11 3
172116525: 69 9 1 18 9 35 5 137
62149: 13 478 2 1 9
155664243: 8 138 141 24 3
12261286139: 66 7 8 8 5 94 3 5 2 965
332109: 3 1 8 5 3 1 9 5 817 9 3 3
54259531200: 7 70 643 240 7 90 76
39489024: 547 94 768
38958: 790 777 8 450 3
8641850: 2 6 380 2 795 352 3 14
193723: 14 878 9 5 4 2 9 60 12 7
16059120: 28 50 75 2 7 3 84 605 1
29897: 4 5 6 18 999 158 4 9 8
8940153627504: 336 778 342 27 504
1965619: 61 11 91 3 19
17582495: 1 69 7 7 1 38 6 5 4 9 5 90
3747060: 745 26 9 3 180
1284121: 39 19 60 41 9
6465: 10 8 24 7 7
75352: 4 3 558 6 4
987: 97 1 5 2 7
31695169: 60 528 14 1 169
1275278: 456 972 89 433 2 7 1
6139: 2 650 9 2 8 9 79 5 9 4 1 2
2625916: 94 3 32 87 1 606
401166: 26 5 8 1 39 2 399 38 3
13159342272: 8 978 4 292 5 2 6 8 24
188587: 2 7 2 6 429 6 1 82 98 7
104092779157: 34 9 918 2 722 39 9 5 7
2785524088: 64 779 630 1 43
38869: 587 4 891 3 4
14297230: 6 97 9 8 73 6 2 2 4 8 30
49782092802: 5 14 8 9 7 507 47 544 5
97002793: 4 4 9 4 4 870 2 6 3 60 7 2
11629747: 4 692 7 6 7 4 3 5 2 920 1
54441: 67 3 270 94 77
15210: 345 83 72 7 30
185641372: 68 3 4 65 32 2 3 4
636407522647: 86 740 75 22 499 149
5931209262: 4 9 5 6 3 795 8 7 22 3
21897266: 29 55 52 323 34 74
103008144: 444 580 3 6 4
583104: 505 5 5 953 4 4 8 1 96
3097084: 86 36 919 6 159
45450: 4 54 50
822804080: 595 83 3 2 98 85
812543797144: 21 9 746 55 830 3 81
61531143092: 28 9 1 91 325 96 8 86 4
291242: 4 5 4 6 246 8 7 9 2 7 54 2
659813: 733 9 8 3 2
13703922939: 13 703 915 7 937 2
3385407968629: 8 5 490 10 396 8 629
3156: 5 493 1 372 319
2305744653: 6 1 7 45 6 7 34 35 99 3
22755422659279: 43 976 93 84 616 79
1529611: 6 4 560 97 27 4 36 75
185929: 356 4 21 1 488
10921: 8 772 13 8 2 17 754
19474: 1 7 36 3 4 9 1 4 9 7 70 1
14418986: 804 49 366 46 4
805143: 7 8 63 852 3
605682837: 60 8 1 3 8 9 9 4 8 418
3328867490: 876 38 674 63 27
9092: 30 119 61
674618845700: 663 72 343 6 6 9 763 2
873252624: 202 5 4 5 6 7 43 8 59 3 4
2234424: 46 39 82 23 471
67994313730: 7 6 53 9 6 19 1 6 521 3 7
7020: 76 33 584 9 10
8490829762800: 908 116 235 495 77 9
1243674: 32 3 89 27 1 4 4 7 887
40115314: 2 21 872 670 987 2
63515106: 1 969 4 72 91 18
3642671: 36 811 63 2 4 68 4
98830: 844 13 9 6 76
2118210: 5 6 3 5 178 1 170 2 2 6
12759: 49 5 73 3 485 448
1113420: 867 737 3 8 77 3
139374: 8 48 37 331 23
94905: 3 8 21 3 1 783 7 9 204 9
37670: 4 75 79 68
120506596: 89 68 83 9 5 5 8 5 5 8 8 7
1288: 6 13 5 2 896
3957763: 74 5 5 77 6 3
32266: 240 2 19 7 9 7 39 783
940221360: 86 5 3 410 35 39 240
10564: 2 330 5 3 8 7 649
48283977: 277 7 17 372 2 202 53
251997386: 67 3 7 6 4 5 9 3 184 9 8 6
819485: 77 4 3 5 527
9913289: 23 8 1 3 4 630 1 4 8 2 4 9
12445: 78 4 6 4 2 4 3 2 6 327 8 5
38330265: 7 5 89 8 31 5 894 6 9
1888605: 4 53 30 5 40 17 64 45
752008400963: 751 98 2 8 341 59 963
290444: 7 41 1 2 506
1542226852: 83 2 8 48 2 775 7 923 5
138965442: 9 8 2 3 5 8 4 86 305 7 66
2015410: 3 46 8 9 4 4 293 498 3 4
94446951669: 98 4 6 355 9 27 483 9
2560057568: 487 69 81 938 30 76
325037568: 88 57 27 60 10 192 4
34041139: 2 9 15 997 44 139
91735876: 73 52 7 297 353 1
6681558019: 146 791 113 512 3
2377642284: 3 3 44 12 1 2 52 8 476 9
612191967542: 306 2 1 187 4 96 7 54 2
5617962: 79 5 7 9 5 1 9 5 61 9 56 7
377664: 9 6 562 1 7
351084461052: 622 2 3 85 103 182 52
24245: 7 9 51 1 7 7 5 8 1 6 240 5
421642386: 29 688 55 54 17 2 99
1711583639: 678 6 1 51 14 260 6 69
22620616: 1 705 164 26 593 23
256245692: 88 3 8 31 1 1 280 8 94
50489: 12 689 2 7 7 680 9 8 9
46104: 8 287 8 84 2
4085258167: 48 29 359 303 77 67
889: 7 2 728 56 89 7
1306: 51 6 785 4
2273: 1 9 9 2 9 66 37 256
56074716672267: 7 5 8 82 29 96 208 269
30955126672: 934 7 331 6 65 4 596
127980: 488 45 5 48 60
535484167: 617 54 266 7 1 3 2 16 7
66915820: 76 7 5 52 2 866 5
470840167808: 3 8 3 8 6 2 751 5 244 4 8
106862: 5 1 3 3 38 5 7 7 5 433 5 5
2962152: 37 8 21 52
1085092459: 640 58 7 48 87 619
9395566: 6 692 4 351
58598361138: 76 8 710 494 9 9 137
130059: 264 15 465 2 322
33555: 5 67 55
1377820190: 7 2 1 6 7 3 4 501 4 1 1 8
8424: 9 9 19 23 558
2684223: 2 6 8 3 11 741 3
22014969: 72 94 44 3 96 9
5185353762: 1 145 656 2 89 7 2 6 2 6
51226935: 573 894 62 672 1
44553: 6 627 70 243
90331578: 8 890 453 7 95 3 9 74
1170: 5 55 25 5 13
94308: 4 8 259 6 58
2000707: 490 50 8 9 2 6 5 27 3 7
158802343: 8 1 544 4 72 7 33 7
28522992: 5 501 271 208 784
415148: 6 7 99 828 441 600 8
341844522: 81 422 2 45 21
322752: 59 55 1 3 6 1 32 9 6 718
6579809: 8 35 788 7 5
2010664: 958 960 524 2 600
1306995: 9 4 168 5 76 7 19 5 37
24078: 23 4 260 6 152
855504: 115 7 6 709 457
7362818928: 64 4 3 5 3 68 2 3 4 5 28
133587328084: 38 413 665 128 84
2600: 291 229 5
82140: 2 4 9 66 221 45 2 6 48
7429: 97 65 83 43 3 6 25 4
7050943801: 14 866 62 85 90
1457: 27 543 1 790 96
39465: 20 3 638 437 748
52926628172: 2 281 5 1 5 2 85 8 2 6 22
14402304: 8 3 1 6 49 5 5 78 224 9
19161187: 5 7 77 391 9 15 186 1
46189: 4 603 6 6 93
5096011: 6 5 8 98 1 2
8337: 513 310 8 4 21
637146: 535 635 72 513
163586304: 282 3 5 2 2 24 7 276 2 6
38979: 6 42 6 9 71
4025184: 683 980 35 131 69
385600: 7 9 753 1 1 32
4204547: 5 7 513 8 4 267 270 8 1
2168: 300 956 5 903 4
897176: 9 96 43 7 866
207451: 9 3 27 979 714 261 51
9786368: 188 6 82 8 177 1 3 8 76
45647: 6 7 52 2 70 7
72049657270: 1 799 551 74 9 6 70
854299810000: 8 75 5 68 49 7 92 91
201480450: 27 707 5 3 814 4 75 6 1
1044050: 753 59 3 61 554 7
32520810: 65 7 51 7 6 637 7 1 5 6
117229532: 1 379 3 581 146
3048545: 12 254 440 9 96
1151528814: 6 3 458 5 6 49 8 6 45 1 9
1468: 21 8 82 6 738 59 5
24718953: 3 4 51 4 784 5 1 8 79 7
9624368954: 961 7 2 5 365 49 346 6
7705207125: 99 917 125 97 7
1385267: 8 12 6 82 82 25 95
329120663: 4 8 2 1 8 4 6 680 5 8 3 8
4354855: 1 6 1 1 7 82 1 6 5 2 647 6
513338599: 3 7 476 338 599
2575296: 218 9 328 288 4
153551885: 166 3 11 20 454 5
23653336: 7 15 40 36 826
1175289: 9 4 125 2 8 9
582912792: 1 5 1 9 9 59 33 5 8 1 7 99
7639418701: 7 1 629 9 1 418 65 3 48
26000388461: 500 52 388 4 6 1
11148480: 10 7 7 948 24
4375098791: 5 2 6 3 31 5 9 8 4 698 1 4
173167644: 7 7 6 1 5 27 8 5 44 8 867
4440: 3 7 2 1 5 2 5 1 2 335 91 8
79949528272: 3 740 73 9 3 3 4 827 1
268345: 44 435 2 55 7
1391: 9 37 4 1 58
719: 7 23 4 66 9
41747731344: 6 608 7 1 2 4 987 6 2 6 8
52958316813: 87 63 902 39 67
1113623: 12 3 1 3 357 8 45
66704: 28 316 372 41 1 88
13865: 231 60 4 1
22316427322: 99 51 97 9 603 9 321
794426: 785 6 3 3 2 4 4 50 9
336672: 45 35 11 5 42
3647896: 96 1 67 7 6 69 560 56
4108432021: 882 9 2 1 2 1 461 50 2 1
33172170: 1 5 4 4 10 6 2 9 9 23 4 6
3958503: 87 65 70 1 3
5605088: 3 1 4 7 8 5 119 5 8 7 4 7
1148738115: 535 7 3 68 8 333 113
2388379500: 8 827 880 86 5 650
78084: 5 6 83 66 6
1399069: 175 4 977 8 5
1784175537: 6 40 14 8 821 85 7 242
5060096: 1 9 4 7 1 54 3 9 865 8 8 8
2984239: 32 793 91 6 70
54527: 5 35 10 27 1
2625838: 142 1 528 91 5 43
11970: 78 7 4 35 70
9750784240: 9 58 7 32 41 8 4 240
3670629: 1 42 7 95 82 8 131 7 2 1
269878: 4 67 53 19 2
29729866375: 328 7 4 81 8 196 458 7
1650454: 841 809 45 4
958406: 1 1 536 894 38
15047959679: 8 27 8 9 8 5 26 243
110153: 9 9 328 35 83 45 9 9
155720: 183 46 229 18 62 5 6 1