diff --git a/AdventOfCode2024.sln b/AdventOfCode2024.sln index 154ae2d..83b5cbb 100644 --- a/AdventOfCode2024.sln +++ b/AdventOfCode2024.sln @@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day2", "Day2\Day2.csproj", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day3", "Day3\Day3.csproj", "{85A89558-E779-4DAF-9E45-C972B173A6B7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day4", "Day4\Day4.csproj", "{739F3568-EE18-464B-8A60-281606EC2A31}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,6 +29,10 @@ Global {85A89558-E779-4DAF-9E45-C972B173A6B7}.Debug|Any CPU.Build.0 = Debug|Any CPU {85A89558-E779-4DAF-9E45-C972B173A6B7}.Release|Any CPU.ActiveCfg = Release|Any CPU {85A89558-E779-4DAF-9E45-C972B173A6B7}.Release|Any CPU.Build.0 = Release|Any CPU + {739F3568-EE18-464B-8A60-281606EC2A31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {739F3568-EE18-464B-8A60-281606EC2A31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {739F3568-EE18-464B-8A60-281606EC2A31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {739F3568-EE18-464B-8A60-281606EC2A31}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Day4/Day4.csproj b/Day4/Day4.csproj new file mode 100644 index 0000000..e0c4c2e --- /dev/null +++ b/Day4/Day4.csproj @@ -0,0 +1,16 @@ + + + + Exe + net8.0 + enable + enable + + + + + Always + + + + diff --git a/Day4/Program.cs b/Day4/Program.cs new file mode 100644 index 0000000..db1dba5 --- /dev/null +++ b/Day4/Program.cs @@ -0,0 +1,98 @@ +var lines = File.ReadAllLines("input.txt"); +var charArray = new char[lines.Length, lines[0].Length]; + +for (var i = 0; i < charArray.GetLength(0); i++) +for (var j = 0; j < charArray.GetLength(1); j++) +{ + charArray[i, j] = lines[i][j]; +} + +Console.WriteLine($"Part1: {FindXmas(charArray)}\nPart2: {FindMas(charArray)}"); + +int FindMas(char[,] grid) +{ + var rows = grid.GetLength(0); + var cols = grid.GetLength(1); + + var directions = new[,] + { + { -1, 1 }, // diagonal up right + { 1, 1 }, // diagonal down right + { -1, -1 }, // diagonal up left + { 1, -1 } // diagonal down left + }; + + List masCenterCoordinates = new(); + + for (var r = 0; r < rows; r++) + { + for (var c = 0; c < cols; c++) + { + for (var d = 0; d < directions.GetLength(0); d++) + { + var masCoordinates = CheckWord(r, c, directions[d, 0], directions[d, 1], grid, "MAS"); + if (masCoordinates != null) + { + masCenterCoordinates.Add($"{masCoordinates[1][0]},{masCoordinates[1][1]}"); + } + } + } + } + + var masCountDict = masCenterCoordinates.GroupBy(item => item).ToDictionary(group => group.Key, group => group.Count()).Where(x => x.Value > 1); + + return masCountDict.Count(); +} + +int FindXmas(char[,] grid) +{ + var rows = grid.GetLength(0); + var cols = grid.GetLength(1); + var xmasCount = 0; + + var directions = new[,] + { + { -1, 0 }, // up + { 0, 1 }, // right + { 0, -1 }, // left + { 1, 0 }, // down + { -1, 1 }, // diagonal up right + { 1, 1 }, // diagonal down right + { -1, -1 }, // diagonal up left + { 1, -1 } // diagonal down left + }; + + for (var r = 0; r < rows; r++) + { + for (var c = 0; c < cols; c++) + { + for (var d = 0; d < directions.GetLength(0); d++) + { + if (CheckWord(r, c, directions[d, 0], directions[d, 1], grid, "XMAS") != null) + { + xmasCount++; + } + } + } + } + + return xmasCount; +} + +List? CheckWord(int r, int c, int dr, int dc, char[,] grid, string word) +{ + var characterCoordinates = new List(); + + for (var i = 0; i < word.Length; i++) + { + var newR = r + i * dr; + var newC = c + i * dc; + if (!IsValid(newR, newC, grid) || grid[newR, newC] != word[i]) return null; + + characterCoordinates.Add([newR, newC]); + } + + return characterCoordinates; +} + +bool IsValid(int r, int c, char[,] grid) => r >= 0 && r < grid.GetLength(0) && c >= 0 && c < grid.GetLength(1); \ No newline at end of file diff --git a/Day4/input.txt b/Day4/input.txt new file mode 100644 index 0000000..efd5b93 --- /dev/null +++ b/Day4/input.txt @@ -0,0 +1,140 @@ +MASAMXSXSSXSASXSMMXSSMXSAMSAMXSXXAMSXSASXXMASAMXMSMMSSXSASMXXAXMAMXMAMXXMASXXSXMSSXAMMSMMMSSSMASAMXSAMAXMSMXMMMXMASAMXSXSSMMMSMSXXMAMMXAMAMX +SAMXSSMMMAAMAMAAXAASAMMXAXMMAMXSMAMMAAAXXMAMXMAXMAAMXMAMASXMASMMSMMSAMMSAMXMASAMAMSSXMAAAAXMASXMASXMAMMMMAMXSMSASAAMSAMAAAASASXMXXMAXMAXSAMX +MAMMXAXAMMMMAMSMMMXMAMSSSMSSMMAXXAMMMMMMMAXSSSSMSMSMSMSMAMAAXMAAMXASAXMSAMMSMMAMXXAMASXSMSMSMSMSAMASAMAAMASXAASAMXSXMASASMMMASAMMMSMSXXMAXXM +SSMMSSSSSMXSAMAMMXSSXMXAAMAAAMMMSMSAMAMAASXXMAAASXXASAAXMASMMXMMMMASMSMSAMAAMXSXMMASAMMMAXAMAMAMASASASMXSASMMMMXSMMMSXMAMMSMXMASAAAXXAAMAMSA +AMAMAAAAAXAMXXASAAXAXXMXMMSXMMAASASXXAMXXMMXMMMMMAMAMSMSXAAXSSSXMAXMXAXMXMSMSAXAAXMMXXMMAMAMAMSSMMMSAXAXMXMXMXMAMMMAMAMSMAMAXSAXMMXXMXMSAAAS +MSAMMSMMSMMMSMXMMASMXMAAXAXASMMXSASASMXSASXMMXSAMMMAXAMSMMSMMAAAXSASMXXMSXMAMASMMMAMSSSMSSXMXMAMXAAMXMMMSMMMSAMXXAMMSMAAMASMMMXSSSSXSAXSMSMM +XXASAMAAXMXASMMMXAAMXASMMASAMAXXMAMXMAAMAMSAMASASXMXSASXXAXAMMMMMXMMMSXMAAMXMAXAASAMMMAAAMAMSMSMXMXSXMAAAMAAMSXMXSMMAXSXSASXAXSAMAAAMMXXAMAM +SSXMASMMSSMASAMXXSXSXXXXSAMXSSMMMXSAMMMMMSXSAMXXMASASMMMMMXSMMAAXAXAAAASXMMXMMSSMSASMSMMMSAMMAMAXSAMXSMSSSMSSXXSAXAXMMAAMMXXSSMAMMMMMXMMASAM +MAMXAMXAXAMXSAMXMMAMMAMMSXXAAAMXAXMAXSXMMAMXMXMASXMASMMMSMAMASXMMASMMSMMAMXXMXAAMXAXAXSMXMASMAMAMMASAXXMXAMXAMAMAMXMSSMSXMSMXAMSMASXMAMMAMAM +MASMMSMMSMSXXAMXMMAMAAAAXXMASMMSSSSSMMAXSAMASAXMXAMMMAASAMXMAMAAXXAMXAXSXMXMXMSSMMMMMMMMASAMMAMSMSAMXSXMMSXMXMMMSMMSASXAAMAMSSMMSXXASAXXSSMM +XAMXXAAAMXMAMMMMXMSSSXSSSMMXMAAXAAAAAMAMSAMXXXSXMAXXMSMSMSSMAMMMMXAXSMMMXMAMSAMXAXXAXAASASAMSXSAAMXSMSAAAMAMXXSAAAXMASMSMSAMXXAMXSSMMSMSXAAX +MSMMSMSAMXMSAMXMXXAAAAXAMXAXSMMXMMMMMMMMSMSMMSMMAMASAMASMAASMMSXMSXMMMAMSMSMSASXMMSXSAXMXSAMAXSMSMAXASXMMSAMMMASMMMMMMMMAXMMXMXMAAMMAXMMMSMM +AAAXAMMASXAXAMMMMMMSMMMAMXMXSMSSMMXXAAXXMAAMXXAMAMAMAMAMMSMMXAMAMMASXMAMAAXASAMXMAMXMMXXASMMXXSAMMSMXMASASASXAMMSAXXMAAMMSSMXXMMMSXMAMXSAMXA +MMSMAMMAAMMMAMAAAAXAAXXAMMMAMXAAAMXSSMSSMSMSMSAMXMASAMMSAMAMMXXXSSMMASXXMMMMMXMAMAXASAMMXMMMXMMAMAMMMSMMASAMXSXAXMXMSMSSMAAXMMXSAMXMASAMASMS +XSMMXMSXMAASAMSSSSSSMMSXXAMAMMXSMMMAAXAMXXXAMSAMASXSASAMXMAMAXSMMAMSMMXASXSSMXSXMMMMSMMMSMMSAMSXMASAMASMAMXMAMMMXXMXAAXAMSSMAAAMXMASASASAMAM +MAMAMMMMXMXAMXAXMMXMAXMMSASMMSMAMXAXSMXSAMMMXXAMXMASXMXSASXMMMAASAMAAXSXMAXAMXSXASXAXXAAAAASAXMXSXXMXASMMSMMMMAXXSAMMXXAMMAMXSXMXSAMXSXMXSMS +SMMXSAAASMXAXMAXMXSMMXAAAMXMAMSAMXSXMAAMASAMSSMMAMAMASXMMMXAAXMXMMMMMMMMMSMAAAMSAAAAMMMSSMMSSMXAMMXSMXMXMAAMXSSSMMAXASXSMSAMXMASAMMSMMMSMMXS +AXXMMMSMXASXMXSMSASAASMMXSAMMMSMSAMXMXMMAMAXAAXSAMXSAMXSASMSMSXSMSMMSMMAAXMSMAMMSAMSSXAMXAXSMMMXXXAMAMMASMXMXAXXAXXMASAMXXXSASAMASAMAAAXAMAM +MMXAMXMMMXSASAASMASMMXAMAMASXASXMASXMAXMSXSMSSMMASAMASAMXSAAAMAMAAAXAAMMSMMASXXXMXXAAMMMMAMXAAMMSMAXXAMAMSMSMMMXMMSMMMXMXMSXMMASAMAXSMMSXMAX +XSMSAAXMAMMAMXSAMXMMSSMMASXMAXMAMXXASASXMAXAMXAMAMASAMXMAMXMAMSMSSSMSSMAXMSASMMXAXMASXAMSMSSSMSAMMSMXXMXSAMXAASXSAMAAAAMAMSAXSAMASMMXAMXMSSS +AXAXMMMMSMMAMMMMMXMAXAXSASMMAMSAMSSMMMSAMAMAMMSMMSAMXMMMMSAMXXXAAAAMAAMXMAMAXAMSMSAAXXXXAAAAXAMXSAMAMXXSAMMSSMMMMASXMSASAXMSMMMSAMXXSAMXMAAX +MMXMXMAAAAMXXAAXXMMSMXMMASASAXMASXAAAXMXMXSAMAAXAAMSAAXAAAXSSMMMMMMMSSMAMXMAMMASAAMXMAXSMMMSMXSXMMSAXSXAMXMAXAXXMXMXMXASXXSAMAAMASMMMAMAMMSM +MAASXSXSXXMMSSMSAXAXMAXXXSXMASMMMAMSMMXAXXXMSSXSXMASMXSMSXMMXAXASXSXMAXXSAMXSXAMMMSSMXMMSAMMMMAAXAMXMXMSXMMMSMMMSMSMXMXMAXXASXMMAMMMSASASMAM +MSMSAMMMMMAXAAMMMMMSSSSSMMAMXMASXAXAAMSMSXXXAMXAMXMXXAAAAMMXMXSAMXAMAXAMAAMAMMMMXAAAMXMASXSAAXSXMXMAMAMAXMAMSAMXAAAAXSAMXMMXMMAMXSAASXSMMMAM +MMXMXMAAAMMASMMSMSXAAAXMAXAMSAMXSMSMSMAMMMXMASMMMMAAMXSMMAAAAMMMMXMAMMAXSASASASAMMSSMMMASMSMSMXXAAMAMAMMMMAXXASMMSMSMSAXAAMMXMXMAAMMSMMMMSAX +MXMXMSSSXSXAAXXXAXMMSMSSSMAMSAMXAXXXXMXSAAXMXMMMASMXSAAAXSSSSSSMSAXAXSAMMASMSASXSXAAASMASAMAXAMXXMSSSSSXSXMSSSMAAMXMASXXMSMAAMMMXXMXXAAAASMS +MASAXXXXASMSMSMMSMXMAAXAASXMXMASMMSMMMXMASXMMXXSAXMAMXMMMXXAAAXASMMSXMASMAMMMAMAXMXSMMMXMAMSMSMMSAMAAAAAAASAXASMMMAXXMAXXAMXAMASXSMXSSMSMXAA +XAMMMMSMXMAXAMXAAMAXMXMSMMXXXXAXAASAAAAAMMMSASMMMXSASAMSMSMMMMMAMMAMASXMMSSXMAMAMSXMAMSASAMAAMAMMAMMMMMMMSMASMMXMSASXMMMSASXSSMSAASXXMMMMMSM +MSXSAAAXXMAMXXMXSSSSXSAMXSAMSMXSMMMSMSSSMMAMASMAXASMSAAXAXAAAXMAMMASXMAXAXMMSXSXAMASAMSAXMXMXMAXMAMXXSXSXAAAMXMAMMXSAAAAXAMXMAXMMMMXMASAAAMM +MMASMSMSXSASMAAXXAMAMMSMAMAXAAMXMAXAMXAMXMAMXMMXMMSXSMMMSMSSSXSASMXSASMMXSAASAMXXMAMAMMMMSASXXXSMSAMSAASMMMMSXMSMSSSMMMSSSMSSSMMAXAAAASXSMSM +XMAMXAAXXXAMMAMXMAMXMAAMSSSMMSASXMSAXSAMXSSSSMAMSASAXXXAMAXMAXSAXMASXAXAASMMSAMXSMASMMAAMSASAASAMAAMXMXMSXAAXXXAASASMSXXAAAXAXASASMMXXXMMASM +XMXMXMSMSMMMAMXASAMMMSSMMAMMAMMMAXSMMXAMXAXAAMAMSAMXMMMMSSMAXMMSMSMSSMXMMXMASAMAASAMASMSMMMMXXMASMXMMXSMMMMSSSMSSMAMXXMMXMMMMMXSAMXSMSSSMAMA +MXMMMXAAAAXSMMSASXSAMAXXMAMMAMAMMMSXXXASMSMSMMMXMSMAXAAXMXAXMMAXMAXMAMMSMMMASAMXMMSSMMXXAAXAMXSAMXSXMAXAAAXAAMAMXMXMMMXXAMXXXXAMXMXXAAAAMMMS +MXAAASMSMSMMAAMXMAMMSMMSMMSSSMMASXMAXSXMXXAXAASAMASXSXSSSSMSXMAXMXAXMMAAASMXSXSSMAXSXMASMMMAXMXMAXSAMSSMMSAMMMAMXAMAXAAXSSMSSSXMAXMMMMMMMAAX +SSSMXSAAAXMXMMAAMSMMAAMXSXAXAASAMAMSMMAMXMMMSMSASXSMMXAMXSXMAMASMSSSSSSSSMMXMMMAMSMMXMASAXSXXSAXMMSAMXAXAXMXAMMMXMAAMMSSXAAAAAMASAASMSXSXMSS +AXAXAMMMMMMXSMSXAAASMSXAXMMMSMMASXMMAMXSAMXAXXXAMMSAXSMSAXMAMMAMXAAAAMAMXAMXSASAMXSMAMASXMMSMSASMAXMMSXMMSXSMMSAMXAXMAXMXMMMSMAAXSXMASAAXSAM +MSAMXSASAAXMXAAMSSXMAMMMMSAMXAAXAMASAMASXSMMSSMAMAMSMAAMASMSSMXSMMMMMMSMXXMASASXMAMMAMAMAXAAXXMMMSSMXMASXAAXXAAAXXMSSMMSMSAMAXMAXMMMAMMMMMAS +XAAMXXASMXSMMMMMAXAMASXMASMMSSMMMMMMXMMSAMMMAMSMMAXASMXMSMAXAAXAXSAXMXXAMSMXSAMMMAMXAMXSMMXSSMMAXMAMSAMASMXMMMXMMXXAAAAAXXAMXSSMAMSMMSXXASAM +MMAMAMMMXMAXXMSMXSXMASAMASXMAAXMMASMMMXMXMAMAXAXMMSMMXAMXSMSAMXMXSASXAMXMAAMMMMASASXSSXAXAMAAMXAMMAMMASAMXMSASASXXMSSMMSMMAMXXMMSXMAXMASMASM +ASAMXSAAASMMSAAMXSXMMSAMAXAMSXMMSASASAAXAMXSMSXSXMAAMSAXAAXMAMAMAMMMMMMAXXMXAMXAMXSXMAXMXSAXMXMSSSSMXXMAMMXMASAXAXMAMXXXXSSSMAMSMASXMMMXXXXS +MSASASMSMMMAMSAMAMASAMXASMSMMAAAMXSXMASMSMAMXXAXMSSSMXMMSSMSASXMASXXMASMSSSMASMMSXSASXMSAMSMXSXAAAXSASMMMSASMMMMAMMASXMMAMAAMAMAMAMMAASXMMMS +XSAMAMXXMSMXMXXMASXMASXMMAAASXMMSMMMMMMAAMASAMMMMXMMMXMAMAASAXMSMSMMXMXAAAMSMXMAAAXAMAXMMMAXASMMMMMAMXAAMMAMMAAXAASXMMAAMMSMMMSMSSMSSMMAAAAM +XMXMAMXMASAMXXXMAXAMXSXMMSMMMMXXAMXAAAMXMASMXASAMAMMMAMXSMMMSMAMXMASAMMMMMMXSAAMMSMSMMMSASXMXMXAMXSAXSMMSMMMMSMSSXXMASMMXXAMXAAMAAAMAMSSMMSS +XMAMAMSMMMMAXXSMSSXMAMAXAAMXXASXSSSSMXMAMMMASMXASASASXSXXAXAMMXMAXSMXSASMXSAMXXXAMAAAXASASMMAMSMSMSXXAXAXAAMMAAAMAMSXMAXSMMMMSSXSMMMAAXMAXAA +XSSSXSAMMAXMMXMAXAXMASMMSMSXMASAMXAMASMXMAMAMMSAMASMSAMASMMMSMSSSSMXMXASAAMASMSSMMSMXMMSXMAMXMASAAXMXMXSSMMSSMMMSSMMMXMASASAMXXAASMSMMSSMMSS +AAAXMAMASXSXXMMAMXMMMMAXXASMAXMXMAXSXSASMMMSAMXXMXMASXMMAMXAAXMAMAMMMMMMMXSAMXMAAXXSAMMMASXMXSXSMSMAAMAXAMAAMAXMAXMAMMXASAMAMAMXMMMSAAAXXAMX +ASMXXXAAAMMXSASASXMXSSMMMXMASMSXMSAXAMAMMMAXMMMXMAMXMSXMMAMMMSMSMXMAMAMAMXSAMMSSMMXMXSASAMASAMXMAMMSSMASMMSSXSMMAXSXSAMXXASAMXSSMMAMMMXSMSSM +XMXSMMMMSAAASMMMSMAAMAXXMSSMMAXXAMMMSMMMSMMMSAMXSASAAMXSAMXSMSAXMSSSMXXMMASAMMAAMMSMAAMMXSAMMSAMAMMAXMASXAMMMMXXAAAAAXMSSMSASAXAAMSSMSXAXAAA +MMAMAAAAXMMXSAMXSAMMSSMMXAAAMSMMXSAAMAMAAAAAXAMXMAMMMMAXXMXAAMAMAAAAASASMXSSMMMSMAAMAMXXXMMSXXXXSMMAXMASMSSMAMASMMMMMMMXAASAMXSMMMMAAAMMMSSM +AMASMSMMSAMXSAMAMSXMAMASMSSMMMXMAXMASXMMSMMSSSMSSMMAXMAMAMAMXMSMMMXSASAXXMMMMSMXMMXSXXXSXMASMSMMXMMSMMXSAXAAMXAXXXAAAAXXMMMAMXMMXASMMMMSMXMX +SMAXAAAXSMMAMAMSSXSMASXMAXXXAXAMASMASXAAXMXMAAMAAASXMSSSMMASXSAMXMXXAMAMSMSAAAAASXMMXSMAXMAMMAMAXAAMASMMMMMSXMASMSSSSSMXAXMAXSAMSXSMMMXAAXSS +MMSMSMMAMMMSSSXMAMXSAMAMXMMSSXXSXMMMSXSMXXAMXMMMXMMAMXXAMSASXMAMXSAMXMAAMAAMSSSMXAAAAXAMMMMMMASMXMMSAMAAASXMMAXAAXMAMAMSXMXXXSAXAMXMAXSASAAA +XAAAXMASMXSAMXAXSMMXMSMMMSXAMSMSXMAMSXMSXMMSASMSSSSXMMSMMMASXMAMSMASMMASMXMMXAXASXMMSSSXSAAASASXASAMASXMSMMSMSSMMMMSMSMMASMMASXMXAAMMMAAMMXM +MXMMMXAMAXMASASMXASMXAAASAMXSAXXAXAXMXSASAXAMAAAAXAXAAAAXXAXXXAMXSAMXSSXMAXSMMMMMSAMAXMAXMMMAAMMXMAMXMMMMAAXAAAAMSAAXAAMAXAAMSAMXSSMSAMXMSMM +SSMSSMASMMSMMAXASMMASXSXSXAXMXSSXMSASMMASMSSSXMMMMXSMSSMSASAMXMSAMXSASXAMXMXAAXSAMXMMXMMMSMMMAMMXSMMSXMAXMSSMSSMMMSMSMSMMMMMXXAMAMMASAXXMXAA +AAAAXMXMXMAXMXMASXMXMXMAXMASMMXXXAMAASMAMXXAAMXAXSAMAAAMAMMASAMXASAMXSMMMMXSSMSMXSXAXXXSAAAAXSXMASAASAMMSMXAAAXAXXAMSAMASASXMSMMMSMAMXXMMSMM +SMMMSSXSASMSMAMXMAMAMXMXMMAAAAAMMSMMMXMASMMMMXMAMMAXAASXMXSAMASXMMXXXMAXAMXAAMXXAMMMMXAMMSMMMMAMASMMSMMMAMSMMMSXMMMSMASAMAAAAAXAAAMMSMAAAMAS +MAMXAASMMSAAXASXSMSASMMSAMSSSMMSAMASMMMXAAAAXSXMASAMXSXAXMMXSXMAMAAMMMSMMMSXMAMMXMASMXMXAMXAAMAMMSAMXAXMAMAXSAMAAAMSMAMXMXSMMMSMSSMXAAXMXSAM +MASMMMSXAMXMSMSMAXSAAAAASXAXAAAMMSMMASXXMSMSSXAMAMASXMMMMASAMASAMSMSXAAXMAXAXMXSSSXSAASMMSSXXAASXSMMMXMSXMXXMASMSMMXMAXAAMXAAXXXMAAMAXSAAMXS +SASASASMSMSMAASASMMAMMMMMMMXMMMSMAMMAMXMMAMXXMXMAXMMAMAXMAMASAMAXXASMSSSMMMMMAXMAMMXMXXAAXAAXSAMXSASMXMAMXMMSXMMAAXAXSSSSMMSMSSMMMXSAAAMMMAS +MXSAMASAAAASMSMAMMMAXXSAMASXAAAAXMSSMSSXSAMAXMSSMSSSSMSSMMMAMXSMMMAMAXXMMAASASASMSSMMXSMMMSMMMASAXSAAASMSAXXAAXSXSSMMMAMAXXAMAAAXAAMXMMXAXAS +SXMMMXMXMMMSXXMSMXXSSMMASAMMSMXSSXAAXAAXXMSMSMASAMXAXAMSXMASMMXAASAMMAMXMSXSAMAXAAAAMXAXAAXAXSAMAMXMSMMASASASXMMXMXMMMAMAMSAMSSMMMMSSXXSMSMS +MAAAXAMSSMMXAXAMMMAAAXSAMASMMSAAAMSSMMXMXXAAXMAMMMMSMSMSXXAXASMSMSXSAAXAMMMMMMMMMSSMMMMXMMMAMMXMMMAAXXMXMAMMXMMSAMAXAXXMSMXSMXAXSAXSMMAAAAAX +SSMMXXMAAAMMSMMMASXSAMXXSAMAAMMMMXXAXXASMSMSMMMSAXAXXAASXMMSMMAXXXAAMMSMSAMAMAXAAAMAMAXXSASMXSXSXMASMSXMMAMXXAAMASASXSAMXMXXXXMXMXMMASXMSMSM +AAASASMSSMMAAAXMXSAAAAXXMXSMMMSASMSSMSMSAXXMMMASMMSMSMSMMSAAXMSSMMMMXAAASMSASMMMMMXAASMXMXXSAMAMMMXMAXASMSSSSMMSXMXXXAAAXMASMSMMMMMSAMAXXAMX +SSMMASAMXMMSSSMSAMXMXSMMSMMMXXXASAAXAAAMMMMMXSASXXXXAMXAAMSMSMAMXASXSMMMMASMMXAMXSSSMXXAMAMMMMAMASAMXSXMAMAMXAAXXMMSSXMMXMASAAAAAXAMASXMMSMS +XAXMXMXMAXMMAXAMXSASMXMASAASXXMSMMMMSMMASMMMAMASASMSMSMMMMMXAMAMSXSXAXMAMXSASMSAAMAMXMASMASAASASASASASAMXMSMMMMXAXSAMMSXSAMXXXSMXMMSXMAMMXAA +SMMSSXSMSSMMMMXMXSASAXMASXMSAMXMAXXAXASAMAAMXSAMXXXAMXXMAASMXSAMSAXMMMXMSAMXMAAMMMAXXXMAMSSXMSASASAMASXMXAXMSSMSMXMASASXMXMASMMMXMMMMSAMSMXM +AAAXMMMAAAAAXAMMXMMMXMMAMMMMXMAXMMMSSMMSSSMMASAMMSSSMMAASMXMAXMSMSMAXAAMMXSAMXMXSMMMSSSSXXXMXSAMXMXMMMAMMMSMAMMAMMSAMMSAMXMASXSXMMAAMMSMXAMX +SMMSXAMAMMXMMMAMASAMMXMASASXMSMMMAAAXMAMMMMMMSAMAMAASMMMMAMXSSXMAMSXMSXSAMXMMMMXMASAMXAMMMAMASASXMASXAMXAAAMMMSASXMASXXAMXMASMMMSSMSMAXMASMA +AXXMASMSSSMSSSXXAMSSMASXSASMMASMSSSSMMMSXMAMXSMMMSMMAMMXMSAMXAAMSMSMMXAAAMAXXAMMXMMSSMMMXMAMAXSAMSMMAXXSMXMMAAMAAMSMMMSAMSMMSAXAAAMMMSMSXASX +XMSAMXSXAAAAXAAMSSMXMASAMAMAMASXAMMXAMAMASMSMMSMAAXXMMSMMXAXMMMMMXXAXMMASMXSSXSASXMXXXXAMSMMXMMMAAASXSMSMASMMXSSMAXAAAMXMSAASMMMSSMXAXAXXMAS +MXXMAMXMSMMMMMSMXAXAMXSMMASMMXSMMMSSMMAMMMMAAAXMSMXXXXAAXSXMAMSXMASXMASAAAXMAMXMAAMMMMMAXAXMMSSXMMXMAAAXMASAXMAMXSSMMMSAMMMMXAXMAMXMMMSMMMAS +AMASXSSMMXAMSMAMXMMMSMMXXAXAAXXAXAAAASMMSASXMMMXAASXSSSSMMMXXAMAMMMSAMMMSMXMASXMSSMAAASXSXXXAAXXMSXMSMMMMAXXMAMSSXXAAASAMSSMSSMMASAMAAXAXMAM +MSAMXXAAMXXMAMXSAMMAAAXMMSSMMXMSSMMSMMAXSAMXAASAMXMAAAAMAAMXSSSMMSASMXXMAASMMMAXMAMMSMSXSMSMMSSSMSAAAAAXMSSSSXMXMASMMXSSMAAAAMASASAXMMSAMMSM +MAMASAMXMASMMSASMSMMSSMAXAAAXMSAAAAXMXSMMAMXMASAXMMMMMMXSASAMMAMMMAMAMMSMAMXAXXMSAMXMASASAAAMMAAASMMMSSMMXAAMAMXSXSXXAXXMXXMSSMMAXXMSXMAMAAA +XXMAXMXAMMSAMMASAXXAMMMXMMXMAXMMSMMMSSMAXXXXSASXMXXAXXMMMAMAXSAMAMAMXXAAMXASXMXMMMMMMAMAMSMSSMSMMMXXAAAASMMMMAAMSASAASASMSMXAAMASMSXMAXAMSXS +MMMMSAMXSXSXMSSMASMXXASXSSSSXSAAMASASASXMMMMMXSASASMSSXSXSSXMMASMSMSMMSSSMXAMSASASAMMAMSMXMAMAMMXSXMMSSMMAAAMSXSMAMAMMAXAASMSMMAAAXASAMMMXAM +AMAXSAXXAXXAMXXMMMXXSAMXAAAAXSMXSAMMSAMXSAAAXASAMAMXXXAMAMAXMSAMXAAAAAAXXXXMASASASASXAMXSSMASMMSAMASAXXMAMSSXXSAMSMAMMMMSMMMXAMSSXMXMXMMAMXM +SMMMMMMMMXSXMAXAMXAMMSMMMMMMMMSAMXMXMMMAXSMSSMMXMXSSMMMMAMAXXAASMSSSSMXSXMXXMMAMASAMXXSAMXXAXXAMASAMMSMAMMMXASXXMASXMAAAXXMASAMMMMMAXAMSSSSS +AAMAAXXAXAXASMSSXMXXAAMAXXXXXMAXSAMMSXMAXAXMAMMXAXMASXASASXSASXMAXAAXMMSAMXMXMXMAMXMXXMASAMSSMMSXMAAXAAAMAMMXXSXXMMSSSSSSMMMMXMAAMSMMXXAAAAX +SASXSMSMSMSXSAAMAMAMSSXSSMSMMXMXXASASXXMAMXMAMXMMMSAMSXSASASMMMMXMAMXXAMAAASASMMMSSXMASMMAAAXXASXSSXSSSMSSSMSAMXXXSAMXAAMXAAXMSMXMAXAMMMMMMM +AMXAAAAAAAMAMMMXAMXXMAMMAAAAAAMXSAMAMMSSSSSSXMXAAMMAXMMMAMMSASXMXXAMXMSSMSMSASXMXAAXXAAMMMMMMMXSAAAMMAXXAAAAMASASXMMXAMXMSMMMXAMMSSSSMAXMAXM +SAMXMMMSMSMXMAXSAMSSMXMSASMXMASAAMMSMAAAMXMAMSSMXSSMXAAMASMSAMXMASMMXAMXXAXMMMASMSSSMMSSXMMXAXMMXMAMMAMMMSMSMAMASXAAAXXAMXXAXXXMMSXAXSMSXMSS +AXAMXSXMXAMXMAXXMMMAXXMXXMAXSASMSMAXMMMXMAAMAMAXXXAASMMSASXMMMMMMXAAASMMSMSSMSSMAAMXAAAMAMSSMSAASXXSMMSAAXAXMMMAMXMMSMASXAMSSMSSSSMSMMXMASAX +XSSXMASXSMSXMASXMASAMXMASMXMMAMXAMXSXMSASASXSSSMMMMMMAAMXSMSASMAMMMMXXAAXXAAMMAMMMMSMMMSAMAAMAMMSAXXAXAXXMAMXXMAXAMAAASAMXSAAMSXAMAASMXSXMAS +AAMAMXMMAAAXSASXSASAMASAXMAMMXMXMMASAMSAMAMAXAAAXAXXSAMXSMXSAXSAMAASMSMMSMSXMSSMMAMXXAMSXSMSMMSMXMMMMMMXMASMMMMXSASXSSXMAXXXMMMMSMSMXSAMMMMM +MSSSMMMSMMMMMMXAMXSASXMASMXXSASMXMXMXMMAMAMAMSXSASXXSAMXMXAMMMSMSMMMMAMXMMAMXMMASXSMSMMXASXXAXXASXMASAXXAMMXAAAAXXMAMMMXSSMMXSAAXMXAXMMMAAAA +MAAAXXAAAMXSAMSXSASMMASAMMMMMASAXSMSMSMSSXSXMMAAAXMXSAMAMMMXSAMAAXAASAMAAMMSAAMXMAAAXSAAXMASMMSSMASASMMAXXASXMSSSMMMMMSAMXASASMSSSMSAMXSSXSA +MMSMMMXXSMXSAMAAMASXMASAMXAAMXMXMMAAAAAXXXMAMMMMMMXAMASXSAMAMASMMSSXSAXSSMASXSMMMSMMMMXMMMMMAXSASXMMSAMASXMXAAMAXAAXAMMMSMSMXSAMAXAXMAXAMXMM +SMAXXMXSAMXSAMMMMAMAMXXMMSSXSXMAMMSMSMSMAXSSMSXAAXMXSAXASASMSAMAAAXMMMMMAMXSAXMAAAAMXMASXXASMMSAMMSAMAMAXAMXMXMASMMMSXMAXXAMXMAMXMMMXSMMMAAA +XAMASAMAAMASMMMAMXSXMMMXMAMSSXMAXXXXXMMMSMAMASMMXAAMMMSMSAMAMXSMMMSMAXXSAMAMMMSMSMMSAXAXMAMXSAMXMAMMSSMMSAMXXXMASAMSMXMAMXSMSMSMSAXAXXAASXSS +XSMAAXAMXMAXAASXSASAAXMAMMSAMASXXXXASXAAAMMMAMAXMXSAXXMXMAMMMAXXXAMMSSMSAMAMAAMXXAAXXXSMMMXMMSSXMAXXAMAASMXMXXMASASAMXMASAAMSAAAASMSASXMSAMX +MXMXSXSASMAMSXSAMASMMASXMXMASXMMSSMAMSMSSSSMSMXMMAAXMAMASAMXMMSSMASAAMASMSAXMXSAMMMMSMMASAAMSASASXXMASMXSAAMSMMMSXMASMXMAMXAMSMMMMXMXAAMXMSA +AAMAXAMAMXXMXAMXMXMASAMAXSMMMAAAAXMAMMMMAAAAAMXSMASASASASASXXMAXSMMMMMMMAXAMAAMAMMSASASAMSSMMASXMSMXXMMXMMXXAAAAMAMXXXAXXMMSAMXXXXASMSMMAMXA +XAXXMAMMMMXSXMSXSMXAMAMXAXAAMMMMXMMAXAAMMSMMMSAAXMMASASMXMMXAMXXMXMXXXMMSMXAMSMSMXMASXMAXAMAMXMASAMSAMXSXAMSSSMXSAMSXSXMAXSMXSASMMMSAAXSASAM +SXMSMSMXAXMAMXMAMXAMSXMXMSSMSSSSMSXSMSXSAXXMAMXSMXMXMAMAMSSSSMMSMSMSMAAAXAASMXAMXMMAMAXSMMSMASXXMASAAMAMAAMAAXAAMXMXAMASXXMXXMAAXMXMXMXSAXAS +AMAAAAMMXMMSASMSMSMAAXSXAMXAXAAAAMAXXAASMMSMASAMMXMXSAMXMAAMXAMXAAAAXXMAMSMXAMAMMSMAMXMXAMXAAMMMAXSMSMASASMSXMMXSXMSAMMMMASXXMSMSAXMMXMMXXAM +SASMSMSSSMAMMSAAXAAXMAMMXMMMMMSMMMAMMMMMAAXXSMMMAMSASAMXMMSMSXMMSMSMSXMXMXMMMMAMASXSSMASXMMMMSAAXXXAXMXMXMAXXXXAXAAMXMXASAMXAXMAXAMMASXXSAMX +XAXXMASAXMAMXMXMSSSMXSMSXSAAXMAXAMASMMSSMMSMMASAMXMAXAMSXMAMMMMMMMXXMXMASASMSXXMASMXAMMMSMAAAXAMMAMMMASXMMAMAMSXXMMSSSSXMXSXSMMSXMASASMAMAXS +MXMMSSMMMMAXAMXXMAAXXXMAASMMSMSSMSASAAAAAMXMSAMMXMXSMMMMASAXAAAASXMSMASXSASAMXXMMSMSMMXAAXMMXSMSAMAXAXSAMMAMAAMAXSMXMAMMSMSAAXAXAMMMAMXAXAXX +MXMASAMXASMSSSXSASMMMSMMXMXSAMAAMMMSMMMSSMAMMAMXXAAAXMASAMXMXSSMSAAXSAMAMAMXMMXMMSASAMMSSSSSMAAAXXMSMMMAMSSSXSMMMMAAMAMAAAMSMMXSAXMMSSSSSMSX +XAMXSMMMMSAAAAAAAMXSAAXSMSMSSSSSMMASXAXXXMAXXMMMMMXSXSAMXMSSMAMMSMMMMMMXMSMXAXSAAMMSAMAMMAAMMMMMXMMAAAMMMAAXMMAMSSSSSMSSMSMMMAASXMASAAXAAXSX +SSSMSXSAXMMMMMMMMMXMSSSMASASAMXMAMASXMXSMXSXXXXXMMAMXMMXXAAXMAMMXMAXMAXAMXASASMMXSASXMASMMMMXXAXASMSSMSMMSSMASAMMAAXXMAMAAAAMMMSAAMMMMMMMMSA +AAAAXAXXSMXASASAXXAXXMAMAMMMXMASMMMSASAMAAMAMSMAMMAXMSMSMMASMAMMASXSSSSMSXMMMMASAMXMASASAAMAXSXSMSAMAMXMAMAAASASMMMMMMAMMSSMXSXMAXAAAXXXMAXM +MSMMMSMMMMMASAMXXXXSASMMSSXXSMXXSAXMAMMSSSMAMAAASMMSAAAXMMMAMMMSASXXAAMASMXAASXMXMASXMMMXMSMASXMMSMSAMAMXXAMXMAXXXAAMSMSMAXXAXMASMSMSXMAMMSS +MAMXAMAAAAMMMAMXSMASAMXMXMMMAMSXSMSMAMXAAMAASXSMSXAAMMSMXASAMSAMAXMMMMMASAXMMSAMASMSAASXMMAMMMXSAMXSAMMXSAMXASXMSASMXAAAMXMMMXSAMXMXAASXMMAA +MXXMAXSMSMSSSMSAAMMMMMMMAMAXMASAXAAXMMMMSMXMSXXAXMMMSXMMSXSAXMXMASXAAXMASMSSXSASXSMMMXMAXSXAAXAMASASXMXAMXXMXSAAXXMXSMSMSMMSAMXAMAMXSAMASMAS +SAMXSXMAXASAMAMMXAMXAAASASAMXMMMMSMSXSMMAXAMXMMXMXAXXAMMSMMMMMMXMAXSSSMXSAXMASAMXXMXMXSMMMXSMMMSAMASMSMASXMMASMMMSMMXAXXSAAAXSSXMAMAMAMAXMAM +XXSAMAMAMXMMMAMAMSXSXSXSXSASAXAAMAAAXAMMAMSMSAAMMSMSSXMASXMAXAASXMAXAXXAMAMMAMAMXMSASXASAMXXSSXMXMXMASAMMMSAAMAAAAASMSMAMMSMSMXMSSSXSMMSSMXS +XMMXXAMSMSSXSASAMXASAMAMXMASAMSMSXXSAMXMSMXAMXSAAAXMASMASMSXSSMSAMXMMMMXSSXMXMSAMXSASXSAMXSMAMAXASMMMMSXMAXMSMMMSSMMAXMXMXMMMXAXAAMASMAXMXMA +SAXASXSMXAAXMASAMMAMXMAMAXMXMMMAXAMAMXAMXAMAMSMMSSXXMAXAMXSAAAAXAMSMXXAMMAMMSMXAXMMMMMMXMMAMXMSMMSAAMAMMMXSAMXMXAMXMAMMSMXAAMSSMMSMAMMSMMSAM +XMXMAMAXMMXSAASMMSMSASMSSSMAMXMXMMMAASMSMMMXSAMXMMXAMXSSMASMXMMMAMAMSMSMSAAAAASXMASAXAXASXSXSMXAXSXMMAMMAMXMSXMAASMMXSXMASXMXAASAMMXSXXAAXMX +SSSXSMAMXAAXMXSXXXASXSAAAAMXMAMASMMMMMXAAAAMAMXMXAAMMAAMMAMXSSXMASMSAMMASXSSMMMXMSMAMXSAMMMAAMSAMXAXSAXMASXXSAMAMXAXAMAMASMMMSSMMSMMMASMMMSX +AAAAXMXSMMXSMAXMMMXMAMMMSMMSMASAXMASASMSSMSSMAAMMMSXSMSMMSSMMAASXSXSASMAMXMAMSAMXAXAAXMASAMSMMSSMSMMMASXXMXAXXMASMMMMXMMAMAAAXAXAAMAMMMXMSAM +MAMMMSMMMMMAMASAASAMXMAXAXXAMAXMMSASAMXAAAXMXSAMAAMASXAXAMXAMSMMASMSAMMAMXXAMXXSSSXSSXAAMAXXAAMAMXXMASAMMMMSMXSMXASAMASMSSSMSSSMSMSAMXXXMAMA +AAXAXAAXAASAMMAMSSMSAMXSMMSMXMSMAMXMXMMXMMSSMMASMSMAMMSMMSSMMXAMXMAMXMXXMAXSMSMMAMAXXMASXXMSMMSMSAMXXMMMAXAXAASMXMAMSMSAAMXAAAAAXASXSXMAMMXS +MXSMSSSMSXSAAXAXMXMXXXAMXAAMAXAMSSSMMSMMXMAMAMXAMXMXMAXAXMAAAXAMSMSMSSMASMXXAMXMAMXXMMAAMMMAAMAAAMXSXSXSSMMXSSMAASXMXAMMMXSMSSSMMMMXAXSAMAAM +XAXMAAXXXASXMMMSXASMMMMSMSSSMMASAAASAAXXAMMSXMXSAAAAMXSSMSSMMSAMXAAAAMXAMAAMAMXMXSAMMMSSMAXMSMMMMXAMXMAXAASMMMMXMMAMMMXAXXSAMAAASXSMSASASMSS +MXSMXXMXSMXSXAXMMMSAAMXSAAMAMSMMMSMMSSMMXSXXAMXMMMSXSAAAAAAXMAMXMSMMMAMSSMSSMMXMAXAMAAXAXSSXXMSMSMXXAMMMSMMAAMAASMSMAMSXSMMAMMMMAXXAMASAMAAA +SMMMAXSXMMAMMMAAAXSMMMAXMSMAMMAMXMXMAMAMSMMSMMSSXMMAMMSMMMSMMAXXXAXMMXXXAMXAAAMMSSMMMMSAMXXXMAAAAMSSSSXAMAMSXMMMSAMSSXMAAASXMASXMSMMMAMXMMMS +AXAAXMMAAMASAMXXSMSXSMMXXMMAXSAMASMMAMAMMAAAAAAXAAMAMXXXAXXMMMSMMMMSMSSSMMSMMMXXMAXXXAMXMASXMSMSMMAAXSMXSXMMSMXAMAMAXAMXSAMXSAMAXMAAMXSASXAX +SMMMSASMMSASMXSAXAMASXSXASXAMSAMASASXSSSSMMSMMSSSMSMSMXSSSMAAAXAAAXAAAXAAAMAAMXMSMMMAMSSMXASAMXAAMMXMXMAMAAAAXMXMMMXXXMMXAAAMASXMMSMSASASMMS +XAAAMMMXAMXSAAMMMAMSMAXMMMMXMSMMXSMMAMXAASAAXSAMXXAAAAXXMAXMMXSSSXSMMMXSMMSSMSAAAMMMSMAAXXMSMXMSMMXSAMXSSSMSSSMSMMXSXAXAMXMMMAMAAXAAXMMXSAAX +MXMMSXXMXMXMMXSXSAMXMSMSAAMAAMASAMAMSMMSMMSASMMSMSMSMMMASMMMSMMAXAXMASMAXXXXMSXSMSAAAMSSMSXSMAMXSAMASXAMMXAAMMAMXSAMSSMMXASAMASXMSXSSXSAMMMS +AAMXMXMXAAXMMMXASXSAAAAMSAXXMSAMMSAMAXMXAAMXSAASAAMAXXAXMXAAMAMAMSMSASASMSXAXSXMASMSMMAAXXAXXMXAMXSAMMMSAMMSXMAMMMAXAMAMSASXSASMAMXMMAMASMXX +MMSAMMASMSMSSMMMMMMMMMXMMMSSMMMXMXXSXMXMMMSSXMMSXXMASXSMMSMMXMMSSMAMMMXAASXMMSAMMMXXMMXXMMSMASMMMAMAMMAMAXAMASXSASXMASXMAXXXMASMAMSMMAMXXXAS +SMSASAMMMAAAMSASASXSSSSMSAMXAAAMSAMMXSAAXASMMSXMMSMAMXAAXXASXSAMAMMMASMMMMAMAMAMMMASMSSMMAXMAMAXSXSMSMMMSMXSAMASASASAMAAMSXMSAXXAMSXSXSMXMMM +AMMAMXXXXMMMSSMMASMMMAAAMXMXMMXSMASAAMXSMMSAAMAAAMMSMSXMXMASAMXSAMAAMAXAASAMXSMMXMASXAAMMASMAXXMMASAAAAAXXMMAMXMAMMMASAMXMAMSASMSSMAMAAAXMAS +MSXSAMMSASXXXMAMSMXAMSMMMAMSMSXAXSMMSSMXASMMMSMMMSAXXSASMSAMXMMXAMAMXMMSXSMSMAASMMASMSMMMMMXAMAXMAMXMSMASASMSMSMSMMMAMAXMSAMSAMMXAMAMSMMXSAX +XAMMAAAMAMMMMMAMAAMMXAXXSXMAAXMXMMAMAAXSSMXMMAAMXMASAXAMMAMMMSSSSXSAAXAXAMAAMSMMAMASMXASAXMAXASAMMSAXAMXSXMAXSXMASXMASXMASMMMAMXSMMXXAAMXMMS +AMAMSMSMAMXAASMSMSMSAMXXMAMMSMSSSMAMSSMMXMASMXSMXMXMAMSMMASAAMAAAAMSXSAMAMSMXXXSSMMSASAXMSMASXMASAAXMMSMSAMXMMMSAMXSMXAAMMXAXAMXSAAMSMSMAAAA +SXSMXAXMAMMMMSAMAAAXXSXMMMAXAMAXAXXXXAASMMMAAXMMMSAMXMXASASMXSMMMMMAMMASXMXSAMXMAAXSXMAMSAMAAASXMXSMSXAAMSAMXXAMASXMSSXSASXXMAMXXMAMSAMMSMMX +AAAXMXMSMMMSMMAMSMSMMMXSAAXSSSMSSMSASXMMAMSMSMSAAXXXSASMMMSMXSAMAXMAXSAMAAMSXMASMSMSAMMMSASMMXMMMSAAXSMSMAMASMSSMMAAAXXMAMAAMSSMMXSXSASAXMAM +MXMXSAMMAAAAXSSMMAAAAXAMMXMAMXXXMAXASXMXAMAAAAXMMSSMSXSAAAMMAMASMMSAXMSSMMMMASXXAAASXMAAXXMXMMMSXSMSMXMMMXMAMSXAXSXMMSMMAMXMMAAAAXMAMAMXMMSA +XAMAXASMMMSXMAAAXSSSSSXMASMSMMSMMSMASASXXSMXMMMMXXXASMSXMSSMASAMAAMAMMAMAMXSAMXMSMMMSSMSSXMASAAAASXXXAAAXAMXMXXAMXMXXXXMASAAMXSMMSMAMAMMXAAA +SASASXMXAXXMMSSMMAAAAXMASXXMAMMAAXMXMAMAMXMASMMMSAMXMASMMXAXXSASMMSSMSASAMAMAMXAXAMXMMXXAASASMSMMMMXMSSXSSXMASXMXAMSSMMSAXMXSAMAXXMAMAMAMMSM +SXMXSAAMMMSXMAMXMMMMMMMMMXASMMMMMMSXMAMAMASASAAAMAMMMMMAMSMMMMMMMMAAASASMMMSMSMSSMXMASMMSMMAXAXXSASAAMAMAAAMASAMSASAAXMASMXXMASXMSSMSSSXMMAM +MXSASMMMXAASMMSXSAMXXASAMXXXXSXASXXASXSASXMASMMMSAMAAASAMXXAAMAAXMSSMMAMMAAAAAMAAXASAAAAMAMSMSMMSASMSMAXSSXMASAMSSMXSXMAMMXMSXMAAMMMAXXMASAS +MSMMSAMAMMSSMXMXSXXMASMMSAMXAMSAMXSXMASXSAMXMMAMXXSSSMSASXSSSSMSSXMAXMXMSXSMSMMSSMMMSSMMSSMAXXMAMXXMAXXMMMMMASAMXMMMMXMASAMXMASXSSSMMSMMMMMS \ No newline at end of file