diff --git a/2024/Day 4/gold.py b/2024/Day 4/gold.py new file mode 100644 index 0000000..3268f23 --- /dev/null +++ b/2024/Day 4/gold.py @@ -0,0 +1,28 @@ +with open('puzzle.txt', 'r') as f: + lines = f.read().splitlines() + +xmas = 0 + +for y in range(len(lines)): + for x in range(len(lines[y])): + if lines[y][x] == 'A': + extra_check = [] + + if 0 < x < len(lines[y]) - 1 and 0 < y < len(lines) - 1: + if (lines[y - 1][x - 1] == 'M' and lines[y - 1][x + 1] == 'S' and + lines[y + 1][x - 1] == 'M' and lines[y + 1][x + 1] == 'S'): + xmas += 1 + + if (lines[y - 1][x - 1] == 'M' and lines[y - 1][x + 1] == 'M' and + lines[y + 1][x - 1] == 'S' and lines[y + 1][x + 1] == 'S'): + xmas += 1 + + if (lines[y - 1][x - 1] == 'S' and lines[y - 1][x + 1] == 'M' and + lines[y + 1][x - 1] == 'S' and lines[y + 1][x + 1] == 'M'): + xmas += 1 + + if (lines[y - 1][x - 1] == 'S' and lines[y - 1][x + 1] == 'S' and + lines[y + 1][x - 1] == 'M' and lines[y + 1][x + 1] == 'M'): + xmas += 1 + +print(xmas) \ No newline at end of file diff --git a/2024/Day 4/main.py b/2024/Day 4/main.py new file mode 100644 index 0000000..a734725 --- /dev/null +++ b/2024/Day 4/main.py @@ -0,0 +1,37 @@ +with open('puzzle.txt', 'r') as f: + lines = f.read().splitlines() + +xmas = 0 + +for y in range(len(lines)): + for x in range(len(lines[y])): + if lines[y][x] == 'X': + if lines[y][x:x + 4] == 'XMAS': + xmas += 1 + + if lines[y][x - 3:x + 1] == 'SAMX': + xmas += 1 + + extra_check = [] + + if y > 2: + extra_check.append(f'X{lines[y - 1][x]}{lines[y - 2][x]}{lines[y - 3][x]}') + if x > 2: + extra_check.append(f'X{lines[y - 1][x - 1]}{lines[y - 2][x - 2]}{lines[y - 3][x - 3]}') + + if y > 2 and x < len(lines[y]) - 3: + extra_check.append(f'X{lines[y - 1][x + 1]}{lines[y - 2][x + 2]}{lines[y - 3][x + 3]}') + + if y < len(lines) - 3: + extra_check.append(f'X{lines[y + 1][x]}{lines[y + 2][x]}{lines[y + 3][x]}') + if x > 2: + extra_check.append(f'X{lines[y + 1][x - 1]}{lines[y + 2][x - 2]}{lines[y + 3][x - 3]}') + + if y < len(lines) - 3 and x < len(lines[y]) - 3: + extra_check.append(f'X{lines[y + 1][x + 1]}{lines[y + 2][x + 2]}{lines[y + 3][x + 3]}') + + for check in extra_check: + if check == 'XMAS': + xmas += 1 + +print(xmas) \ No newline at end of file diff --git a/2024/Day 4/puzzle.txt b/2024/Day 4/puzzle.txt new file mode 100644 index 0000000..3e8c6c6 --- /dev/null +++ b/2024/Day 4/puzzle.txt @@ -0,0 +1,140 @@ +MSMSMAXXAXXXXAXXAXMASMXSXMASMXMXMASMSSXASAMXSAMXXSAMXXMAMMSSMSSSMXSAMXXXXXSXSXSMSMMMMSXMASMMMSMSSSSMMMSAXSSSSSSXMASAMXMSSMMSMMMSAMSAMXAMAMXS +SAAMMAMSSMMMSMMMSMXMXMAMAMAMAAMXMAMXAMXXMMSMSASXMSASAXXMXMAAXXAAAAMMXSMXSAAASAMAAMXSAMXXXAAAAAASAMMAAAMMMMAAAXMASAMXMAXAAAXAXAASMSMXMXSAMSAA +XMXMMAXMAAXAAAMAAAAMXMASAMMXSAMXSSSMMSSXMXAASAMXAXAAXMXSAMSSMMAMMMXMMMSAAMMMMAMSMSAMASXMMSSMMSSMAMSSMSMSAMMMMMMMMMSSXMMSSMSASMXSXAAASAXMMMXS +SSMSSSSSSMMSSMMSSSXSXSXMXSMAXAAAXAAXMAMAMXMXMMMASMMMXMAMAXAMAMSMMSAMSAMXSXSXMMMMAMXSSMXXAAAAAMAMXMAMAXASXXAMXMXAMXAAAXXAAMAMXMAMMMSMMASXMSMM +SAAMAAAXAMXMAXAXXAAMAXMMSMMMSMSSMSMMMASXMASAMAXSXMXSAMMSXMASMMXAAMASMAMAMAMASAMXSMMMMXMASXXMMSSXMAMMSMMMAXSSMSSMSMMSMMMMXAXMASAXAXXXMXMAXXAA +SMMMMMMMMSXSAMXSMMSMAMXXAAAAAXXAXMXASMSASASASMXXAMASMSAAXSAMXAMSMMXMMAMSSMXAMXMAXAXXMASMAMXSXMAAAAMMAMXMSMAAAMAMAAMMXAXXAXMSXSMSMXMMMASXMSSM +MXAASMMXXAXXXAMXXAXAASXSSSMSSSSMMMSMSASXMXSMMMAXAMXSAMMSXMASMSMMSSXMSXSAAMSMSMMASMMASASXSXASASXSMMXSAMXAAMMMAMAXXSMASMMMSMASAXMAXAMASASAMAXM +SSSXSAASMMSSSSXSMSMMASAAAXAMXMASAXASMXMASAMXAMAXAMAMXMAMASAMXMAAAMAAAXMMSMAAAAMASMMXMASAMMXXAMAMAAXAMXSSXMMSXMMSMXMAMSXAAMXMAMSMMASASXSAMMSM +MAXASXMMAXSAXMASAAXSXXMMMMMMMSAMSSXSMMXAMASXMXSAAMASMMAMMAASAMMMMSSMASXAAXMMMMMXSXXAXAMXMAXMAMSMMMSAMAMMMSAMAMSAMXAAAMMSMSSMSMAXSAMASAXAMAAA +MAMXMASMXMMMMMAMMMXAXSXSMXAAXMASAMAXASMMSMMASAXXXMXSMMSSMMXMASXXXAAMXMMSSSSMSXMASXSMSASXXAMSXMAAMASMMXSAMMAMAMSAMXAMXMAMAXAAAMXMAAMMMMMAMMSM +MSSMSAMXAXSXXMASXMASMMMAMSSSMSXMASMSMMAXXASMMXSMMSAMAAAAAMMMMMMXMSSMXMAXAAXAXXMAMAXAAAMMMXXSASXSMMSASAMASMXMXMXAMAXMXMSSMSMMMMSASXMXAXMXSXMA +XAAXMASMMSAMXMAMXXAAAAAAMMAXASMMMAXAMMSAMXMAXMAAAMASMMSSMMSASAAMAAMMSSMMMMMSMMXMMAMMMSMXXXAXAMAMXXMASMSMMXAMXXSAMXSSMMXAXXXSXAAMASAMXSAXSAMX +MSSMSMSMMAASAMXMSMMSSMSSXMAMXSAASXXASAAMXSSMMAMSMXMMXMXMXAMASXSXMASAMXAAMMAMMMAMXAMXAAMMSSSMSMMSMMMAMMAXXXXMMXMXMAMAAXSAMMSXMSMSMMXMAMMMMAMS +XAAAAAMAXMMXMMAAMAXAMXMAASXMAMMMMAMSMMXXMMAXMSXAXXSAMXAMMSMAMAXAMXMASMSMMMAXAMMSAAMMSSSMAAXSAXAAAAMMXSMSSMASAAMXMASXMMMAXXAAMAXSXSAMXSXXMXMX +MXSSMSSMMXXMSXSASMMMSAMXMMAMASASXMMAASMSSSSMSXSMSMMAMSASAMMSMAMMXXXAMXMAXSMSASAAMMMXAAAMMSMSMMSSSMXSAASAASAMSASXSXSXMAAMAMXASMMXASXSMSASMSSS +XMAMXAAXMXSAAAXAAMAXSASXSXXMASAMMASMSMMXAAXXSAXXAASAMSXMMSAAMSSMSSXMMAMMMSASAMXMMXSMMSMMMMASXAAMAXAMMSMSXMMXMMMMMXMASMSXSSMMAXSMMMXXAMAMMAMX +SAMXMSSMSAMMMMMSMSSMSAMAMXXMXMAMSAMMAAXMMMMMMMMSSMMAXXXMXMMMMXAAAXAASMMSAMXMXMSMSXSAXMASXMAMMMMSAMXXMAMXXAMSXMAAXASAMAMMAMASAMSASXSMAMXMMAMM +SXMAXXAMMASMXAXXMMAMMMMSMMSMMMXMMAMSSMMAASAAXMAAXXSXMXMSAMXXXSMMMSSMMSAMMXSMMXSAAASAMSAMAMAXXXAMXMSSSMSASAMMASMMSASXSAMSMSAMSASAMAMMXSAMMSSM +XAMSMSSMSAMAMMSMXXAMASXMAXAMXSMASAMMAMXSXXXSXMSSSMMMSXASXMXMAXAAXAMMMMMXSASAMAMMMAMAXMASASMSMMXMAXSASAXASMAMMMAAMAMAMXXXXMXSXXMXMAMASMMSAMMM +MSMMAMXASXMSXMAXMSXSASXSMMMSAASAMAMSAMMMSMXMAMAAAMAAXAXXMSSMASMMMASXXMAMMAMAMXSXSASXXMASAMXAMXSMSMMAMMMAMMSMXMMMMAMXMSMSMSMMXXSMSMMMXAAMASAS +AAAXSAMXMAAXAXXMXAAMXSAAAAAMMXMXXAMSAMSAAMASMMMAMXMSSXXAMAXMAMXXAAAMAMMXSAXXMMXAXXMXXSAMXMSXSAXXXAMXMXAXMAMAAXXASMSMMSAAAAMAMXAAMAASXMMSXMAS +SMMMXASXSXMSSMSMMMXMAXMSMMXSMMMMMSMMAMMSSSMMXASAXAMXAXMAMASMSSSXSXAMAMAXMAXSAMMMMAXMXMSSMASAMXSASXMXSSSMMMXSAMXXXMAMAMXMSMMSAAMSMSMSAMXXMMAM +AXAASAMASMAXMAAAXAMSMXAXMXASAMXSAXMMAMXAXMAXXASAMSSMAMSSMMSAMAXMXMXXASMAAAAXMMAMMSMXMAMXAMMXMXAAMXAAMMAMMAAMAMSAMXSMXXMXMXAMXSXXXAMXAMXXMMAS +MMMMMAMAMMSMMSMSMXMAAMSMXAXSASAMMSASXMMMMSMMMXMXMAAMXMAMAXMAMSMSAASXMMMXMMMXMMXSMASAMXMASXMASXMSMXMAMSAMMMMSASAMXSXSMMSAMXXSXMASMMSSSMMSSMAS +MSMSSSMMSAMXXXAMXSMMSMAAXMASAMXSSMMMSAASAAAMXAAAMSMMSMSSSMSAMXMXAXSAMXSAXAAMSMAXXXMSMAMAMAMXAXXMXXAAAMASASAMXMXMMSAMXASAXSAMXMAMSXAMAAAAAMAX +MAAXAMAAMASMSMAMAMXMXXSSXMAMAMAXMAMAXSAMMSSMSMSMXXAXXAAAAASXSAMSSMSXMASMSMSAAASAMXXXXAMASXSMMXSAMSSMMSASXMAMXMXMXMXMMASAMMSMAMAMMMASMMMXSMSM +MMSMASXMSAMMAMSMSXAXSAXXAMXSSXMASAMSXMMSAMMAAAAMASMMMMMSMXMASAMAAAXAMAMXAMXMXSMSXMXSXMSASXXASAMAAAXAMMAMASMMAMAMAMASXMMMXMAMAMAXAAXMASMXMAXM +SAXMXMAAMASMSMXAMAMSMMXSSMAMXAAAXAXXXAMSASMSMSMSASAAAAXAMXMMMXMAXASXMASMMSAMXMAXSMASAAMMSMSXMXSMMMSXMAMXXXSAASASASASAAMAASMSMSSSXSMSAMXSMAMX +MASMSSSMMAMAXAMAMAXAAMAMAMASXMMXXSMSMSMSAMAAAXAMASXMXMSAMXMMMMMMSAMASMSAAMMSXMAMAMASMMMMXAMXMAMASXSAMXSSMMMSMXMSASASMMMXXSAMAAAMAMXMAMXAMMMA +XMMAAAXMMXMXMMSSSMSXSMAXAMSAMXSMXXASAXAMMMXMAMSMXMMSAAMMMAXMASAAMMMASXMAMXMAMMXSMMXSMMSSSSSXMXMAMXSASAAXAAMASXXMMMASXMXXMMAMMMXMAXMMSMMMMMSX +MXMXMMMXMXXXAMAMAXAXMXSMSSXMAMMMMMAMAMSMSSXMASAMXSASMSMAXXXSAMMXXAMASXMAMSASASAMXMAMXXAAXXAXSAMSSMSAMMSMSXSASXMASMSMMSSSXAMMSMSSMXSAAAAXAAXX +MASAMAXMXASXXMAXMMSMSAMAXXAMMSAAAMAMAXXAASAXXMAMAMASXMMSXSASASAXSMMMMAMXXXAMAMXSAMMSMMMSMMMMMASAAAMXMXAXMAMXSMSMMMXASAAMSXMAXMASXAMASXMSMXSA +SASASXMAMXMAASASMSMAMAMSMSMMASMSSSXMXSMMMSMMSSSMMMMMMMAMAMASAMAXAXAMSMMSSMSMXMASAXSAMAXAXAXXSXMXMMMAXMAMSAMAMXXAAASMMMSMAXMXSMMSMSSXXXAAXAMM +MMSXMASXXSMSMMAMXAMMMAMAAAXMASAMAMMSMMXMAXAAAAXXASXSAMMMAMMMMMXAMXMMAAXASXMAMMXSXMSMSMSSSSSXMAMXMAXXSAMXSAMSSSMMMMMMXXMXMXMMXAXXMXAAMMXMMSSM +SXXXMMMMAAAXAMXMSSMMXXSMSMSMASMMXMAAAXSXXSSSMAMSASASMSSMAMAAXMXMSASXSSMMSMMAAAXMMMMXMMXAAAAAMSXMMSSSMMSAMXMAAAASXMSSMMMAXSXSMMSSMMSMAAAXAMAM +XXMMXAAMMMSMMMAMAAAAMMMMAMAMMSXSMMSSSMMMXAAXXMMSAMMMXAASASMSMXSMMAMAMXAXMASMSMXSAAMSSMMXMAMMMAAAAAMAAAMXMMMMMMMMAAAAAAMMMAAASMAMAAMXXSAMSSSM +MSMASMSMSAAAXSXMXSMMXAASXMXSMXAAAXMMAMAAMMXMMMAMAMXSMMMSMSXXMASAMAMXMMSXSXMMAXASMXMAAXSSSSSSXSSMMMSAMXSMMAMXAAASMMMSSMXSAMXMSMAXMMXSMMXXXAAS +AAAXSAAXMSSSMMASAMAXMSMMAXSXMMSMSAMXAMMXSMASAMAXASMSASASXSMSMASMMASAAXAASXSXXMMSAMMSMMSAAAAMMMMAMXAASXXAXXXSSSXXAMAAAXAAXSAMXMSMMAXXAXMMMSMM +SASAMMXMMAXAAXAMAMSMMMAMAMMAMMAAXMSSSMXAAMASASMSMSASAMASASAXMAMXSAXMAMMAMASXMXAMMMAAAXMMMMMMAXMXMMMMMAMSXSAAXMASMXMASMMMSAMXXAMAMMMSAMXAAAAX +MAMAMXAAMXXMSMMMMMMXASAMSASAMSMSMXAAAAMSSMMSAMXAXMMMAMMMAMXMMXMMMMSSMAXAMAMMAXMASMMMXXMAXSXSSSMXSAXSMXMAAMMMMMXAAAXXXMXXAAASMASAMAAXMASMXMSM +MSMMSSMSXMMMAXSMAAMAMSMMXAXMMSAMXSMMMMMMAAAMASXMMSXSAMXMMMSMSXMXAMXAASMMMASASAMAMAMSSMXAMSAMAAAASMSASMMMSMXXMMMAMMMAXMXMSMMMMASMMMSSMXAMMSMM +XXAXXMAXXAASMMMMMSSSMMMSMMMSMMAXAXMAMMXMSMMMAXAAAXMASAMXSAAAAMMASXSSMMAMSMSXMXSAXXMAMXAMMSAMSMMMSXSAMXAAMXMMAXSSMAXXMMMXMSAXSASMAMMAXMXXMAAA +MSMMAMAMMSMSAXMAMXMAXXAAAAAMASMMSMMXXXMXXSSMASXMMMSAXXSMSXMMMSMAMAMAXXAMMASAMAMXSMMMSSXSASAMXXAASMMMMXSXSASAAMAXSXMMSMAAXMMMSAMXAXSAMXMXSMXM +AAAAXMMXAAXXAMSSMASXMMSSSMSSXMMAXAMSXSAAXAXMMMMAMAMASXMASXXMAXMAMXMAMXAXSAXXMAMAAAASXMAMASAMXSMXSAAMMXMASASASAXXAMAMAMSSSMSAMAMMMXAMXAAMXSXX +SSSMSASXSXSAMXAAMXMXMAMXAAMMMAMAMAMAASMSMMMSAASAMAMAMMMAMAMMMSMXMSMAMMAMMAMSSMSSSSMSMMSMMSAMMXMAXXMSMAMAMAMAXXMMSXSSMMAXAAMXSAMSSMAXSMSAASXS +MXMAMAXXAXMAMMMSMMMMMMXSMMMMSSMXSSMMXMXMAXAMXXSXSASAMSMMSMXASXXAAXMASAMSMMMMAXAAMXAXXAAAASAMXAMXSXMAMASAMXMXMMSAMAXXXMAXMMMAMASAMMMMXAMMAMXX +MAMMMAMXMSSSMSAAXAAAAMMSAMSXAXMAMAAXSSMSSMSSMXMAMMMXAAAAAXXMSAMMMMMAMMAAAASXSMMMMSXMMSSMMXAMMMSXAAMXSASMSMMSAXASMXMASXSSXAMXSMMMSAMMXMMMSSSM +MSMXMMXAMXAXAMSMSSMSMXAXAMSMSSMSSSMMXXAAXXAAXMSASXSSSSSMXMMAMXMSMSMXXXSMMMSAXAXAAMAXMAXAMSSMAASXSXMAMXSMSAAASXMXMAMSMAAXXXSAAXSASAXXAAXAXAAX +MXXXSASXSMSMMMXXAMXXAMSSSMXAXXAAMXMASMMMSMSSMAMAXAAAAAMXAMXSAMXAAAASMMMMSMXAXXMMAMSXMAXXMAAMMMSAAXSMSAMASMMMAMXASXSAMMMMMMMMMMMASAMSAMMSSSXM +MSMAXMASMXMAMAXAMXAMAMXAAXMMMMMMSAMSSXXAMAAAASMSMMMMMMMMXXAMAMSMSMSMAAXSAAXSMSMSMSMMMSMMMSMXAXMXMMAAAMMMMAXXMASXMMSXSASAAAAAAAMXMXMXAXAAAAMA +SAMSSXMMXXSAMASMXMMSSMSMSMXXAXMAMAXAXMMMSMSMSMAMAMAMXXAMXMXSAMAAXMAXMMMSMSAXAXMAXAAAAAAXXAAXSMMAXXMMMXSASAMXXMMASMXAMASMSSSMSMSAMXSSMMMSSMAM +SASXMAAXMMSAMXAMAMXAXMMAAAASMSXMSSMAMSAMAMAXAMAMSSSSMXSAAXASXMMXMMMSXAAMXMMMSMSSSMSMSMSMMMSMMASMMSMSAMMAMSSXAXSAMMMMMAMMXXMAXMSASAMASAXAMXSM +SXMASAMXAASAMXMSSSMSSMMSMSMAAAAMAXXMMAMMAMXXMMMMMXMAMAMXSMASXSAXSAASMMSSXAAAXAAAAAXAXAAAMAAMXMMAAMMMAMMXMAXMMMMAMXAAMASAMMMSMASXMASAXMMAMAAX +XAMAMXXMMXSXMMMAAAAXAAAXAAMMMMMMASMMXXAMXSSMSASASASAMXSAXMMMAAMAMMXMASAMXXMSSMMMMMMAMSSMMMXSAASMMSXMXMSAMXSMMAMMMSSMMASMXMAMMXMASXMMSMSAMXSM +MSSMMASXXAMAMXMMSSMXSMMSMMSSXSXMXMAXMSXSAAXASXSASASXSAMXSMAMXMMMXSMSSMMSSXAXAMASAAMAMMAMXAAMMXMMXMXMSMMASAAMSMSAAMASMMMXSXMXMASAMXXSAMXMASAA +AMAASAXXMAXSMSXMAXXAMXXSAMXMAMMMMSSMXAAMMMMAXAMXMAMAMMSSMXAASXXMASMMXAXAMMMMMSASXSSMXXAMMMSSSSXMAXMXAAXAMMSMAASMMMAMXMSAMAMMSXMAMMMMAMSAMXXS +SMSMMXSMSAMMXSAMXMASXSAMXMAMAMAAMAAAMMSMXXMSMMMMMSMXMAXAXMXMXASMAXAASAMXSAMAXMXSXXMMMMSMMXXAXAASMSSSSSMSSXMMMMMMAMMSMAMASXMAMASAMSMSAMXMAMXX +AMMAXXAAXMASAXXMXXXXASXMASASMSSSMSSMMAMAMXAAAAXAAAAAMXSMMMSXAAMMXXXMSAMXSASXSXSXMSSSXAMAMMMMMSMMAAAXAAAXXXMAMXAXXSXAAMSAMXMAXAMXSAAMXSSSSSSM +MMSAMXMASAAMXMSMMSAMMMASASXSAAAXAMXAMXSAMXMSMMXMSSSXMAAXAMMMMMAXSASXMASMMXMMSMMAXMAMMASAMAXXAMAMMMMMSMMMMXSAMSSMXMMXXXMASXSMMSSXMMSMMMAAAAMA +XAAAXXXXSMXMAXSAAXXXXSMMXMXMMMMMSMSSMMSAMSXMAAXXAMAXMSMMXXAAASAMXMAAMASASXSASASMMMAMSMXASXSMSSSSSSMAXAMAMAMAMAAXSMMSSXSXMMMMAAAXMAXXAMAMMMMS +MMSSMMMXMXAXMSMMMSXSXSXSMMSXSASMXAXMAASAMXASMMMMASMAXAASMXSXXXXXAXSXMASMAAMASAAXASAAAMMMMMXAAAAAXXMXSAMAMASMMSSMAAAAXAASAXAMMSSXMMSMSMAMSXAA +MMMMMAMAMSMSMMAAASMSAMASAASASASAMSMSMMXMMMMMMXXSMMMMMMSMAAXXSXSSMMXMMXSXMXMAMMMSXSMSXSAMXSMSMSMMMXAAMMSAXAMAAAAASMMMSAMXXMAMXAMXSAAAMXSMMMMS +XAAAXMMAXAMAAMSMXSAMXMASMMMAMAMMXXAMXSXXAXMAAMMXMAMXSXMMMSMAMAMXSAXMXAXAXMSSMSASMXAMASASXSAAAAXXMXMASAXMSSSMMMMMXXMXSXXXXMASMAMASXMXMAMAMMSX +SSSSSSSMSASXSMXSAMAMMMXSMXMXMXMSAMMMAMMSSSSMMXSAMSMAXSMAXXMAMXMAMSSMSMSSMMAMXMASXMAMAMAAAMSMSMSMXSXMXMXAAMXXAAXMMXMAXSAMXMASXMMASMSSMASAMXAX +AAXAAAAXSXMAMXSMMSSMMAAXMAMXXAMMASXMAMXAXMASMAAXAMMMSXSMSMMMXAMMMAXMAMAAAMAMAMAMASXMXMXMSMMMMAMMAMXMASMMSSSSSMSAMXMAMAXSAMASAMMXSXAAMXSMMMSS +MSMXMMMMMMSMXSAMXAAASMSSSSSSMSAXAMXMSMMMSXAXMMMMAMAXMMMXSAMSSMSSMSSSSMSSSMMSSMSSMMASAMXXMASAMAMMXSXMAXAAAAAAAXMAMXMSSSMSXSXSXMXMMMSSMMMMXSAS +MMMMMAMAAAAXMXMSMASMMXAMXXAMXXAMSSSXXASXMMMMMAXMAXMMMXSAMXMAAAAAXXMAXAAAXXXAMXAAASAMASMMSAMAMMSMAMAMSSSMMSMSMMSMMMAMAAAXAXMSXMASAAMAXMMAMAMM +MAAAMASMMXSSMAXXMAMASMSMSMSMAMAMAAXAXXMASXXASXSMSAAXSMMSXMMSSMSSMSMAMMMMMXMAMMSSMMASAMMAMASXMXXMAXAMAAAXXMMAMMAAAXAMSMMMMSASASASMSSMMMSASMXA +XSSMMASXSAMXMAXXXAXXMAAAXAMMXSAAMXMXMMSAMXMXSAAAMMMXSASAMSAAAXAXMXMAMMXAXSMSMXMXXXMMXSXASXMMXXSSMMSSSMSMXASASMSSMSXXAMXAXAXSAMASAAMAAXXAMXSX +AMAMSASAMXSXSSSSMMSAMXMAMMMAMXXSSSMAXMASASAMXMMMMAMAMXMAAMMMSXXAMAXAMMMSAAAMSAMMMSSMMXMMSAMXAAXXXXXAXAAXMMMXSAXXMAMSAMSMSMAMXMAMMMSMMMMAMASM +XMAMSAMASASMAAAXXAAAASXXMAMASXAXAAXAMMXMMMAXXXAXMAMMXSMXMAAAXMSXSASXXMAXMMSMSXSAXAAASMMXSMMSSMMSMSMAMSMMAASXMXMAXXAMAMMXMXAAXMASAAXMASMSMAMA +SMSMMASXMAXMMMMMMMSSMMXSXMMAMMMMSMMSXSAXAMXMSSMSSSMSAAXSXXMASAAXMAMAAMSMXXMAMASMXMSMMXMAMMAMAXXAAAMAMAMXSMSMSXSXMMMMAMMASMMSXSASMXSXXAAMMMSS +MAXXSAMMMSMSXAAAAAAXAMAAMSSXXASAMXXMASASMMMAXAAXAAAMMSMXASMXMMMSMSMMMMAAXMMAMMMXAXXXMMMSMMASMMXMSMSMSMSAMAXAXMSAMASMMMSMSAMXAMXSXASMSMSMAXAM +MAMAMASAAAMXXSMSSSMSAMMSAAAMSMMMMMMMAMXSAASMSMMMSMMMMMXSMXMAMAXAAMSMSXMMSASXSMAMXXSAXAMXASASASAMXMAMAXXAMAMSMASXMASASAAXSMMMXMAMMMXAAAMMMMMM +MMSXMSSMSSXSAMMAMAXSXXXMMMMMXAAAXAAMMXAXXMMAAXMAXXXSXMAMMAMAMMXMSMSXMASASMMXAMXMMASXMSASXMASAMXSASMXXSMMMAMMAMSMMASAMMXXMXSMXSMXSSSSMSMAMSSS +MAMXXXXAMAASAMMASXMMXSXAXSSMMSSSSSSMSMMSXXMAMXMAMSAMAMAXXASMSMSMMASXXAMAMXSSMMASMAMMAMXMMMXMAMAXXMXSMMASAMXXMXMASAMMSSMSMAXMASXMXAAAXMMMMAAM +SSSMSMMMMMXMAXSASMAMAMMSXMAAAAAXMAMAMAASMSMMMXMASMASXMAMSASAAAAAMAMMSSMSMMXAXSAAMXXSSXMMASMSSMSMMSXAASAMASMMSMSAMXSAAAMMMSSMMSASMSMMXXAXMMSM +XAAAMAAXAXXMAMSAMXAMXSAMASXMMMMMMAMMMMMMAXAAXMMSXMAMXXAMXAMMMSMSMSMXAMAMMMMMMSMMXSAAXAASXMXAAMAASASMXMASXMAAAXMXSAMMSSMAAAXAMSAMAMXXXSSSXSXM +MSMMXMMXAXXMAMXAASXSSMASAMXXSSMXMSSXMXSMSSSMSMXMASMMAMSASXSSXMMAAXAMMMSMMSASAMAAAMMMMXMMASMMSMSSMAXXASMMAMMSMAXSMMSAAAMMSSXMMMMMMMMXXAAXMASX +AXAXXMSXMSMAMMXXMXXMAMMMMMSMSASXAXAMXAXAAAMAXMSMAXAMAAAASAXMAASMMMAMXAAAASAMMSMMMMAAXMASAMXAXAMAMAMSXSMXMMAMXSMXMXSMSXMAMAMSAMXSXAXAMXXAXMMS +MSMMSMAASAMAMXSSMSMSMSSXXAAXMAMMSMAMMASMMMMSMXXMAMAMMSMSMXMSMMAAMMAMXSSSMMAMAXMASXSMSAMMASMAXAMAMXXMAXMASMMSAXAMSAMXMAMMSAAXAMAMASXSAMMXMXSA +MAXAMMAMSASXSASAAMAXXXAAMSSXMAMAMAAXXXSAAMAMMMSXXAAXXMXXAXXASMMSXSASAMXAASAMSSSMSAXASXXSXMMSSSMSMSAMMMXXMAXMMMMAMAXAMXMXSMSMXMASAMAXAXSAAMSM +SSMMSSSMXAMXMMMMMMXMMMMMMAAMSAMXXMSAMXXXMMASAMAMXMXSXMASXMSMAXAAXMAMMSAMXMAMAAXMMAMAMMMMAXAMXXAAAMSASMSMSMMAAAMSMSMXSASXXXAAASXMASASMMSXSASX +AAAAAAMMMSMXMAXSAXSAMAMAMSSMSAXASXAASASXSSXSASMMMSMMMMASAMXXAMMSSMMMSXAXSXMMMMMMMMMAMAASMMSSMXMMSMXXXAAMASASMXXAAAMXMASAMSXSMSASAMXAMXXAMAMA +MMMMMSMAAAASAMXSASXMSASXMMAMXMMSAMXXMXSAAXASMMAAAAAMSMXSASAXXSAAAAAXMAAXMASMMXSAAASMSMMXAXAAASMAXXXXMSMSMAXMSSXMSMSXSAXAMMMMXSAMXSAXSAMXMAMA +SXMXAMMMSMSAAMAMXMAXSAXXXSXMAMXMAXMMMXMMMMMMMSXMXXXMAMXMAMXSMMMSSMMSSXMSMAMAAAXMMXXAMXSSXMSSMXMAMMSMMXXAXMXMASMXAMXMMMSAMXAXMMXMXMMXSAXXXAMA +AMXMAMAMXMXMSMAMAMXXXMXSXMASASXSXMAAMAXAMAAAAXASASXSXSAMAMXXAXXAAAAAXAAXXASMMMSSSSMMMAXMAMXAAXMMMAAAMAMXMXXMASMSAXXXAAMASMSSMSAMXMSAXSAMSSSM +MAMASMMSMMSAXXMSMSAMXMASASAMXSAMXAMSSMSSMSMSSMMMASAAXSXMAXSMMMMSSMMSXMMASASXMAMXAAAXSMMMMMXMMSMAMSMSMMSAAMXMXSASAMSSMXSAMXXSMAAXXSMMSAXMAAAM +SSMAXMASAAMMMMXAMXAMAMMMAMXSASASMSMAMAAXAMXAXAXMAMMMMMASMXSAAAXAXMAXXSAMXAXMMAXMMMMMAXAAAMXSAMXAMXAMAXSXSMASAMMMAMXAAMMMXAMXSSSMXAMXAMMMMSMX +AAMMMMASMMMSAMSASMSMSSSMSMMMASMMAAMXMMASMMMSSSMMMSXMAMMMMAMSMMSSSMAMASMSMSXXSSXSASMSXXSMMXAMASXSSXASAMXAAMXMAMAMMMSMMMXSMSMAMMAXMMSXMXSAAXXM +SXMXAMXMXSXMAMSAMAXXMAXXXAXMMMASXMMMSXAAXAXMAMXAAXMSMSMSMSMXMMXMSMASASAXAXMMMMASASASAXMASMASMMMMXMXMAMXXMXMASAXSSXMMSSMSAAMASMMMMXAAMASMSMSA +MASXMSSXAXXMXMMAMAMAMXMASMMMMSAMMSXAXMSXSASMSMSMMSAASAXAAAXMAMSAXSMAAMAMAMAMAMMMXMAMSAMAMSAMXAAXXXXMASXSMXMAMMAMXAAAAMAMSMSMSAASMAXSMASXMAMS +MXMAMAMMMMMMSSSSMASXMMSMSAMAAMASAMMXSXMAMAXAAAXAAMMMSXMMMMSAAAMXMASMSMSSSSSMMSSMXMXMMXMAMXMASMSSSMXMASMAMAMASAMXSXMMSMSMMXSASXMSSSXXMASMMAMX +MSMSMASMXAASAAAXSASAMASXSAMMXSAMASMXSAMAMMMMMSMAMXAMXXMXMAMMMXSAAASXXAXSAAMAMAAMMSAXSMMSXMAXAXXAMXAMAXMASXSASXSMMXXXXAMASAMMMXMXAMASMXSXSSMM +AAAMSXMXSMMXMMMMMSSXMASXMAMXMMMMMMMAMASXMMMSMMMAXSMSAMXAMASXSASXMAXXMMMXMASAMSXMAMAXXAAXXSSMSSMSMXXMAXXAMXMASMMAXXMMMAMAMMMMSAMMXMSMAXMASASX +SMMMAMXMMSSSMMSXMAMAMSSXMSMMMAMAMAMXSXMMASXAAAXXMAMMASMMSXSAMXSAMXSSMMAXXMXAXAAMMSSMSMMSXSAAMAAAAXMSMSMXSAMMSASXMMSASAMSSMSASMSAMSASXMXXSAMX +MMMSXAMMAAMAAMMMMASXMMMXAAMAMSMMMASAXMASAMSSXMXAXMXSAMXXSAMXMXXXMAMAAXASMSSSMMMSMAMMXAAMXSMMMMSMSMAAAXASXXSASMMXSAXMXAMXAAMASXMAXSAMMMXXMXMM +SAMXASAMMSSSMMAASMSMAAAXSAMMMXAMSMMMSSMMAMAXXMASMMAMASMMMMSAMXSMSSSSMMASAAAAXAAMMAMMSSMSMXAAXMAXAAMASMMMMMMASMSAMMSSSSMSMMMASAMSMMSMAAMSMAMA +SAMSMMXSAXMMXMSXSAMXSMAMXMXMAMMMAMAAMAXSXMASMXMAAMASAMMAASXMMXMAAAAAXXAMMMMMSMSSMMMMMXAAMXSMSSSXSSXXXXXAMSMSMMMXSASXAAAXAXMASAMXMAMSSMAASAMS +MMMSAAXMXSAMSMMXMMMAMMXSASXMASXSAXMSSXMSAMXMMAXSXMXXMAXSXSAXSAMXMSSMMMSSMXAXSAMAASXSSMSMSAXAXAAXXAXSAMXSMAXMMSAMMXSMSMMMMSMAXMMAMAXXXMSXSMSX +MAMMMMSAAMAMSASXMXMSMSASAMASASMXMASXMASMMMAAMAMXMSMXXSXMASAMSXSAAAAAXXMAMMAMMAMSMMAXAAAAMMSAMMMMMAMMAMAXXMXSAMAMSAMXMXSXAAMMSMSSSMSAXMAMXMAM +SMSMSASMSMMAMAMASAMMAMASMXXMASAMXMXAMXSAAMSSSMSAXAAXAXAMXMSXXASMSSSMSASAMSSMSXMXMMMMXMMAMAMAMXMAMMMSAMXSAXXMASAMMAMMSASMMXSXAMAMAAMMMMMMSMAX +AXAAMASAAMXAMAMMMASMAMXMAMSMMMMSSMSSMXMMMXMAAAXMMMSMMSAMXAXMMAXXAXMASAMAXAAMXXMMSAXMSMXMMMXSXMXXXMAXAMAMMMMXMMXXSSMAMASXAAXMMMASMMMMMAAASXMX +MMMSMAMXMASXSMSASXMXSMAMSXMAAMXAAXAASXXXMSMMMMMSAMXXAAAXMSAXMXMXSMMMMXMMMSSMSMSASXXMASAMASMMASMSSMMXSMASXXSAXASXAAMAMSMMMXMAASXSAXXAAMMMSASM +AAAAMXXAXMXAAASASXMAXMXSAAXSMMMSSMSAXSAMXAAMXMAMAXAMMMMXAMMXMASAMXASAMXMAXMXAAMXSMMMAMMMAXASAMAAAASAMXMMAAXAMXMMMMMAMAAAAXMSMSASXMSXSSSXSAMS +SSSXSXSMSMMMMMMXMMMMMMXMMSMAAXAMXXMASASMSXSMAMSSSMMSMSMMAXAAXAMMSXXXAMMXSXMSMSMXXAAMXSXMASMMMMXMSAMXSXSMMMMSMMMAXXSSSMSSSXAAAMAMAMXMMXMAMAMA +XAAMXMAMAMAXXXMAMAMMAMXAAXXSMMSSMXMXMAXXAAXMASMAMAXAAAXMASMMSMMMSASMXMASMAMXXAMSMMMSAAMSXMMAXAMXAMXAMXXXXAAAAASMSXSXAAAAAMMMSMSXXMAMXAMMMSMM +MXMMSAXSASAMXSSMSMXSASAMXXXMAXMMMASAMAMMMSMAXXMASXSMMXXXMAXXAMXAXXMAXMSASAMXSXXAAAAAMMMSASMSMMSAMXSAMXSMSMSSSMSASMSSMMMMMXXSAMXMMXSSSXSAAAAX +XMXMAXMMASMSAAAAAXXMASXMASMSSMSAMMSXSASMMMMMMXMXSMXAMSMMXAXSXSMSSSSSMMXMSMSXSMSSSMSSXSASAMAMSMXAXMAAXAAXXXMAMMMXMAXXXAXMAMSASMMSAAMAMXSMMXMM +XMAXMXSMMMAMMSMSMXXMXSAMXAMAAASASAMXSMMMAAAMMXMAMAMAMAAXMXASAXAMAXAAMXSAMASASAAMAMXXAAXMAMAMMSSSMASMMSMMSMMMXMASMSMXMASMAMMAMXAMMSMAMASXSSSS +XXMMSAAASMXMAXMAXMXSMSMMMXMMMXMXAMAAXAASMSMMXAMASASXSMXSAMAMMMSMMMSMMXMAXXMAMXXXSMSMMMMSXMXSMAMXMMAXAAAMMAMMAMSMMMMMMAMMMMMAMMSMMXXAMXMAXAAA +SXSAMXSAMXAMMXSASMMMAXXXSMSXXXAMMAMMSMMSAXMASXSMXAXAMAAXXMXAXAXAMXMASMXSMAMXMMXSMMSAAXAXASXMMASAMASMSMSMSAMMASAAASAAMSSXMASASAXAAXSXSAMSMMMM +SMMASAMAMXXXAXMAMAAMSMMMMASAMSAMXXSAMMAMXMMASAAMMSMMMMMSXMSMMMMMMAXSXMAMMSMSMSXAAASXMMXSXMAASMSXSAMMAMMMSMSSXSXSMSXMXAAASASASMSMMMMXMASAAXAX +MASAMXSXXXMMSSXASMMMAXAMMAMAXXMXXXMAXXMSMSMASMSMXMASXMXSAMAMASAMXSMMAMASAMASAMSSMMXAXSASASXMSAMXMASMAMXASAMXAMAMMSXSMMSMMASXMXSAMMSASMMMSMSA +MMMASXSASMAMAMXMAMMSMSXSMSSXMASXMSMSMMXAAXMASAXAAASMASAMASXMASASMMASAMASAMAMAMAXXXSMMMAXAMMXMAMXMMMMMSMMMMMMMMAMAXAMMAMMMAXXSXXAMAAMASAXXAAX +SMSMMMMAMMAMXMAXAXXAXAXSAMXASAMAAAAAMAXMSMSXMMMXXMAXAMASXMXXASXMASAMASASAMXSAMSSMXSXAMAMSMMASAMSMASXMAXXAMASXMSMSMAMMAMXMMSAMMSSMMSXMXXMASAM +AXAAAXMAMSMSSSMSAMSAMXSMAMSMMMSMSMSXSMMXMAMMAAAXSSSMMSXMAAXMXMAXMMXSXMXSAXASAMXAMASMMMMSMASAMAXAXXSASMXMASASMAMAASXMMASAAAMAMMAMAAAMXSAMXMXA +MSSSMSXMMSMAMAMMMMMMXSAXAMAMAXXXXAXXAASAMAMXSMSXMAXAAXMSMMMSMMXMSMMSMSXMMSMXXXXAMAMMXAXAMMMSSMSSSMMAMAASXMASMAMMMMSXXMAXMXXAXMASAMMAASXMSMMS +XXAMASXMASMSMXMASXSAMSASXSXSXSXSMMSXMAMAXMMXMAMAMAMMMMMXMAAMAMAMXAAXAMASAAXSXSMMMXSASMSMSMAXMXAAAXMAMXMAAMXMMSXSAMXSMMMXMASAMMAMAAXMAMAXASAM +XMMMAMXMXSAXXAMXSAMSXMMMXAMXXMXSAAAXXASXMASMSASAMASXSXMASMXSAMASXSMMMMAMXMXMAMXSAMXAAAAXAMSSSMMXMMMXXAXXSMSAXAASMMAMXAMXXXAAMMMSAMXSMSMSAMXS +SMXMASASXMAMSASAMAMMSMSXXSMXASAMMMSSXMAXSMAAMAXXMXSAMMSMSAXSXSASXAAASMSSSMSMXMAMAMXMMSMMMXXAMXXAAMSSSMSXMAMXMMXMAMASMMMMAAMMMXMAMMXSAAXXXAMA +XMASASMMAMXMMXMASMMAAMXMAXAMXMMXSXAXMXAXSXMMMSMMSAMAMXAAMMMMXMASMMMSAXMAMAAXSMXMSMSMXXMASMMAMASXSMAXXAMMMAMMXXAMXMMSAXSAMXXXSXMASXAMSMSMMMXS +SXMXASXSAMMAXAXMXXMSMSAAXMAXSASAXMAMMMSSMXXXAAAXMAMMMSMSMSAMMAAXASMXMXMAMMMMXAAAAAXMASXSMASMMXSMAMMSMMMASASMMSXSASASMMAAXXSAMASAMMMMMMAAMSAX +XASMMMASMSASXSSXSAMAASASXMAMMAMMSSMMSAMAMMMMMSMMMMMAAXAMMSASAMXSMMAAXMMMSAAMSSMSMSMMAMMMMAMXMAXXASXSAXSASMSAMAXSAMXMXSSMMXSAXAMASMXAMXSSMMAM +SAMAASXSAAXMAMAXSAMMXMAXAMSMMXMXAAMAMMSASAAAAMASASXMMXXMASAMXMXSXMSSMAXAMMSMAXMXMAAMASASASXMXSXSXSAMXMMAMMSAMMMMXMSXAMASMASXMXSMXXMSSMAAXMAM +MMMAMSAMXSMMAMSMSMMMMMMMMMMAXMSMSSMASMSAMMSMXSAMMXAAASMMMMMMASMMAMAMXSMMSAMXMMSAMMSMMSASAXXAMMAMAMAMMSMSMAXMMMAXAXAMXSAXMAXSMXAMAXAAAMSSMSAS +SASXSMAMAMMSSSMASAMXAAMXSASMMAXXMAMXMAMXMAMAAMAXXSSMMAMAMXXSAMASXMASXXAXMASXXASASAXXAMXMXMXSAXAMAMXMXAAAXSMSSSMSMSMMXMASMXMAXMAMXMSMMMXMASXS +AXASXMAMAXMAMAMAMMMSSMSAMXMXAXSMSSMMSXMAXMMMMSMMAAAXXASAXSAMAXMMSMSMAMMMSMMXMASAMAXMXSAMMXMMMSMSMXAMXMMMMMAXAAXAAAAXAAXMASMMASMMXMAAXMAMXMXM +MXMSXSXMAMMXSSMMSAMXAAMASMSMSXSASMSAAAAMMSXMXAMMSMMSSMXMSMAMAMMAMXAAMXAAAMMXMAXXAMXSAMAXXAMAASMAMSASXSASAMSMMMSMSMSMMMMMAMMXAAXMXSAMMXAMAAAA +XSXSASAMMXSAAAAXSMXXXMSSMAAAXMMSMAAMMSXMAMAMMMXMAAXAASXSAMAMMSMASMXSMMSSSXMAMMSSMMXSASAMXXXASXXAXXXMASASMXMASAXXMAAAXXAMXSSMSSMSAXXMMSASXSMS +XMAMAMAMAAMMSMMMSASMSMSXMSMMMAXXMXMXXXXMASAMXAASMMMSMMXMAMXMAXMXMMSAAXMAXAXSSMAAAMMSXMASMXSMMMMSSMSMMMMMXAAXAXSAMSSXMMSXMMAAXXAMASMMXAXXAAXA +XMASASAMMXSAAAAAXAAAAXMAMAASMSMMMMXSMMASAXMSMSXSAMXMXMAMXMSMSSSMAXASXMMMMXMMAMSSMMAXMXAMMAAAMXAAAXAAXMASXSSMMSMMMAAXSXAMAXMMMMSMAMAASXMXMMSM +MSXSAMMXSAMMSSMMMMMSMXXMMSXMAXMASAAAAMMMSSMXMASMXMASAMASAAXAAAMSMXMAMXMASMMSAMXXAMXSAXSAMXMXMMMSXSMSMMMAAAAAXXAAMMSMSAMXXAXAXAAMSSSMSAMXAAXX +AXAMAMSAMMSAMXMMSMMAMSSSMXXMXMSSMMMSSMAAMXMMMXMSAMASASASMSMMMSMSSSXAMSXMMAAMMMMSXMASXMXAAMXXXMAMMXAMAAXMMSMMMMSMXAMAXSMAAXSSXMXSMXXASAMSAMSA +SMMMMXMASAXMSASAAASXSXAAASXMXMXMXAXMXXMSMAMASAASXSMSAMMMMMMAMMAMASAMXSAXSSMSXAXSXMMSASXSMMXMASAMXMXXAMXXAMMAXXMMSMMSMAMXSAAAASXMMAMMMAMXASXM +AXMAMASMMMSMSAMMSMMMMMMMMMAMAXAMMSSMAMMAXMSAXMMMXXAMMMXAAASMSMAMMXXMAMAMAXAMMSSMASASMMXAASMMMSAAXAAXSMMMXSXSXSAAAXMASMXAXMMMMMAAMXMASXMSXMAM +SXMASAXAAXAAMAMAMXMASMMSXSAMXMAXAAAMSMSMSXMMXSAASMXMMMSSSMSAAXXMXXSMSSMAMMSMAXAXXMASXMSXMMAAAXMMMSMMXAXSXMMMAXMXSMSASXMMXAMMAXMMMXSXMMMMXXAM +MASASXSSMSSSSSMASASXMAAXASAMMSSMMSSMAMAASMMAAMMSMSAXAXMAXAMXMMSSSMXAMAAXMAAXXSAMXMMMAMASMSSMSSMXAASAMSMMASAMSMSAMMMSSMASXMMSSSMMSAMAXMASMSSS +SAMMSAMAAXAAAXMASMMMSMMMMSAMAAAAXMAMSSMMMAMMSSXMASXSXSMXMXMAXAAAASMXMASMMSSSXMXMASASXMAMXAAAAXAMSSSSXXASAMMXMAMXSMMAXAMSAAAAXAMAMASMMSAXMAAM +MMSAMXSMMMMMMMAMSMXMASAMXSXMMSSMSAXMXXXXSXMMMAMMXMMAMXMAMXSXSMMSMMXAMXMAXAMXMXXSXMASXMXMMSMMMMSAMXMASXXMSSXSMSMMMMMMSSXSMMMSSXMASXMAXMXSMMMM \ No newline at end of file