Add Day 12 Part 1

This commit is contained in:
Dimitrios Kaltzidis
2024-12-12 08:27:53 +02:00
parent e8817bbdfd
commit d98019ff8b
4 changed files with 287 additions and 0 deletions

View File

@@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day10", "Day10\Day10.csproj
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day11", "Day11\Day11.csproj", "{FE187D99-D153-4909-959C-FA9C81444D11}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day11", "Day11\Day11.csproj", "{FE187D99-D153-4909-959C-FA9C81444D11}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day12", "Day12\Day12.csproj", "{F07A6D55-53F8-49AC-BD5E-689A0D995C84}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU 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}.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.ActiveCfg = Release|Any CPU
{FE187D99-D153-4909-959C-FA9C81444D11}.Release|Any CPU.Build.0 = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

16
Day12/Day12.csproj Normal file
View File

@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<None Update="input.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

125
Day12/Program.cs Normal file
View File

@@ -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<HashSet<(int, int)>>();
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;
}

140
Day12/input.txt Normal file
View File

@@ -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