diff --git a/AdventOfCode2024.sln b/AdventOfCode2024.sln
index 1917065..f6e0b94 100644
--- a/AdventOfCode2024.sln
+++ b/AdventOfCode2024.sln
@@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day10", "Day10\Day10.csproj
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day11", "Day11\Day11.csproj", "{FE187D99-D153-4909-959C-FA9C81444D11}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day12", "Day12\Day12.csproj", "{F07A6D55-53F8-49AC-BD5E-689A0D995C84}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -75,6 +77,10 @@ Global
{FE187D99-D153-4909-959C-FA9C81444D11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FE187D99-D153-4909-959C-FA9C81444D11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE187D99-D153-4909-959C-FA9C81444D11}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Day12/Day12.csproj b/Day12/Day12.csproj
new file mode 100644
index 0000000..e0c4c2e
--- /dev/null
+++ b/Day12/Day12.csproj
@@ -0,0 +1,16 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+ Always
+
+
+
+
diff --git a/Day12/Program.cs b/Day12/Program.cs
new file mode 100644
index 0000000..6e52179
--- /dev/null
+++ b/Day12/Program.cs
@@ -0,0 +1,125 @@
+var lines = File.ReadAllLines("input.txt");
+var grid = CreateGrid(lines);
+
+int[][] directions = new int[][]
+{
+ [-1, 0],
+ [0, -1],
+ [0, 1],
+ [1, 0]
+};
+
+var part1 = Part1(grid, directions);
+
+Console.WriteLine($"Part1: {part1}\n");
+
+int Part1(char[,] grid, int[][] directions)
+{
+ var rows = grid.GetLength(0);
+ var columns = grid.GetLength(1);
+ var neighbourDictionary = new Dictionary<(int, int), HashSet<(int, int)>>();
+
+ for (var i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < columns; j++)
+ {
+ neighbourDictionary[(i, j)] = new HashSet<(int, int)>();
+
+ foreach (var dir in directions)
+ {
+ var di = dir[0];
+ var dj = dir[1];
+
+ if (i + di >= 0 && i + di < rows && j + dj >= 0 && j + dj < columns)
+ {
+ if (grid[i, j] == grid[i + di, j + dj])
+ {
+ neighbourDictionary[(i, j)].Add((i + di, j + dj));
+ }
+ }
+ }
+ }
+ }
+
+ var regions = new List>();
+ var remainingPoints = new HashSet<(int, int)>();
+
+ for (var i = 0; i < rows; i++)
+ {
+ for (var j = 0; j < columns; j++)
+ {
+ remainingPoints.Add((i, j));
+ }
+ }
+
+ while (remainingPoints.Count > 0)
+ {
+ var point = remainingPoints.First();
+ remainingPoints.Remove(point);
+
+ var region = GetRegion(point, neighbourDictionary);
+ regions.Add(region);
+ remainingPoints.ExceptWith(region);
+ }
+
+ return regions.Sum(region => Perimeter(region, neighbourDictionary) * region.Count);
+}
+
+int CountSplitSegments(List<(int, int, int, string)> lines)
+{
+ if (lines.Count == 0) return 0;
+
+ var segmentCount = 1;
+ for (var i = 1; i < lines.Count; i++)
+ {
+ var prev = lines[i - 1];
+ var curr = lines[i];
+
+ var isContiguous =
+ (prev.Item1 == curr.Item1 && curr.Item2 - prev.Item2 == 1 && curr.Item3 == prev.Item3);
+
+ if (!isContiguous)
+ {
+ segmentCount++;
+ }
+ }
+ return segmentCount;
+}
+
+HashSet<(int, int)> GetRegion((int, int) point, Dictionary<(int, int), HashSet<(int, int)>> neighbourDict)
+{
+ var region = new HashSet<(int, int)>();
+ var remaining = new HashSet<(int, int)> { point };
+
+ while (remaining.Count > 0)
+ {
+ var curPoint = remaining.First();
+ remaining.Remove(curPoint);
+ region.Add(curPoint);
+
+ var newRemaining = neighbourDict[curPoint].Except(region);
+ remaining.UnionWith(newRemaining);
+ }
+
+ return region;
+}
+
+int Perimeter(HashSet<(int, int)> region, Dictionary<(int, int), HashSet<(int, int)>> neighbourDict)
+{
+ return region.Sum(point => 4 - neighbourDict[point].Count);
+}
+
+char[,] CreateGrid(string[] lines)
+{
+ var grid = new char[lines.Length, lines[0].Length];
+
+ for (int i = 0; i < lines.Length; i++)
+ {
+ for (int j = 0; j < lines[i].Length; j++)
+ {
+ grid[i, j] = lines[i][j];
+ }
+ }
+
+ return grid;
+}
\ No newline at end of file
diff --git a/Day12/input.txt b/Day12/input.txt
new file mode 100644
index 0000000..bc7b463
--- /dev/null
+++ b/Day12/input.txt
@@ -0,0 +1,140 @@
+CIISIIQQVZZZZZZOOOTTTTTTTTTTTTTTTDDJAAAAADDDDDDDDDDVVVVVVVVMMMMMMMMMMHHHHHJJJHHHHHHVVVVVVVVVVVVVVVVVVVNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOO
+CIIIIIIQVVVZZOOOOOTTTTTTTTTTTTTTDDDDDAGAASDDDDDDDDDDVVVVVVVMMMSMMMMMHHHHHHHJHHHHHHVVVVLLLVVVVVVVVVVVVVYNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOYYYYYO
+CCCIIIXVVVVVOOOOOOOTTTTTTTTTTTTTTDDDDDGGAAAAADDDDDDDVVVVVVVVVSSSSMMMHHHHHHHHHHHHHVVVLLALLVVVVVVVVVVVVVYNNNNNNNNNNNNNNNNNOOOOOOOOOOOYOYYYYYYY
+CIIIIIXVCVVVVOOOOOOTTTTTTTTTTTTTDDDDDDDAAAAAAADDDDDDDVVVVVVVVVSSMMMMMMHHHHHHHHHHHHVVLLLLLVVVVVVVVVVVVYYNNNNNNNNNNNNNNNNNOOJJJOOOOYOYYYYYYYYY
+CIIIIICCCCVVOOOOOOOOTTTTTTTTTDTTDDDDDDDAAAAAAADDDDDDDVVVVVVVVVVSSSSMMMHHHHHHHHHHHHVLLLLLLLVVVVVVVVVVVYYYNNNNNNNNNNNNNNNJJJJJJJJJYYYYYYYYYYYY
+CCCCZZZCCCVOOOOOOOOHHHTTTTTTTDDDDDDDDDDDDAAAAADDDDDDDVVVVVVVVVSSSWWCMMHHHHHHHHVVVLLLLLLLLLVVVVVVVVVVVVVYNCNCCNNNNNNNNNNJJJJJJJJJBYYYYYYYYYYY
+CCCCZZZCCCCOOOOOOOOOHHHHTTTTTDTDDDDDDDDDDAAAPDDDDDIIIVZZZVVVVVSSSCCCCCRHHHHHVVVVVLLLLLLLLVVVVVVVVVVVVVVVCCCCCNNNNNNNNGGJJJJJJJJJYYCYYYYYYYYY
+CCCCCZCCCCCOOOOOOOOHHHHHHHTTTDTDDDDDDDDDDDDDDDDDDIIIZZZZZVVVVSSSCCCCCCCHHHHHHHHVRLLLLLLLLVLVVVVVVVVVVVVCCCCCCNCNNPPJJJJJJJJJJJJJJJJYYYYYYYYY
+CCCCCCCCCCCCOOOOOOHHHHHHHHTTTDTDDDDDDDDDDDDDLLLIIIIIZZZZZIVVSSSSSCCCCCCRHHHHHHHVLLELLLLLLLLVVVBBBBBVVEVCCCCCCCCNPPPJJJJJJJJJJJJJJJJJYYYYYYYY
+CCCCCCCCCCCCOOOOOHHHHHHHTTTTTTTDHDCCCCCCCCCDLLZZZZZIZZZZZISVSSSSSSCCCCCRHCHCCGGGGLLLLLLLLLLLLVVBBBBBVVVCCCCCCCCNCCPJJJJJJJJJJJJJJJJJYYYYYYYY
+CCCCCCCCCCCOOOOOOOFHHHHTTTTTTDCCCCCCCCCCCCCDDLZZZZZIZZZZZISSSSSSSCCCCCCCCCCCCCCCGGLLLLLZLLYLLVVVBBBBVVLJCCCCCCCCCXJJJJJJJJJJJJJJJYYYYYYYYYYY
+CCCCCCCCOOOOOOOOOOOQQQHTTTTLTTCCCCCCCCCCCCCCCCZZZZZZZZZZZISSSSSCCQQCCCCCCCCCCCCCGGLLLLLLLYYVVVBBBBBLLLLJJJJJCCCCCXJJJJJJJJJJJJJJJYMMMYYYYYYY
+CCCCCCCOOOOOOOOOOOOQQLLTTLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZZSSSSLCCCCCCCCCCCCCCGGGGGYSYVVYLYYYVVVLBBBBLLLLJJJJJJJJCCXZJJFJJJJJJJHHHJJMMMMMMMMMY
+CCCCCCCCOCOOOOOOOOLLLLLLTLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZMSSSSLCCCCCCCCCCCCCGGGGGYYSYYYYYYYNNJLLLLBBLLJJJJJJJJJJXXXZXJJJJJJJJHHHHMMMGMMMMMMMY
+CCCCCCCCCCCOOOOOOOZLLLLLLLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZSSSSSLCCCCCCCCCCCCCXXXXGYYYYYYYYYYYJJJJJLLLLLJJJJJJJJJJXXXXXXJJJJJJJHHHHMMMMMMMMMMMX
+CCCCCCCCCCCOOOOOOOLLLLLLLLLLLLLLLLCCCCCCCCCCCCZZZZZZZZZZSSSSSSCCCCCCCCCCCCEXXXXYYYYYYYYYYYJJJJJJLLLLLJJJJJJJJJXXXXXXXXXOJJJJHHHHHMMMMMMMMMXX
+CCCCCCCCCCCOOOOOOOALLLLLLLLLLLLLLLCCCCCCCCCLLLLZZZZZZZZZSSSSSSSCCCCCCCCCCCXXXXXYYYYYYYYYYYJJJJJJLLLLJJJJJJJJJJXXXXXXXXXXJJJHHHHHMMHMMMMMMQXX
+CGGCCCCCCCCOOOOOOOALLLLLLLLLLLLLLLLLLLLRRLRLLLLLLLLLISSSSSSSSSCCCCCCCCCCCXZXXXXYYYYYYYYYYYJJJJJJJLLJJJJJJJJJJXXXXXXXXXXXXXHHHHHHHHHHMMMMMQQQ
+FGGGGGGCCCCOOOOOOOLLLLLLLLLLLLLFFFFLLRRRRRRLLLLLLLLIIISSSSSSSSCCCCCCCCNCXXXXXXXXXYYYYYYYYYYYJJJJJLLJLJJJJJJJJJXXXXXXXXXXXXHHHHHHHHHHHHHMMQQQ
+GGAGGGGGGCGGOOOOOOOLLLLLLLLLLLLLFFFFFRRRRRRLLLLLLLLIIIISSSSSSSFFCCCACAXXXXXXXXXXXXYYYYYYYYYBJJJJLLLLLJJJJJXXJXXXXXXXXXXXXXXXHHHHHHHHHHHQQQQQ
+UUGGGGGGGGGGGOOOOOOOOLLLLLLLLLLFFFFFJJRRRRNLLLLLLLIIIISSSSSSSSFCCHCAAAXXXXXXXXXXXYYYYYBBYYBBJJJJLLJJLJJJJJXXXXXXXXXXXXXXXXZMHHHHHHHHQQQQQQQQ
+UUGGGGGGGGGGOOOOOOOOLLLLLLLLLFFFFFFFJJRRRRNLIIIIIIIIIIISZSSSSSHHHHCAAAAAAXIXXXXXXYYYYYBYYYBBJJJJLJJJJJJJJJJXXXXXXXXXXXXPMGMMHHHHHHHHQQQQQQQQ
+UUGGGGGGGGGGOOOOOOOOSSLLLLLFLFFFFFFFFFIIORRIIIIIIIIIIIISSSSSSHHHHHHHHHAAAXXXXXXXLLYYYBBBBBBJJJJJJJJJJJJJJJXXXXXXXXXXXXPPMMMMMHHHHHHHHQQQQQQQ
+GGGGGGGGGGGOOOOOOOOOOLLLLLLFLLFFFFFFFIIIRRLIIIIIIIIIIISSSSSSSSHHHHHHHHAAAXXXXXXXLYYBBBBBBBBBJJJJJJJJJGGJJJOXXXXXXXXXDXMMMMMMMHHHHHHHHQQQQQQQ
+QGGGGGGGGGGOOOOOOOOOOLOOLLFFFFFFFFFFFXIISILIIIIIIIIIISSSSSSSSSAHHHHHMHAAAAXXXXXXLLLBBBBBBBBJJJJJJJJJJJGGGGGXXXXXXXXXDDDMMMMMMHHHHHHHHHQQQQQQ
+QGGGGGGGGGGGOOOOOOOOOOOOLLFFFFFFFFFFFFIFIIIIIIIIIIIISSSSSSSSSHAHWHHHHHHAAINXXXXLLLLLLLBBBBBJJJJJJJJJGGGGGGGXXTTXXXXXDDMMMMMMMMHHHHHHHQQQQQQK
+UUGGGGGQGGOOOOOOOOOOOOOOFFFFFFFFFPFFFFSSHSIIIIIIIIIISHSSSSSSHHHHHHHHHHHIAIIIXRLLLLLLLLBBBBBBBJJJJJJJGGGGAGGGGXXXHXXDDDBMMMMMMXHHHHHHHHHKKKKK
+UUGGGGGUUUUOOOOOAOOOOOOOOFFFFFFFFFFSSSSSSSAAAAAAAAAASSSSSSSSHHHHHHHHHHHIIIIIILLLLLLLLLLBBBBBJJJJJJJTAAFGAGGGGGGGGDDDBBBMMMMMXXXXHHHHHHHKKKKK
+UUGGUUGUUUUOOOOOOOOOOOOOOFFFFFFFFFFSSSSSSIAAAAAAAAAASSSSSSSSSSSHHHHHIIWIIIIIILLLLLLLLLLLBBBBJJJJJJAAAAAAAAGGGGGGGGDGBBBBSMMMXXXXHHHHKHHKKKKK
+UUUUUUGUUUYOOOONNNOOOOOOOOFFFFFFFFSSFSSIIIAAAAAAAAAASSSSSSSSSSSSHHHIIIIIIIIIILLLLLLLLLLLBBBBJJJJAAAAAAAAAAGGGGGGGGGGBBBSSMMMMXXXXHHKKKHKKKKK
+UUUUUUUUUYYOOOONNNOOOOOOOOOOFFFFFFFFFFIIIIAAAAAAAAAASSSVVVVSSSKKKKKKKIIIIIIIILLLLLLLLLLLLRBJJJJAAAAAAAAAAGGGGGGDGDDBBBSSSSMMMXXXXXHKKKKKKKKK
+UUUUUUUUUUOOOOOOOOOROOOOOOOOJFFFFFFFIIIIIIAAAAAAAAAAXSVVVVVSSSKKKKKKKAIIIIIIILLLLLLLLLLLLJJJJJJJAAAAAAAAAGGGGGGDDDDDBBBBSXXXXXXXKKKKKKVVKKKK
+UUUUUUUUUUOOOOORRROROOOOOOOOJJFFFFFIIIIIIBAAAAAAAAAAAXVVVVVSSSKKKKKKKIIIIIIIILLLLLLLLSSLLLJJJJJJAAAAAAAAAAAGGGGDDDDDFBBBBXXXXXXKKKKKKKKVVVKK
+UUUUUUUUULOOOORRRRRRROOOOOOOJJFFFFFIIIIIIBAAAAAAAAAAAXXVVVVVSSKKKKKKKIIIIIIILLLLLLLLLSSSLSSJJJJPPAAAAAAAAAAAAGGGDDDFFFBBBNNXXXKKKKKKKKKVYVVV
+UUUUUUUUJJJPPOOJJJRROOOOOOJJJJUUFFFIIIIIIBAAAAAAAAAAAXLLVLLVSSKKKKKKKAAIAIIILLLLLLLLLLSLLPJJRJPPPPAAAAAAAAAAAAGGTDDDDBBBBNNNNXKKKKKKKKKVVVVV
+UUUUUUUUJJPPPPPQTJJRRROOOOJJJUUUFUUUIIIBBBAAAAAAAAAARLLLLLLLLLKKKKKKKAAAAAILLRLLLLLLLLPPPPPJJPPPPPAAAAAAAAAAAAATTDDUUBBBBNNNKSSKKKKKKKKVVVVV
+UUUUUUUUUTPPPPQQTTJRRRRORJJJJUUUUUUUUIIBBBAAAAAAAAAARLLLLLLLLLKKKKKKKAAAAAARLRLLLLRRRLLPPPPPPPPPPPPAAAAAAAAAAAAATTDDUUBQQNNKKKKKKKKKKVVVVVVV
+UUUUUUUUTTPPPPQQQQRRRRRORJJJJUUUUUUUUUUYBBAAAAAAARRRUULLLLLLLLKKKKKKKAAAAAARRRRLRRRRRLRRPPPPPPPPPAAAAAAAAAAAATATTTTTUTBQQQNNKKKKKKKKVVVVVVVV
+UUUUUUTTTTTPPPQQQQQQRRRRRRJJUUUUUUUUUUUBBBBBBRAAARRRRULLLLLLLLKKKKKKKAAAAARRRRRRRRRRRRRRPPPPPPPPPAAAAAAAAAAATTATTTTTTTOKKKNNNNKKNTKKVVVVVVVV
+UUTUTTTTTTPPPPPQQQQQQQRRBRJJUUUUUUUUUUUDBBBBRRAAARRRRRLLLLLLLLLLLLLAAAAAARRRRRRRRRRRRRRRPPPPPPPPPPPAAAAAAAAAATTTTTTTTTKKKKKNNNNNNKKKVVVVVVVV
+UTTTTTTTTTPPPPQQUQQQQQQRRRRJUUUUUUUUUUUBBBBBBBRRRRRRRRRQLLLLLLLLLLLLAAAAAARRRRRRRRRRRRRRRRRRPPPPPPPAAAAAAAAAATTTTTTTTTKKKKKNNNNNNNNVVVVVVVVV
+TTTTTTTTTTPPPPQQQQQQQQRRRRRJUUUUUUUUUUUTTBBBBAARRRRRRRRQLLLLLLLLLLLLAAAAAAAFRRRRRRRRRRRRRRRPPPPPPPPPAAAAAAAVAVTTTTTTTTKKKKKKNNNNNNNVVVVVVVVV
+TTTTTTTTTTPPPPQQQQQQQQQRZZRRHUURUUKURRRBBBBAAARRRRRRRRRQLLLLLLLLLLAAAAAAAAATRRRRRRVRRRRRRPPPPPPPPPPPTAATTAAVVVTTTTTTKKKKKKKKNNNNNNNVVVVVVVVV
+TTTTTTTTPPPPPPPQQQQQQQQQZZRRRRRRRUUURRRRBBBAAARRRRRRRRQQLLQLLLLLLAAAAAAAAATTRRTRTVVRRRRCCCPPPPPPZZPPPPTTTVVVVVVTVTTTTKKKKKKKNNNNNNNVVVVVVVVV
+TTTTTTNUPPPUUPPPQQQQQQQQZZRRRRRRRRUURRRRRRRRRRRRRRRRRRQQQQQLLLLLLAAAAAAAATTTTTTTTVVRRRRRCCPPPPPPZTPPTTTTTQQVVVVVVVVKKKKKKPPKKGGGGNVVVVVVVVVV
+TTTTTTNUUUUUUPPQQQQQQQQQQQUURRRRRRRURRRRRRRRRRRRRRRRRQQQQQQQLLLLLLLAAAAAATTTTTTTVVVVVRRVCCCPCCCPPTTPTTTTTQQQVVVVVVVKKKUKKPPPPGGGGTVVVVVVVVVV
+TTNNNNNUIUUUUUPPQQQQQQQQQUUURRRRRRRRRHHHRRRRRRRRRRRRRRQQQQQLLLLLLLLXAAAAATTTTTTTVVVVVRTVCCCCCCCPPTTPTTTTTTQQVVVVVVVKKKKKPPGGGGGGGTVVVVVVVVVV
+NTTNNNUUUUUUUUUUUTQQQQTQUUUUURRRRRRRRHHRRRRRRRRRRRRRRRQQQQQLLLLLLLLAAAATTTTTTTTTTTVVVVVVVCCTCTTTTTTTTCTTTQQQQVVVVVVKKKKVPGGGGGGGGVVVVVVVVVJJ
+NTTNUUUUUUUUUUUUUUHUTTTTXXUXURRRRRRRRHRRRRRRRRRRRRRRRRRQQQQQLLLLLLFAAAAAFFTTTTTTTTVVVVVVVCCTTTTTTTTTTCTTZCQQQVVVVVVVKVVVVHHGGGGGGVVVVVVVVJJJ
+NNNNNUUUUUUUUUUUUCUUUTTTXXXXURRRRHRRRHRRRRRRRRRRRRRRRRRRQQQLLLLLFFFFAAAAFFTTTTTTTTVVVVVVVVCTTTTTTTTTTCCCCCCCVVVVVVVVVVVVQQQQGGGGGGVVVVJJJJJJ
+NNNNNUUUYUUUUUUCCCUUUUUXXXXXXYYRYHHHHHRRRHRRRRRRRRRRRRRRQQQLFFFFFFFFAAAFFTTTTTTTTEVVVVVVVCCCCNNTTTTTTCCCCCCCJVVVVVVVVVQQQQQGGGGGGGGGGJJJJJJJ
+NNNNNNUUUUUUUUCCCCCUUUUXXXXXYYYRYYHHHHRHHHRRRRRRRRRRRRRRQQFFFFFFFFFFFFFFFFTTTTTTTEVVVVVVCCCCCCNTTTTTCCCCCCCJJVVVVVVVVQQQQQQQGGGGGGGGUJJJJJJJ
+NNNNNNNUUUUUUUCCCCUUUUUXXXXXYYYYYYYHHHRHHHHRRRRRRRRRRRQQQFFFFFFFFFFFFFFFFFFTTTTTEEEEVVCVCCCCCNNNNTTTCCCCCCCCJCVVVVVVVVQQQQQQQQQGGGUQUUUUUUJJ
+NNNNNNNUUUUUUUCCCCUUUXUXXXXXYYYYYYYHHHHHHHHHHHRRRORRQQQQQFFFFFFFFFFFFFFFFEEUTTEEEEECCCCVCCCCCCNNTTTTCCCCCFCCCCCVVVVVVVVQQQQGGQGGGGUUUUUUJJJU
+NNNNNNNNUUUUUCCCCUUUUXXXXXXLYLLLYYYHHHHHHHHHHHRRQQRQQQQQQFFFFFFFFFFFFZFFFEEEEEEEEEEEECCCCCCCNNNTTTCCCCCCCCCCCCVVVVVVVVVVNQQGGGGIGUUUUUUUUUUU
+NNNNNNNJDDUUUCCUUUUUUXXLXXLLLLLLLYYYHHHHHHHHHHRRQQQQQQQQQFFFFFFFFFFZZZFFFEEEEEEEEEEECCCYCCCNNNNNNCCCCCCCCCCCCIIVVVVVVVVVQQQGGIGIIIUUUUUUUDEE
+JJNNNJJJJJUQUCCCCUUXXXLLLLLLLLLLLLLLFFHHHHBBBRRRBQQQQQQQFFFFFFFFFZFFVZZFFEEEEEEEEEEEYYYYYYCCYNNNNUUCCCCCCCCCCCLLVVVVVVVVQFFIIIIIIIIIUUBBEEEE
+JJJNNJJJJJUJUCCCCUUUXXLLLLLLLLLLLLFFFHHHHBBBBBBBBBQQQQQQQQFFFFFFZZFZZZZZEEEEEEEEEEEEEYYYYYYYYUUNUUUUUUCCCCCLLLLLLLLLVVFFFFFFIIIIIIIIUUBEEEEE
+JJNNJJJJJJJJJCCCCCUCXXLLLLLLLLLLLLFFFHHHHBBBBBBBBBBBQQQQQFFFFFFZZZZZZZZZEEEEEEEEEEEEEIYYVVVUUUUUURUUUUCCCCCLLLLLLLLLLLFFFFFFIIIIIIJJJJJEEEEE
+JJJJJJJJJJJJJCCCCCCCXCLLLLLLLLLLLLFFFHHHHHHBBBBBBBBBIBQQQQFFWWZZZZZZZZZEEEEEEEEEEEEEEEYYVVVDUUUUURRUUUACCCCLLLLLLLLLELFFFFFFIFIIJIJJJJEEEEEE
+JJJJJJJJJJJJCCCCCCCCCCCLLLLLLLLLLLFFFFFHHHBBBBBBBBBBBBQWWQWFWWWWZZZZZZZZZZEEEEEEEEEEEWYYVVVUUUURRRRRUUUCBBLLLHLPLLLLLFFFFFFFFFIIJJJJJJEEEEEE
+JJJJJJJJJJJCCCCCCCCCCCCLLLLLLLLLLLFHFHHHHHHBBBBBBBBVBWWWWWWWWDDDDDZZZZZZZZEEEEEEEEEEEWWWVVVWUVVVVVRRRUUBBLLLLLLLLBLPPPFFFFFFJJIIJJJEEEEEEEEE
+JJJJJJJJJJJCCCCCHHCCCCCLLLLLLLLHHHHHHHHHHHHBBBBBBBBVFFWWWWWDDDDDDDZZZZZZZZXXEEEEEEWWEWWWVVVWUVVVVVBBBUUBLLLLBBBBBBBPPPFFFFJJJJJJJJJJEEEEEEEE
+JJJJJJJJJJJCCCCCHHHCCCCCCCLLLLLHHHHHHHHHHHHHIBBBBHBVFFFWWWJDDDDDDRZZZZZZZZXXXEEEUEEWWWPPVVVWWVVVVVQBBUBBBBBBBBBBBBBBPPPPPPPSJJJJJJJJEEEEEEEE
+JJJJJJJJCJRRCCCCHHHHHCHCCCCLLLLLHHHHHHHHHIIIIBHHHHHFFFFWWDJJDDDDDDZZZZZZZZZUXUUUUUUPPPVVVVVVVVVVVVPBBBBBBBBBBBBBBBBBPPPPPPPJJJJJJJJEEEEEEEEE
+PJJJJJJCCRRRRCCHHHHHHHHCCCCLLLLLHHHHHHHHHHHIIIIIIIHHHFWWWDJJJDDDDDDZZZZZOOUUUUUUUUUPPPVVVVVVVVVVVVPBBBBBBBBBBBBBBBBPPPPPPPPPJJJJJJJLLEEEEEEE
+PJJJJRRRRRRRRRHHHHHHHHHCCCCLLLMHHHHHHMHHHHHIIIIIIIFFHFFFWDJJDDDDDDDDZOOOOOOOUUUUUUUPVVVVVVVVVVVVVVPBBBBBBBBBBBBBBBBPPPPPPPPPPJGJJJJLLLLLLEEM
+PPJRRRRRRRRRRRHHHHHHHHCCCCCEEEKHKKHKHMHMHHIIIIIIIIFFFFJFDDDDDDDDDDDOOOOOOOOOUUUUUUUPVVVVVVVVVVVVVVPBBBBBBBBBBBBBBBBBBPEPPPOPGGGGGDJLDLLLLMMM
+PPRRRRRRRRRRRRRRHHHHHHCCCCEEEKKKKKKKMMMMMMIIIIIIIIFFFFFFFDDDDDDDDDDOOOOOOUUUUUUUUUUUVVVVVVVVVVVVVVABBBBBBBVVVBBBBBBBBPPPPPPPGGGGDDDDDDLLMMMM
+PPRRRRRRRRRRRRRRRRRHEECCCEEEKKKKKKKKCMMMMMIIIIIIIIFFFFFFFDDDDDDDDDOOGGGOOUUUUUUUUUUUVVVVVVVVVVPVVVAAABBBBVVVVVBBBBBBPPPPPPPPGGHHDDDDLLLLMMMM
+PRRRRRRRRRRRRRRRRRREEEECCEEEKKKKKKKCCKMMMIIIIIIIIIIFFFFFFDDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVPVVVAAAABBBBVVVVVVVVVVSSSPPPGGGGHHGDGDDLLLMMMM
+PPPPRRRRRRRRRRRRRRREEEEEEEEEKKKKKKKKKKMMMEIUUIIIIIIFFFFFCDDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVQQQQAAAABBBBVVVVVVVVVPVSSPPPPPGGGGGGGLLLLLMMMM
+PPPPRRRRREERRRRRRREEEYYYYYYYYKKKKKKKKKMMMESUSSSSIILFFFFFCCDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVQQQQAAABBBBBYVVVVVVVVVVSSSSSSGGBGGGGLLLMMMMMMM
+PPPPRRRREEEEERRRRREEEYYYYYYYYKKKKKKKKKMMMESSSSSSSIISFFCCCJNDDDDDDDDOOGGGGGGGUUUUUUGGPVVVVGPPPQQAAAAAABBBBBBBJVVVVVVVVVVVSSGGGLLLLLMMMMMMMMMM
+PPPPPPREEREEERRRRRREYYYYYYYYYYKKKKKKKKKMEESSSSSSSSSSSSCCJJJDDNDDDDOOOYGGGGGGGUUGGGGGGVVVVPPPPQQQAAAAAABBZZVVVVVVVVVVVVVVSSSSSLLLLLMMMEMMMMMM
+PPPPPESEEEEEEERERRRRIYYYYYYYYYKKKKKKKKKSSSSSSSSSSSSSSSCCJJCDDDDDDDDYYYGGGGGGGGGGGGGGGGGGGGPPQQAAAAAAAAAAZZZZVVVVVVVVVVSSSSSLSLLLLLLJLMMVVMMP
+PPPPEEEEEEEEEEEEERRKYYYYYYYYYYYKKKCKKKKCCSSSSSSSSSSSRCCCJJJDDDDDYUUUUYYYGGGGGGGGGGGGGGGGGGAAAAAAAAAAAAAAAZZZZZVZCCCVVVVSSLLLLLLLLLLLLLVVVVMM
+PPPPEEEEEEEEEEEEEERRRLYYYYYYYYYKKCCCCCCCSSSSSSSSSSSSRCCCCJJDDDDDYYYYYYYYYGGYGGGGGGGGGGGGGGGAAAAAAAAAAAAAAAAZZZZZZCCZZVFLSLLLLLLLLLLLLLVLVVVV
+PPPPEEEEEEEEEEEEEELLLLLYYYYYYYYCCCCCCCCCSSSSSSSSSSSSRRRRRJSDCDDDDJJYYYYYYYYYYYYGGGGGGGGGGGGAAAAAAAAAAAAAAAZZZZZZZZCZLVVLLLLLLLLLLLLLLLVLLLUU
+PPPEEEEEEEEEEEEEELLLLLLLYYYYYCCCCCCCCCCCCSSSSSSSRRRRRRRRRRRRRDNNDYYYYYYYYYYYYYYGGYGGGGGGGGGAAWWAADAAAAAANNNZZZZZZZZZLLVLLLLLLLLLLLLLLLLLUUUU
+SPPEEEEEEEEEEEEELLLLLLLLYYYYCPCCCCCCCCCCCCCCSSSRRRRRRRRRRRRCCDPPPYYYYYYYYYYYYYYYYYYYYGGGGGGGWWAAADDAAAAANNNZZZZZZZZZZLLLGGGLLGLLLLLLULLLUUUH
+SPPEEEEEEEEEEEEELLLLLLLLVVYYCCCCCCCCCCCCCCCCCSSRRRRRRRRRRRRCCCPPYYYYYYYYYYYYYRYYYYYYYGGGGGGIAAAAADDAAAAANZZZZZZZZZZZZGGGGGQQQGLLLLLLUUUUUUUU
+SSNEEEEEEEEEEEEEELLLLLLLLVVCCCCCCCCCCCCCCCCSSSSRRRRRRRRRRRRRRPPPPPPYSYYYYYYYYRRRYYYYYGGGGGIIIEEDDDDEAANNNZZZZZZZZZZZZZGAGGGGGGGLLLLLUUUUUUUU
+SNNNNNNNEEEEBBBBBBLLLLLLLVVVVVVCCCCCCCCCCCCSSSSRRRRRRRRRRRRJJPPPPPPPSSSYYYYYRRRRRRYYYGYYYZZZZZZZZZDEAAANNZZZZZZZZZZZZAAAGGGGGGGLLLLLUUUUUUUU
+SNNNNNNNEEESSBBBBBLLLLLVVVVVVVVCCCCCCCMCCCSSSSSRRRRRRRRRRRRPPPPPPPPPPPSYYYYYRRRRRRYYYYYYYZZZZZZZZZJJJJANNZNZZZNZZZIIIGGGGGGGGGGGLLLKKUUUUUUU
+SSNNNNNNSEEEBBBBBBEEELVVVVIVVVVMIICCCMMCCCCSSSSRRRRRRRRRRRAPPPPPPPPPPPSSSRRRRRRRRYYYYYYYYZZZZZZZZZZZZZNNNNNNNNNNIIISIIGGGGGGGGFFLLKKKKUKUUUY
+SSNSSNNSSSSBBBBBBBBBGGGGGVIIVMMMICCCMMMMMMSSSSSRVRRRRRRIRRPPPPPPPPPPPRRSSRRRRRRRRYYYYYYYYZZZZZZZZZZZZZEEENNNNNNNIISSSGGGGGGGGGGGLLKKKKKKXXXX
+SSSSSSSSSSSSBBBBBBBGGGGGVVVIIMMMMMMMMMMMMMMSSSSSSSRRRRRRRPPPPPPPPPPRRRRRRRRRRRRRRRYYRRYYYZZZZZZZZZZZZZEEENNNNNNNNNSSSSGGGGGGGGGDLKKKKKXXXXQX
+SSSSSSSSSSSSBBBBBBBGGGGGGGGGGMMMMAMMMMWWMMMMSSSKSSRRRRRRPPPPPPPPPPPPTRRRRRRRRRRRRRRRRRYYYKKKZZZZZZZZZZEEUNNNNNNNNNSSSUUUUUUUUUGGXKKKKKXXXXXX
+SSSSSSSSSSSSBBBBBBBGGGGGGGGGJMMMAAAMMWWWWMMMMWSSIIRRRRRRRPPPPPPPPPPPPRRRRIRRRRRRRRRRRRYYYOKKZZZZZZZZZZEEUUNNNNNNNNSSSUUUUUUUUUGGKKKKKKXXXXXX
+SSSSSSSSSSBBBBBBBBBGGGGGGGGGMMMMAAAMMJJWWWMMMSSSIIIIRRRPPPDDDPPPPDPPPIIIIIRRRRRRRRRRRHYOYYXKZZZZZZZZZZEUUUNNNNNNSSSSSUUUUUUUUUGKKKKKKKXXXXXX
+SSSSSSSSSSBBKBBBBBBGGGGGGGGYYYYYYYJJJJJJJMMMMMSLLLIIRRRPPPDDDDDDDDDIIIIPIIIRRRIRRRRRRRRYYYYKZZZZZZZZZZUUUUTTTUNNSSSSSUUUUUUUUUZKKKKKKKXXXXXX
+SSSSSSSSSSSSBBBXXBBGGGGGGGYYYYYYYYJJJJJJJJJJJLLLIIIIRRRPPPDDDDDDDDDDIIIIIIIRRRIRRRRRRRRRYYQKRREEEZZZZZQQQQUUUUUSSSSSSSZUUUGGZZZKSKKKKKXXXXXX
+SSSSSSSSSSAABBXXXXGGGXEGGYYYYYYYYYYJJJJJJJJJJLLLIIIIRRPPPPDDDDDDDDIDIIIIIIIIIIIRRRRRRRRRRERRRREEEZZZZZQQQQUUUUUUUUUUUUUUUUZZZZZSSSSSSSXXXXXX
+SSSSSSSSSAAAXXXXXXXXXXXYYYYYYYIIYPPPJJJJJJJJLLLLLIIIRRRPPPDDDDDDDDIIIIIIIIIIIIIIIRRRRRRRSRRRRPEEEZZZZZQQQQUUUUUUUUUUUUUUUUZZZZZSSSSMMSXXSEXL
+SGSSSSSSAAAAXXXXXXXXXXZYYYYBYYPPPPPJJJJJJJLLLLLLIIIIILLPPPPDDDDDHIIIIIIIIIIIIIIIIRRRRRRRRRRRRRREEEEQUQQQQQUUUUUUUUUUUUUUUUZKZZSSSSSSSSXSSSLL
+GGSSSSSAAAAAAXXXXXXXXXZYYYYYYYPPPPSXMJJLLLLLLLLLLLIIIILPPPDDDDDDHDIIIIIIIIIIIIIYIRRRRRRRRRRRRRREEEEEQQQQQQUUUUUUSSSWWKKKKKKKZZSSSSSSSSSSSSLL
+GGGSSSSAAAAAAXXXXXXXXXXXYYYYYPPPPXXXXXJZXLLLLLLLLLLIIILLLLLDDDDDDDAAIIIIIIIIIIIIRRRORRRRRRRRRRREEESEUQQQQQUUUUUUNSSSWKKKKKKKKSSSSSSSSSSSSSLL
+GGGSSSSAGAAAGXXXXXXXXXYYYYYYYPPPPPPXXXXXXXBLLLLLLLLIIILLLLLLDDDDLWLAIIIJIIIIIIIIRRROYYRRRRRRRREEWRREUQQQQQUUUUUUNSSWWKKKKKKKKSSSSSSSSSSSSSLL
+GGGGGSSAGAAAGXXXXXXXXXXXYYYYXPPPPXXXXXXXXXBLLLLLLLIIIILELLLDDDDDLLLAAIIIIIIIOOOOOOOOOORRRRRRRRRRRRRWWQQQQQNNNNNNNNVWWKKKKKQQQQQSSSSSSSSSSLLL
+GGGGGGSGGGAAGXXXXXXXXXYYYYYYXXPXXXXXXXXXXXBBLLLLLLFFFILLLLLLLLLDLLLLLWWIHIHOOOOOOOOOOORRRRRRRRRRRRRWWQQQQQNNNNVNNVVWWWKKKKKKKQQSSSSRRRSSSSSS
+GGGGGGGGGGGGGXXXXXXXXXXXXYYYXXXXXXXXXXXXXXXLLLLLLLFFLLLLLLLLLLLLLLLLWWWRHHHOOOOOOOOOOOOORRRRRRRRRRRWWWWWWNNNNNVVVVVVKKKKKKKKKKQQSRRRRRRRRSOO
+GGGGGGGGGJJGGXXXXXXXXXXXXYYYXXXXXXXXXXXXXXLLLLLLLLFFLXLRRLLLLLLLLLLLRWRRHHHHOOOOOOOOOOORRRRRRRRRRRWWWWWWWNNNNNVVVVVVVVXKKKKKKKIIRRRRRNNNRNON
+GGGGGGGGGJJJGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLLXXXXXXXXXRRRRLLLLLLLLLRRRRRHHHOOOOOOOOOOOOMYRRRRRRRRRWWWWWWWNNNNNNVVVVVVVKKKKKKKIIIRIRRRNNNNNON
+GGJGJJGJGJJJJVXXXXXXXXXXCXZXXXXXXXXXXXXXXXXXLWXXXXXXXXRRRRLLLLLLLLLLRRRRHHAAOOOOOOOOOOJYYRRRRRRRRWWWWWWWWNNNNNNVVVVVVVKKKVVVVIIIIIRRNNNNNNNN
+GGJJJJJJJJJJJJOOXXYXXXXLLLZXXXXXXXXXXXXXXXXWWWXXXXXXXXXRRRSSSLSSLLLLLRRRRAAAMMMMOOOOOOYYYYSRRRRWWWWJJWWWWWJNNNNVVVVVVVVVKVVVVIIIIIIIFNNNNNNN
+GGGGJJJJJJJJJJJXXXXXXXLLLLLXXXXXXXXXXXXXXXXWWWXXXXXXXXXXXXSSSSSSSSLLRRRRRAAAAOOOOOOOOYYYYYYRYRYWYWWJJJJJJJJYYYVVVVVVVVVCKVVVVIIIIIIIINNNNNNN
+GGGJJJJJJJJJJJLXXLXXXLLLLLLLXXXXXXXXXXXXWXXWWWWXXXXXXXXXXDDNNNSSSRRRRRDAAAAAOOOOOFOOYYYYYYYYVVVVVYJJJJJJJJJYYYVVVVVVVVVCSSSSSSSSSSSSSNNNNNNN
+GGJJJJJJJJJJJJLLLLLXLLLYYYLLXXXXXXXXXXXXWXWWWWXXXXXXXXXXXXXXNNNSSSRRRRAAAAAOOOAOOOOOOYYYYYYYVVVVVJJJJSSSSSSSSSSVVVVVVVVVSSSSSSSSSSSSRRNNNNNN
+GGGJJJJJJJJJJJJLLLLLLYLLYYFLXXXXXXXXXXWWWWWWWXXXXXXXXXXXXXXXNNNNSRRRRRAAAAAAAAAAOOOYYYYYYYYYVVVVVVJJJSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRNNNNNNN
+GGGJJJJJJJJJJJJLLLLLLYYYYYFFXXXXYXHXXXXXWWWWWWWXXXXXXXXXXXXSNNNNSSRRRRRSFFFAAAAAAAAYYYYYYYYYVVVVVVVVVSSSSSSSSSSSSSSSSSSSSSSRRIIIIBRRRNNNNNNN
+GJJJJJJJJJJJJLLLLLLLYYYYYYYFFXWWNNNXXXXXWWWWWWXXXXXXXXXXXXSFFFFFFFFFRSSSFFFAAAAAAASYYYYYYYYYVVVVVVVVVSSSSSSSSSSSSSSSSSSSSSSRRRRRIRRRRRNNNNNN
+JJJJJJJJJJJJJLLLLLLYYYYYYYYFNNNNNNNXXXWWWWWWWWWXXXXXXXMVXXSFFFFFFFFFFFFFFFFAAAAAASSSSYYYYYYYVVVVVVVVVVVVSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRNNNN
+PJJJUJJJJLLJJLLLLLLLYYYYYYYYYNNNNNNXXXWWWWWWWWWWXXXXXXVVVXSFFFFFFFFFFFFFFFFFFFFFFFFFIUYYYYYYVVVVVVVVVVVVVVVSSSSSSSSSSSSSSSSCRRRRRRRRRRRRNNNN
+JJJJJJJJJJLLLLLLLLLLLLYYYYNNNNNNNNNWWWWWWWWWWWWWXXXXXVVVSSSFFFFFFFFFFFFFFFFFFFFFFFFFUYYYYYYYVVVVVVVVVVVVVVVSSSSSSSSSSSSSSSSRRRRRRRRRRRRRWNNN
+JJJJZZZAALLLLLLLLJLJLLYNNNNNNNNNNNNWWWWWWWWWWWWWXXXXXVVVVSSFFFFFFFFFSSFFFFFFFFFFFFFFUYYYYYYYYYCICJVVVVVVVVVSSSSSSSSSSSSSSSSRRRRRRRRRRRWWWNNW
+JJJYAZAAAAALLJLLJJJJJJJNNNNNNNNFFFNWWWWWWWWWWXXXXXXVVVVVSSYFFFFFFFFFSSFFFFFFFFFFFFFFUUUYYYYYYYCCCCJJCRVVVVVVMMMMMMMMMMXXRRRRRRRRRRRLRRLWWWWW
+AAJAAAAAAAAJJJLJJJJJNNNNNNNNNNFFFFFFFFWWWWWWXXXXXXXXVVVVSSSFFFFFFFFFSSSZFFFFFFFFFFFFIIUUYYYYCCCCCCCCCCJJJVVVMMMMMMMMMLMMMMMRRRRRRRRLRRLLLWWW
+AAAAAXAAAAAJJJLJJJJTJJNNNNNNONNSFFFFFWWFFFNWXXXXXXXVVVVVSSYFFFFFFFFFZSSZFFFFFFFFFFFFIIIUYYYYZCCCCCCCCCBBJVVVWMMMMMMMMMMMMMMMRRRRRRLLLLLLLWWL
+EEAAAAAAAAAJJJJJJJJJJJNNNNNNONNNFFFFFFWFNFNNNNXXXXXXVVVVVVVYYHUUUUUZZZSZZZFFFFFFFFFFZIIIYYYTTTCCCCCCCBBCHVVVWWWMMMMMMMMMMMMMRRRRRRLLLLLLLLLL
+EEAAAAAAAAAJJJJJJJQQNNNNNNNNOOFFFFFFFFNFNFNNNNNXXXVVVVVVVVVYYUUUUUUUZZZZZZZZZIZZZZZZZIITTYTTTTCCCCCCCCCCHVVVWWWWWMMMMMMMMMMMMRRRRLLLLLLLLLLL
+EEAAAAAAAAJJDJJJJJJQQNNNNNNNOOFFFFFFFFNNNNNNNNXXXXVVVVVVVVVYYYUUUUUZZZZZZZZZIIZZZZZZZSTTTYTTTCCCCCCCFCCHHVVVEWWWWMMMMMMMMMMMMMRRRRLLLLLLLLLL
+EAAAAAAAAAJDDJJJJJJQQQQNNNNNOOFFFFFFFFNFFNNNNNXXXXVVVVVVVVVYYYUUUUUUZZZZZZZZZIZZZZZZZSSTTTTTTCCCCCCCCCCCHVVVWWWWMMMMMMMMMZZZRRRRRRRLLLLLLLLL
+EEEAAAAAAJJJJJJJJJJJQQQQNNNNFFFFFFFFFFFFFNNNXXXXXXVVVVVVVVVYYUUUUUUUZZZZZZZZZIZZZZZZZSSTTTTTTCCCCCCCCCEEEVVVWWWWWMMMMMMMMZZZRZRRRRLLLLLLLLLL
+EEEAAAAAAABJJJJJJJJQQQQQQNFFFFFFFFFFFFFFFNNNXXXXXXXVVVVVVYYYYYYUEEUZZZZZZZZZZZZZZZZZZZZZZTTTTCCCCCCCCCEEEVVVWWWWWWMMMMMMZZZZZZZRRRLLLLLLLLLL
+EEEEAAAAAAAJJJJJJJJJQQQQQNNNFFFFFFFFFFFFFXXXXXXXXXXXVUVVVVYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZTTTTCCCCCCCCCEERREMRRRWWMMMMMZZZZZZZZZZRRLLLLLLLLLL
+EEEEEAAAAAAAAJJJJTJQQQQQQNNFFKKFFFFFFFCCCCXXXXXXXXXXVVVVVYYYYYYYZZZZZZZZZZZZZZSZZZZZZZZZZTTTCCCCCCCCCCERRRRRRRRWWWWMMMZZZZZZZZZRRRLILLLLLLLL
+EEEEAAAAAAAAPPPJJRQQQQQQQQQKKKKKKFFFFFFCCCCXXXXXXXXXXXYVVYYYYYYYZZZZZZZZZZZOZZZZZZZZZZZZZTTTTCCCCCCCCEERRRRRRRRRRWWMMMZZZZZZZZZZIIIIIILLLLLL
+EEEEAAAQCCAAPPPPRRRRQQQQQQQKGGKXKFFFFCCCCCCCXXXXXXXYYYYYYYYYYYYZZZZZZZZZZZZSZZZZZZZZZZZZZTTTCCCCCEEEEEEEERRRRRRRRRWWWMZZZZZZZZZZZIIIIIILLLLL
+EEEEEEECCCCPPPPPRRRURQQRQQQKGKKKKKKFCCCCCCCCCCCCCCXXXYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZTTTCTTTCEEEEEEERRRRRRRRRRWWWWZZZZZZZZZZIIIIIIILILLL
+EEEEEEECCCCPPPPRRRRRRRRRQQQKKKKKKKKCCCCCCCCCCCCCCCCNYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZSTTTTTTTTTEEEEERRRRRRRRRRRWWWZZZZZZZZZZIIIIIIAIILLL
+EEEEEEEEEEEEPPRRRRRRRRRRQQQKKKKKKKKXXCCCCCCCCCCNCCCNYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZSSTTSTTSSEEEEEERRERRRRRRRXWWZZZZZZZZZAZIIIIIIIIIILL
+EEEEEEEEEEEKRRRRRRRRRRLRKKKKKKKKKCXXXCCCCCCCCCCNCCCNYYYYYYYYYYYZZZZZXXZZXXXXZZZZQSSSSSSSTTTTSSSSSSSSEEEEEEERLRRRRRWWWWWZZZZSZZZIIIIIIIIIXXXL
+EEEEEEEEEEFRRRRRRRRRRRRTKKKKKKKKCCCXXCCCCCCCCCCNNNNNNXXXXXXYYYYYQQUXXXXXXXXXZZZZZZZZZZSSSTTTSSSSSSSSSEEEEELLLLRRRRRWWJPZSSSSZZIIIIIIIIIIXXXX
+EEEMEEEEEEFFFRRRRRRRRRTTKKEKKKKKKCCCCCCCCCCCCCNNNNNNXXXXXXXXXXXXQQUXXXXXXXXXZZZZZZZZZZSSCTTTTUSSSSSSEEEEEELLRRRRRRRJJJJSSSZZZZIIIIIIIIIIXXXX
+EEEMMEEEEEFFRRRRRRRRRRRKKKKKKCKCCCCCWCCCCCCCCCCCNNNNNNNXXXXXXXXXQQQQXXXXXXXXZZZZZZZZZZSCCTTTTTTEESSEEEEEEEEEERRRJRRJJJJJSSSZZSIIIIIIIIIIXXXX
+MMMMMMMMEEERRRRRRRRRRRDDDKKKKCCCCCCCCCCCCCCCCCNNNNNNNNNNXXXXXXXQQQQQQQXXXXXXXXOZZZZZZZSSSTTTTTTEEEEEEEEEEEEEEREJJAJJJJJJSJSSSSIIIIIIIIIXXXXX
+MMMMMMMMEKKRRRRRRRRRRRDDDDKKKCCCCCCCHCCCCCCCCCNNNNNNNNNNXXXXXXXQQQQQQQNNXXXXXXOZZZZZZZSSRTTTTTTEEEEEEEEEEEEEEEEJJJJJJJJJJJSSSSSIIIIIIIXXXXXX
+OMMMMMMKKKKKRRRRRRRRRRDDDDKKKKCJCCCCHCCCCCCCCCCNNNNNNNXXXXXXXXXQQQQQQQQQQXXXXXOZZZZZZZIITTTTTTTTTEEEEEEEEEEEEEEEEJJJJJJJJJSSSSIIIIIIIIXXXXXX
+OOOMMMKKKKKKKRRRRHRRRDDDDDKKKCCCCRCHHHHCCCCCCCCCNNNNNNNXXXXXXXQQQQQQQQQQQQQXXXXOOOOOIIIIITTTTTTEEEEEEEEEEEEEEEEEEJJJJJJJJSSSSSSSIIIIXXXXXXXX
\ No newline at end of file