diff options
author | Jack Sangdahl <[email protected]> | 2024-12-03 22:57:48 -0700 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2024-12-03 22:57:48 -0700 |
commit | 2427744d262f13d0c3b9ba9d93bb7832a9d3099f (patch) | |
tree | a5a74a7d5821cda3bbf83972445286b43a05defd | |
parent | edc168687ad62f45dd72a0699264a7e7a2ed10e9 (diff) | |
download | aoc-2427744d262f13d0c3b9ba9d93bb7832a9d3099f.tar.gz aoc-2427744d262f13d0c3b9ba9d93bb7832a9d3099f.zip |
Day 4 2024
-rw-r--r-- | 4_2024.py | 131 | ||||
-rw-r--r-- | data/4_2024.txt | 140 |
2 files changed, 271 insertions, 0 deletions
diff --git a/4_2024.py b/4_2024.py new file mode 100644 index 0000000..e8bde19 --- /dev/null +++ b/4_2024.py @@ -0,0 +1,131 @@ +import sys +from pyperclip import copy + +input = "data/4_2024.txt" +data = open(input).read().strip() +lines = data.split("\n") +sys.setrecursionlimit(10**6) +p1, p2 = 0, 0 +rows = len(lines) +cols = len(lines[0]) + + +for r in range(rows): + for c in range(cols): + if ( + c + 3 < cols + and lines[r][c] == "X" + and lines[r][c + 1] == "M" + and lines[r][c + 2] == "A" + and lines[r][c + 3] == "S" + ): + p1 += 1 + if ( + r + 3 < rows + and lines[r][c] == "X" + and lines[r + 1][c] == "M" + and lines[r + 2][c] == "A" + and lines[r + 3][c] == "S" + ): + p1 += 1 + if ( + r + 3 < rows + and c + 3 < cols + and lines[r][c] == "X" + and lines[r + 1][c + 1] == "M" + and lines[r + 2][c + 2] == "A" + and lines[r + 3][c + 3] == "S" + ): + p1 += 1 + if ( + c + 3 < cols + and lines[r][c] == "S" + and lines[r][c + 1] == "A" + and lines[r][c + 2] == "M" + and lines[r][c + 3] == "X" + ): + p1 += 1 + if ( + r + 3 < rows + and lines[r][c] == "S" + and lines[r + 1][c] == "A" + and lines[r + 2][c] == "M" + and lines[r + 3][c] == "X" + ): + p1 += 1 + if ( + r + 3 < rows + and c + 3 < cols + and lines[r][c] == "S" + and lines[r + 1][c + 1] == "A" + and lines[r + 2][c + 2] == "M" + and lines[r + 3][c + 3] == "X" + ): + p1 += 1 + if ( + r - 3 >= 0 + and c + 3 < cols + and lines[r][c] == "S" + and lines[r - 1][c + 1] == "A" + and lines[r - 2][c + 2] == "M" + and lines[r - 3][c + 3] == "X" + ): + p1 += 1 + if ( + r - 3 >= 0 + and c + 3 < cols + and lines[r][c] == "X" + and lines[r - 1][c + 1] == "M" + and lines[r - 2][c + 2] == "A" + and lines[r - 3][c + 3] == "S" + ): + p1 += 1 + if ( + r + 2 < rows + and c + 2 < cols + and lines[r][c] == "M" + and lines[r + 1][c + 1] == "A" + and lines[r + 2][c + 2] == "S" + and lines[r + 2][c] == "M" + and lines[r][c + 2] == "S" + ): + p2 += 1 + if ( + r + 2 < rows + and c + 2 < cols + and lines[r][c] == "M" + and lines[r + 1][c + 1] == "A" + and lines[r + 2][c + 2] == "S" + and lines[r + 2][c] == "S" + and lines[r][c + 2] == "M" + ): + p2 += 1 + if ( + r + 2 < rows + and c + 2 < cols + and lines[r][c] == "S" + and lines[r + 1][c + 1] == "A" + and lines[r + 2][c + 2] == "M" + and lines[r + 2][c] == "M" + and lines[r][c + 2] == "S" + ): + p2 += 1 + if ( + r + 2 < rows + and c + 2 < cols + and lines[r][c] == "S" + and lines[r + 1][c + 1] == "A" + and lines[r + 2][c + 2] == "M" + and lines[r + 2][c] == "S" + and lines[r][c + 2] == "M" + ): + p2 += 1 + + +def solve(s): + print(s) + copy(s) + + +solve(p1) +solve(p2) diff --git a/data/4_2024.txt b/data/4_2024.txt new file mode 100644 index 0000000..5f2c4dc --- /dev/null +++ b/data/4_2024.txt @@ -0,0 +1,140 @@ +SAMMSMSXMMXXXXSSSMXMAXAMSSSSMSAXMXSSXXXSMMSMMXMASXSSSSSMSMMXMAXMSMMMASMSXSAMMXMMMSMXXSMMXSMXSXXXXMMMMXMASMMMSAMXXSSMMSMAMXMSSMXSSMMSAMSAMXMM +MASAAAMAMMAMSMMAAXMSSXMSAMAAXXMAMAMXMSMMMXSASXSMSMMAAAXMAMSAMXSMAASMXXASMSASMMSAMASXXMAMAMMAMXMMMMAASAMXAXASXSXSASAAAAXAXXMAAASXSXAMAXAMSASX +SAMXSMSMMMAMMAMSMMXAMAXMAMMMMSSSMXSAAAAAMAMXMAAAMAMMMMMXSAMXASAXSXMMAMXMASAMAXSASASXXSAMSSMASAMAASMMSASMMMSMAAXXMSXMXSMMXXMASMMAMMMSMMMXSMAM +MASAXAAASXMXXAMMAMXAMMXSAMASMXAAAASMMSSMMASAMSMMSSMAXXMXMAXXMAMMMSSXMSMSMMAMMMSAMXXMXMXMXAXAXASMXXMMSXMAAMAMMMMSXSMSAMAMMAXAXAXXMAXAXAAMXXMA +SXMASMSMSAASMSMSAMSXAXASASAMAMSMMMMAAMXXSASAMMMXXMMXMAXXSSMMSMXSAAXSXAAAXSXMXAMSMAMAAAMASXMSSMMMSMSAMASMXSASAAAMAMAMASAASXMSSSSXSXSSSXSAXMXS +SXMAMAXAMMMMAAMMAMMSSMAMXMAXMMAAASMMMSAXMASXMMXSXSAAMSAMXAAAMXMMMXSMXMMMMXAXMASXMSASMSAMAAAAMMXAAAMASAMMASXSMMMMAMMMXMMMXAAMAAMAXXAMAMMXSAMX +MAXSXXMAMXAMSMMSSMMAMMXMSSMMXSSMMMAXAMXMSXMAMSAMAMSXSAXSSSMMSAMASMMXMSASXMASMXSXMAMXAXXXMMMMMAMMXSXMMXSMXMASXMASMSSMSASXSXMMMMMMMXMMAMMAMMMM +SSMMAMSAMXMAXMMAXAMSSXMSAAASXMMASMSMMMMMXAMAMMAMAMMMMMXXAAMAXASASAXMASAMXMASXMMASMXMAMXMMSSSMXSMAXMAMXMMXSXMMSMSAAXASXMASXAAXAAAMXXSXSMMMAMA +XMAMAMSASXXSXAMXMXMASXMMMSMMASXXMAAAAAAXMXMAMSSMXSXAASXMSMMSSMMMSMXAMMSMAMASAMSAMXAMXMAMSAAAMAAMAMSAMAMMMSAMAMXMMMMXMAMXMSXMMSSSSMXMMMAXSASM +XSMMAXSAMXAXSMMSXMASXXXAAMASAMAXMMMSXSSSMMSAXAMXAMMSMXMAAXSXAASAMXMSMAAMXMASAMXXSSXMAXXSMMXMMSSMSMSASXSAAXAMASAMSXXMSMSAMXMXMAMXXMASASAMMASA +XMXXXXMSMMXMAMAMAMXXMMSMSMAMXSMSAMXXAAAXAAXMASXMXSAASMSSMSMSSMMMSMAAMSSSSMMMXSAMXMASASMXMSASMXAXMASXMASMMXAMASXSAAMXAMMXAMXSAXXMASAXXMASXMMM +XXASMXMAXAMASMMSAMAMMAXMAMAMXAXAAXAMMMMMMAXMXXASASXSSXAAXAAAMAAAMMSSXXXXXAXAAXAMXMXMAMMAXMAXASAMMASAAXMASXSMMMMMMSMSASXSXMASXMASXMASXSAMXMSX +SMMSAAMMMMAMXAMXMMSSMMMMXXMSMMAXAMXXXAXXMXMSMSAMAXMXMAMMMMMSSSMMSAAXXMXSXXMMMXSMAMSSSSSMMMMMMAMXMAXAMXXMAMXAAXMAAAASAMAMXMASAAXMAAMAAMASAAAX +XAXSXMMXAASMMMMMMAXXAXSSMSAAAXAXMXSXSXXSAMXAAMAMXMXAMXASXSAXMAMXMMMSXSAAASXXXAAMXSAAXMAXSASAXAXSMSSMMXMMMASMMXSAXMMMXMAMXMASXMAMSMMMSMMSMSSS +MSXSAMXSXMXXAAAAMMSMSMAAAMXSMSMSMAMAMASAXAMSSSXMAMMASMMAAMMSSSMXSSMSAMMXMAAAMSMMXMMSMSAMXASMSXSAAXAMMXSAMMAAAMMAXSAMXSXMASAXMASXMASXMAXXAAAX +AMASAMXMSMXSMMXXXAAAAMMMXMAMXMAAAAMAMMMMXSAMXMASAMAMXAAMXMAAMAXMAAAMXMXSSMMMMXAMMMAAAXXXMXMAXMXMMMMXMASMXXXMXXMAMSAMMSASAMXAMAAASXMASAMXMMXM +XMAMMMAAAMMSMSSSMSSXMXXXXMXSAMSMSMSXSASMXMASXSXMASXXSXMASXMSSXMASMMMXSXAAXXAXXAMAMAMAMMMMMMMMMAXAAXAMXXAASMSMMMMMXAMASMMASMXMASMMMMMMMAXSSSS +XSAMXSMXMSAMXAAAMAXAXSAMXXAMAMMAAAXAXASAASMMMMASASXAAXXMXMAMAXXMXMXSAXMMMMSXMMAMXMASAXMAAAAMXSAXMXSMSXMXMXAAASAMSSMMMSXMAMXAMMMXMAMMASMMMAAS +AMASXAAMSXMXMMSMMASXMMAMXMMSAMSSMSMXMXMXMMXAAMMMASMSMMMSAMAMSMSAMXAMMSSSSMXAMMSMMXMSASASMSMSAMASXMAAAMSMMMSMSMASAAAXXXXMASXXMAMMSSXSASAAMMMM +ASAMXMXMAASXSXMXMAXAASMMAXMXAXAMXXAXSAMXSXSSMSAMAMXMAAAMXMAXAAAASMASXAAAAMMXMAXXSAMMAMMAAAAMASAAASMMMMAAXAMXAMMMMMMMSXMAXSAMSASAAXAMASMMMSXS +MMXXSXMXMMMMXAXXMASXMMMSSSSSSSMASMSMSAMAXXXAMXMMAMMSSMSSMSSSMSMAXAAMMMMSMMSXMASASASXAXXMMMMSMMMSMMSSSSSSMSSSSSXASXSAXXAMXMAMSASXMMSMMMXMXAAA +MASMMASMXMAMSAMMMXXMAAASAAAAAXXAXXMASAMSSMMMAAMSXSXAAAMAMAAAAXXSSMXSASXMXXAXSASMSAMMMSMXMXXXAAAXXXAXXAAXAMXAMXMXSAMASMSXMMAMSXMAXMXXMMASXMMM +MAMASAMAASAMMAMXAMMSSMMMMMMMMMMSSMMMMXMMAAAXMAXMAAMSSMSAMMMMXMXAMMMSASASMMMAMASXMMMAMAMASAMSMMMSMMMMMMMMASMMMMSXMXMAMXXAMSAXXAXXMMMSAMXSAAMX +MSXXMMXSMMASXMMMXXXAAAMXSXMASXMXAXXSXMSXSSMSSMMSMMXMAASXSAASXMMSAAAMAMXMASXMSAMXMAXAXASXSAXAMSXAXAAXAAXMAXAXAAMXSAMASXSAMSMMSSMXMAASXMASXMMS +MMASXSAXXMAMXMASMXSMSSMAMASXXAXSXMMAMAAAMAMMAAAAXMXSMMMMMXXSAXAMMMSMXMMSMMMXMAXXXXSXSASASMMMMMSSSSSMMXSMAMSMMMSASASASAMMMSAAAMXAMMXXAMAXAMAS +MXAMAMASMMASMSASAMSAAXMAMMMMSMMSAAAMAMMMMAMSSMMXMSAMXMXXAMMSAMSSMXAMMSAAAAXASMMMSMAXMAMAMXSXXAAXXMAMSMSMSAMMMMMAMAMXSXXXASMMSASXSSMSSMSSMMAS +MMMSXMMMASXSAMAMXAMMMSSMMMAMMMASXMMXXXAXSMMXAAAASMMMAMXMMSAMAXAAMSMXAMSSSMMXMAAXAASAMXMMMMMMMMSSMXXMAAXAMAMAASMSMSMMXMMMXSAMMAXXAXAAXXXAAMXM +AAXSASXSAMMMMMAMMMAAAXMMASXSXMAMAXXSSMMMXAXSSMMXSAMSASASAMXSXMXSMXMASMMMAMXSSSMMSSMMMASAAXAAAXXAAASMMSMXMMMSXSAMXAASXAASAMXXMMMMXMMMSMSSMMMS +SSSXAMASXAAAXMSMXXSMSSXSAMAXMMMSSMAXMASASXMMMSSSMMMSASAMMSMMMXXMXMMMXAMSSMMXAAMAXAXXSASXSSMSSSMMMMXAAAXXXXAXAMMMMSSMSXMMAXMAMAAAAXAAAAAMASAA +MMMMSMXMMSSSMAXXSMXAAAMMMSSMMSMAMMXMAXMASAAAAASAAMXXMMMMXAAAXXXXAMXASAMAMAMMXMMSSMMMMASAXAXXMXAAMXSSMMXSAMXSMMXAAMAMXMSXSMASXSSXMSSMMMMSASMM +XAAMAAXXMAXAMXMAXAMMMSMMAAAMXAMASXSMMSMAMXSMMXXMMMSASXXSSSSMSMSSSMMMSXMXSAMMASXMMAMXAMMMMSMSAXSMSXXAASASMMASXMMMXSASXXAAXMMMAAAXXAMXXAAMAXAX +SSSXSSXMMMSXMSMMSSMMAXAMMSSMSMSMSAMSAAMAXAXMSMSSMXSAMSAAMAMAMAMXXMAXMXMASAXMAAAXSAMMXSASMMAMMMMSMXSSMMAMAXASAXXSAAXXXMMSMAAMXMSMMASXSMSSSSMM +MAMXMMXMXXXAMXAAAAAMXSXMMXMAAXMXMMXMSSXSSMMASAAXMAMAMMMMMSMAMMXMAMSAMXMMSAMMSMMMSASAXMMMAMSMAASASAMXMMSMMMASXMXMASMMASAMXSMSAMXAMAMMSAMXMAXM +MAMASAMMASXMMXMMSSMMXMAXXAMXMSMXMMAXMMAAXXMAMMMXMAMAMXMXSAMAXXSMMAMAMAXAMAMAAAXXSAMXMXASAMXSSMSAMMMSAAXAXAXMAMSSSMAXAMASXMXMASMMMMSMMXMAXMMM +SASXSAMSASAMXXXAXAMMSMMSSMSAAAMAASMSAMSMMXMAXASASMSMSAMSAMSSSMXAMAXAMMSSSMMMSSMAMXMSMSMSSSMAMAMXMAXXMMSSMSASXMAMAMSMMSAMXMASXMMXAMAMXMXSSMSS +SASXXAMSSSMMXAMMXMMMAAMAAAXMMMSSXSAMXMAXAMXXSASAMAAASAMXMXAAAAMXMAMMMAAAAAXAAAMXMAXAAAAMMMMAMXMXMXMMXMAAAXAMMMMSAMAAMMAMSMMXAAAXSXXSASXAAAAX +MAMMMSMMAXXAASXSAXASXSMSSMXMSXXMAXMMSSMXSAAXMMMXMSMMMAMXXMAXMMASMMAMXMMXXXMMSSMMXMSMSMXMASMMXMMAMASXMMSSMMMMAAXSAMMSMSMMSAMXSMMMMAASASMMMMMS +XSMSAMAMMMMMMMAXAXMSMAAAMXASAMMSSMMSXAAAXMMMSMAMXXMMSAMXMXSSSXXSAMSAMXMSXSAAAXAXAXAAAAMSASMSAAMXSAMMXAAAXAXMMSXXSMAXAMXAXAMAXAXAMMMMXXAXSAMX +MMAMMSMMXAXMXMXMXSXXMMMMXSMSASAAAAXSMMMMXXSAXMAXAXXAAXSASAAAXSMMAMAAXXAAASMMMSASMSMSMSMMASASXSMAMMSAMMSSMSXSAMXAXMXMASMXSMMXSMMMXMMMMMSMXASA +XXAMXXMASXSMAMASAAAMSMXXASASAMMSSMMMXSAXXMMSSSSMMMMMSXSASMMMMMXXAMSMMMMMXMXSXMAAMAXXMXAMXMMMSMMMSXAMMAMXAAXMXMMXMAXMAXMAMXMXXMASAXAAAAAASAMX +XSXSXMAMAAMMASASMMSMAAXMASAMXMMXAXXAAXXSSMAMMAXAAAAXAAMAMXSXMXMXSMMAXAMXMSAMXSMMSXMAXXAMXSXMMXAMXMMXSAMMSMSAMXSMAXXMXSXMMAMXXMAXMMSSSSXMAAMX +MMMMAMSAMXSAXSASXXMMSSMMASXMASXSASMMMSMMAMMSMAMMSMSSMSMAMXAAMMSAXASMMXXAXMASAXAXXAXASMSMAMAAAMSSMSXASMMAAAXXAMMAMXXAAMAMSAMXSMXMSAMXMAXMASMA +XAASMMMSXAMMMMXMASMXMMAXASAAXAAMAMMAAAXSXMXAMMSMAMMMAAXMMMXAMAMMMMMMXMSASXXMASAMSMMMXAAMMMMMMSXAASMMSMMSSMMXAAMAMSSMMSAMASXXMASAMMMAMAMMAMXM +MXMXMAMXMSAXAMXXAMAMXMMSASXMAMMMSMXMXSXMMMSMSAAXAMMMSMMSAMSMMSSMASAMAXAXMMMSAXMAAXAMMSMMSASAXAMMMMAXXAAAAAMASMMAXXAAASASAXMMSMMMMMSSSSSXAMAM +SSSXSASXAMMSMSMMSSMSXSAMXSMMXXMAXMMXSMXXSAMXMXSXMMSAMAASMXAXXAAXMXAXSSMXXXMMSSXXMMMSAXAAMAXASMAXMMAMSMMSSMSMMMXXMXSMMSXMMSXAAMAXSAMMAMXMMXAM +XAAASAXMXMAAAAAXMAXAAMSMAMAMXSMMMXAMXXAXMASXXAXASASAMMMMXXSSMSSMSMAMMAMASXSAAMMSMSXMXSMMMSSMMXMMSSMAXAAXMAAAASMXSAAXXXASAMMSSSXSMASMXMAMXSAS +MMMMMMMSAMSMSXSMSXMMXMXMXSSMMMMMAXMMMMSMSAMXSMMAMAMXMMSSSMAXXAXAXMSMXAMXXAMMXSAAXAAMAXAXXAAAXASMAAMSMMMSMSSSMSAAMMMXSMMMASAAMMMMXMMMASXXAAAX +AXAXAAAXAMXAMAAAXXSXMMXSAMAAMAMMXSAAXAAMXAXAXXMSMSMAXXAAAMMMXMMMMMMSSXMMMXMAMAXMSSXMAMMAMXSMMMAMSSMXXASXMAXXAMMMMXMXSAXSAMMXSAAXASASASAMSXSM +SMMXSSSSSMMAMMMSMMSASXAMASXMAMSAAXMMMSMMSMMMSAMXAASMMMMSMMXSMXAAAAAXXMASXMMASMSXXMAMSXXAMXMXXXSMMMASAMXXMXMMXMSXXXAASXMMXXSASXXXAMAMXSMAXAAA +MSMMXAMXAXMASXAAAXSAMMSSMMXSAAMMSMMXAXXMAAAXXMAMXMMMXSAAAXMXMMSSSMSSMSMMAMSASXMXSSMMAMSXMAXMAMXAXMAMAMSMMSMSAAXXSAMXSMSXMXMASAXMSMSAMXXAMSMS +SAMXMAMMXXXMMMSSXMMAMAAAXAXMAXXAAASMMSSSSSMXMSSXMXXAAMSSSMMAMXAMMAMXAAASMMMXSAAAMXMXAXSASMSMASMMMMMSSMAAAAASMMMAMXMAMASAMXMMMXAAAAXXMAMXXAXX +SXMMXMMMSMSXXAXMXSMMMMMAMXSXMMMMSMMAAAMMMAMXAAMMSMMMXMAMXASAMMAMMMXMSMXMAAXASMMXXAMSSXXAMXAXXSAXXXXAXSMSMMMMAXMASAAAMXMAMXMSAMMSMSMSMMSMSMSM +XSXMMSAMAAMAMSXSASASXSMSMMXAMSXAXASMMSSXSAMSMMSAAMAMXMSXSXMASXMMMSAMXMSMSSMMSXSMSXXAMXMSMSXSMSMMMSMMXXXAAXXSXMXMAXSASMSMMXXMASXAXMAMXAAXXXMA +AAMMMSASMMMMMAAMAXAMAXMAXSSMMAMASMMMAMMAMXMXAXMMSXMASAMASMSXXAAXAXMXAXMAAMAXMASMASMSSXMXAMSAMXAMAAASAMXSMMXMASXSMXXAMXAAXMXSAMXMMASMMMSXSASM +SMASASMMASAXMMSMSMXMMMMMMMAXSXXAMAAMAXXASMMMSMMAMAMAMMSAMAMMSMMMSSSSMSMMMSSMMAMMAMXAMAMMAMMMSSMMMXMMASAAMXAMXMAMXSMMMASXMSMMMSMSAAAXASAMSAMX +AXSMAMSAXXAMMMAAAMSMXMAXAMMMMSMSSSMSXSSMSASAMAMSMSMXMAMXMXMAMXAAXXAAAMASAMXMMSSMASMMSAMSMSXAAAXMMSMSAMMSMSMSMMAMXXAAAMMMAAXMXSAAMSMMMMAXMMMX +SXMMXMAMSSMSXSMSMSAMSXSMXSAAAAXMAXASXMAXSMMASXMXAXASMASMXSMMXMXXSMSMMXXSASXSAMAMASAXSAXAAXMMSSMSMAAMXSXMASAAMSMSSMSMXMAMSMMSAMXMXAASMSXMASMM +AAXXMXAXAAXSXMAMXXAMSAMAXXMMMMMMAMSMMSMMXXMAMMASAMAMXMMMAAAASMMXSAMXSXAMXMAXXSSMASXMSMXMSMXAXXAAMMXMXMMMMMXMXAMAMAAMMSSMAMMMASMXSMXMAAXSMMXA +SXMAASMMMMMMAMSMSXSAMAMXASXMSSSMSXMAAAAMAMMMSMAMAMAXMSAMXMMMAASAMXMASMSMSMMMXMAMASAAXXXSXMMSSMSMSAAMAMXSASXSSMMAMMMXXAMSMSASMMXAMXAMMMMMAMMS +XMAXMMAAAMSSMMMAMXMAMXMXMSAAAAXAXAMXXXMMAXAAAMXSXMSXXMASAXAXXXMASXMXSAAAAAASAMAMASXMMMMSAMXMMAXMMMXXASAMXSAMAXSASXSXMAXAXSMMAAMXXMXXXMAMAMAX +XAXMASXMMXMASXMAMXSSMAMAXSMMMSMMMXMASMSSSSSSMXAAMMXMAMAMXSSMSMMXMXAAMXMSMSMSASXSXXAAMMAXMMSSXAXAMAMSMMASAMAMAXSXMAASMXMAXMXMMSMSSSMSMSMSXSAM +XSMSASXSXASAMXSAMMAAMASMXSXMSAMXAXSXSAAAAAMXAMSSMXMASMMXASXASMSSXSAMXAXXXAASMMMAAXSMMMMMAAXMMMSXMAXAMSSMXSXMXXMMMMMMXMAXMASXXXAXAAAAAMMAXMAS +MMASASAXSMMMSASASAMMSAXMASMMSAMXSXMMMMMMMMMMSMAAMXMAXAAMSMMMMAAAMMMMSSSXSMXMXAMXMMXXSASAMXMXAXAASXXMXSAMXSMMMXMAXAAMXMAXMXMSAMXMSMMMSSMMMSAM +AMAMAMMMSMAMMASAMMXXMXMMMSMXMAMAMASAMSMSAMXAXMMMMAMXMMMXAASMMMMSXSAXAMMMSXAMMMSXAXXAMASMSSXMAMSMMXXSXMASASMMSAMSSSSSXSASAMXMMMMXASXXAAAAAMAS +SMAMAAXSXMAXMXMAMXMAMAXXXMASAAMXSAMXMAXMXXMXSXXXSASMSXXXSMMXAAAAXMXMAMSAMXXMASXMASMMMAMAAAMXSXMXSXMMASXMASAAMAMXAAXXAMXSMAAXAAXSASXSASMMXSAM +XSXMSSXMAMMXMXXAMAXAMXSMASASXSXXMMSMSMSMXMSMSMXMAXSAAMMMMAMSAMMSSSSMSMMASXMSMSAMAXASMXSMMSMAXASAAMMSXMASXMMMSSMSMMMMSMAMMSMSMSMMAMAMAMMXXMAS +MXMMMMMMMMSAMSSMSXSAXAAMXMXMAMMMSAAAAAAXMAXAXAASMAMAMAMAMXXAMXXMXAAAMMXMMMXAXSAMXSSMMAAMMXMXSSMXMSAAAMAMAAAXAMAMAMXMASASMAMXAXXMAMXMAMXMASAM +AMXAAMAAXASASAAXXAAAMSMMXMXMXMAXMSSSMXMSMSXAXSMSMAXMAMSASMXAASXMMMMMMAASASXMMSAMXMMXXSXAMASMMXAMXMAMSMAXSMMMMMAMAMMMAXMXMAAMMMMMSSMMASAMXXSS +SASMXMSXXASXMXMMMMMXMAASAMASMMMSMXMMXMAAAAMMMMAXMMMMAMSAMMMXMAAXXMAAMSMXASXMAXAMAAMSMMAMSASAAMXAMXMAXMMMXAXAASASMSXMSSMMSMSAMASXAAXSXMASAAAS +MMMAMXASMAMMXAMMSAMXMXXXASAXAAXAAAXAAMXMSMSXAXAXSMASXMMAMXASMSMMMSSMMAAMSMMMSMMSSSMSMAMMMASMMSMSSSMAMASAMXSSXSASAMXXAAMAMXMMSASMSMMMMXAMMMMM +SAMAMMASMAMXSASAMASMMSSSMMMSSMSSSMSSXSXXXASMSMSMASASAMSMMXSXMASAXMMMSMSMAAMAXAAXAMAMMMXXXXMXXXAAAXMASMMMSAMXXMMMAMXMSSMSXAMAMMSAAAMASMMMXMXS +MXXMXMAMXMAASXMAXSAMXAAMAXMAMXAXXAXXAMMMMMXAXAAMAMMSMMAMXXMAMXSMMMAMXXMASXMASMMMXMAMMSSMSSMXSMMMSMSMSAAXMMSSXMSSSMXMAMXMMXMASAMXSAMASAMXXSAM +SMASAMASXMMMXAMAMMMXMMSMMMMSSMXSMMMMSMAXXXASMSMSMSMSASMSMMSAMMSAMSXSSSSMXAMAMXXAMXSSXAAXAAAAMAXXMAAASMMMAAXXAMXAMAMMAMAXAMSASAMXMXMASXMMAMAS +AMASASASXSASXSMXSMMSSXXAXAXXXXMAMMAAXSXSXMAXAAXAAAASXMXMAMSASAMAMASXXAAASMMSSMMXSAASMSSMSSMMSAMXMXMMMAMSMMSMSMMAMSXSASXSSXMASMMAXXXAMASAMSAM +MMAXXMXXMSAXAXMASAAXASAMSMSMXSAMSXMMXMSMMMAMMMSMMMMMXMASXMSAMXSMMMMMASMMMAAXAXAAMMSMMXXAXAAAXASXSSSXSMMAAXSMMASMSMAMAXXAMXSAMASMXXMAMSXSXMAM +XMXSSMXMAMAMSMMAMMMSMMSXAAAAASXXMMSMXMAMAMMSMMMMSXAXAXMASXMAMAMXXMAMXMAXSXMSSMSSSXAAMXMSMMMSSSMAMAAMXMSSSMMAXAMXAMXMAMMSMMMASAAAASMSMXAMXSAM +XSAXAAAASMMMXAMSMMXXMAXXMSMMMXSXSAAAASASXXAAAXAAMXXSASMAXMMAMMXAXSAMASXMXXAMXAXAMMSMMAMAAXAAXAMAMMMMXXMAMXMAMSSSMSAMXMAAAAMMMMSMMSAAAMSMXSXS +SMMXXMMMXAAASXMXASAMMXXMAAXXMAMMMSMMAXXMAMSSMMMSSMMMMXMXSAXXXSMSXSASASASAMSSMXMAMMMAXAXSSMMSSMSSSXSMXXMAMAMSSMAAMSAMSMSSSMSXXXXAXMMMMMMAXMMS +XASMSSSXSSMXXMASAMAMSMMSXMMAMAMSAMXSMSSMSMAAXAAAAXSASAXXXMAMSAMXASXMASAMXSMAMXSAXASMXSXMXAAMAAAAMAAMSXSXMMXMAMSMMSAMXAAAAMAMXSXMXSAMAAXMMMAM +SAAAMAMXMAMXMMXMMSAMAAMAASXMMSMMXSAAXAAMAAXSMMMSSMSASMSMAXMXASXMMMAMMMXMXMXAMXAMMMSAAXXMSMMSMMMSMSAMXMMAMXSXSMMXASAMMMMSMMASMSMSASASMSMMAXXS +MMMMMAMMMSMSAMXAASASASAMXMAAAXAMXMASMSSMMXMAXXAAAAMXMASAAMXSAMXAXMAMAAAXAASMMSASAXMMMMAMXMAAXXAXMXXSAMMASASAAAXMXSSMXXXAMSAMAMAAMSXMXMASAXMA +AASASXSAAXAXMSSMMSAMAMXAAMXMAXAAXXAAAAAAXMSSSSSXSXMASXMMXSAXXXXAMXMSASMSMMSAASAMMMXMASMMMMSSSMMMSXMSASXSMASXMMMMXMMMXXSMXMXSAMSMAXAMXAMSASXM +SXXASASMSMMMXAAAXMXMAMXSASAMSSMMMMASMSSMMAXAAAAXXASXSASAMXMMSMMXSAMXXAMXMAMMMMXMASMMAXMAMXAAXXSAMXXMAMXAMXMMSAAXAAAAMMAXSAASAMXMSMSSSSXSMMAX +MAMMMMXXAAXXMAMMMMXMASAMMAXXXAMAMMXMXMAXSMMMMMMMSAMXSAMXSMAAXMAAMAMMMMMAMASASXXXXSAASMSSSMMSMMMSSMXMAMXMXMAXSASMSSMXAXMSMMMSXMXAAXXAAMXSASXM +MASXASASMSSSMSSSXMASMAXAAAXXSASMSMAXMXMMSAMXAXXASMMXMSMAMMMMSMSSSSMSAASXSASASMMSMMXMAAXAAMAAMAXAMAAMASAXMAXXXAMAXAMMXMXXXXAXMSMSMSMMMMASMMXX +SAMXXMASAAAXAAXXASASAMXMMXXASAMAAMXMMMSASAMMMSMMXAMXAAMAMAAMAAXAMXAMSXSASMMMMMAAAXSMMMMSMMXSXSXMASMSASXSASMMMMMXSMMSAAXAMMMSAAXAAXXXAMXMAMXX +MMSSMMMMMMMMMMSSXMASMXXMASMAMAMSMMAXXXMASXMAASASMSMMSMSAMSMSMMMXSMMMMXMAMXAASMSSSMXMASXMAMAXXMAXXAAMXSMMXXAAAAXXMAAXAXXMXAAMXSSMSMSMSSSMMMXM +MMAAMXSMXAXMAAXMAMAMXMXMAMMXMAMXAMSXSAMAMAMMXSAMXXXXAMMMXMAAXXSMMASAXMMSMSMMMAAAXAMSXSXSAMASAMXMAMXMMXAMMSSSSSSMSSMSSXMASMXSAXMXXAAAXAAMXSAA +MMSSMASASMMXMMMMSXAXAMAMXXXASMSMXMAASXMASXMSAMAMXMMSMSXMAMMMSAMASAMXMXXAMASXMMMSMSAMXMAXXMASAMAMXXMSSMSAAXAAMAAAAAAAAMAMAAAMMMSAMMMSMSXMASXS +AAAAMAMXMASXSXMAXMMSSSXMAMSAMMAMMMMMMSXMAXSMMMXMASAMXMAMXSXXXAXAMASMSSMMMAXXSSXXAAMSAMMSMMASAXAMMMAAAAMMMMMMMXMMMMMMSASXMAMSXAMAXXXXXXXMXSAM +MMSSMSSXSAAXMAMXXAXAAXAXAMMAMXAXAMXMMAMAMXXAASAMMMXSASAMAAXMSMMXSXMAMAASMMSMMSAMXMASASAAAMMSASXXMMSSMMMASXMASXSSXXSXMXXMMAAXMXSAMSMSMSXSXMAM +MXMAMAAAMMSXSAMMSMMXSSSMSMSAASMSMSASXMSMAXSXMXAXAXAXXSMSSSSMAAAMXXMAMMAMAMAMAMXMAXXSXMMSSMAMMMXAAAAAASXMMAMAMMAMXMAMXXSASMSMSAMMMSAAXAAXMSMM +MAMMSMMMSMMXSASMASMAMAMAAAMAMAAAASAMXXAXSXMMSSSMSMASASAAMMAXMSXSXMSASXSSSMXMASAXMAMMMXXXXMXSXAXMMMSSMMAASXMASMSMSMSAXAMAMXXAMXSAAMMMSMMMAAAA +SASAXXXAAAMXMAMMAAMMSAMSMMMSMMMMXMAMMSXMMAAMMAMAAASAAMMMMSAMXAASAMSASXMAXAXSASMSASAAMMMAMXMMMMSSXAAAMSXMMASMMMAAXAXSMMMSSMMSMMSMXSXMAAAXSMSM +SAMASMMSSSMSMSMMXSAAMXMXXSAXMXSXSSMMASMMSSMMMAMSXSMMMMXAXMXMMMSMAMMAMXAMMSMMASAMAMMASXMSMSMAMMAAMMXSMMASMXMXXSMXMXMXMXAAAAAAAXXMASMSSSMXXAAX +XAMXMXAAAXAAAAMSMMMXXMASAMXXSASXMASMXSAMAMMAXAMMMMAAMMMSSMSSSMMXAMMAMMXSAXAMAMAMMMSAMAMAAASASMMSMSMXAXAAXMMMXMAMSAMMSMMSSMMSAMSAMXAXMXMAMMMM +XAMXXMSMMMSMSMSMAAXSMSXMXMXAMMSASAMXASMMASXMSSSMASXMMAAXAAMXXAAMMMSASAAAAMSMSSXMXAMASAMMSMSXSAMXAXAMSMSMXAAAMXMASASAAXMAXMXXXAXMSMSMAAMASAMA +ASXSAAAXAAXMAXAMMMSAAMMSASAMXAMMMASMMSASAMXAAMAMMSASMMMSMMMSSMMSMASAMMSMXMXAMAXMMXSASXSXMAMXSXMMSMSMXAAXSXXSMAMMMMMXSSMMSSSMXSASAMXASXSASASM +MXAMMMMSSSSSMSAMXMMMAMASASMXMSAAMXSAXSXMMSMMSSMMMSAMAAAXAAAAAAAAAXMAMAMXXXMAMSMSAAMASMAMMASMSAMXXAMXSSXMMSMMXAXAAASXMAMXXAMAAMSSMSSXMMMMSAMX +XMAMASXMMAAAASXMAXXXAMMMXMAXAMSXSASAMMAMMXAXAAMAMXXXMMMXSMMXSMSXSMSSMMSSMSSSMAAXMXSXXAAASXSASMMAMAMXMASMAAXASMSSSSMXSXMMMMMMMSASXAMAMASXMMMS +XSAMXXAAMXMMMMASMSSXSSXXASMMXXAXMXXSASXMAMSMSSMXMAAASXSAAASXXAXXXMXXAXXAAAAASMSMSASMMSAMXXMMMMSASAMSMMXMSMSMMXAAXMXAMASXMAAAMXASMMMSMASMXAAM +XSXXXXSMMXXSSXXMXAAAMAMSASXSXMMMSMXXXXASMSXAXAXAMMAMAAMXSMXAMAMAXMSMMMSMMMSMMMAAMASAAAAXMXMXMASAMMSMAMXMAMSAMMMSMMMASXMMSMSXSMAMAXAMMAMAMMSS +MMMSSMXAMMSMMXSXMSMXMAMMMMXSAAXAAAAMAXXMSAMXMASMXAXXMXMMMMMSMAMMMMAAAAAAAXMASMMXMAMMMSSMMASAMMMMMMAMMMASAXXAMXAAAXSMMMMAAAXASMMSXMXSMMMSXAAX +XAAAAAXAMXAAMAMAMXXAMXMXAXAMMMMSSSSMSSMMSXXMAAMMASXMXAXAAXAXXXAAAAXSMSXSMSAMXXSMMXSXAXMXSAMAMAAMSSSSMSXSMSMSMSSMSMMAMAXSMSSMXAASAMASASAXMMMS +SMMSSMSSMSSSMAMSMMMXMXSXMMXXAXXAMMAXXAAXMASMMSSXXMMAXSSSSMMSSSSSSSMXAXAMAMXXAAMAMSXMASXXMMSSSMSMXAXAASMMASAXAMMSAAAAMAXMXMAASMMXAMASXMMXAAAM +MAXMMAXAAAAMMASAAAMAMAMMSAAXSXMAXSSMSSMMSMAXAXMMXMASAMAAXASAAMAMAMMMMMXSAMMMMMSAMXAMMMXMXXAMXAAMMSMMMMAMAMXMAMXMMMMMSSSMASXMMSASXMASAXSMSMSS +SXMAMMSMMMXSSMSXXMMAMXSAMXSAAMSMMXAAAXMXAMMMMSASMMAMAMXMSMMSMMAMAMAAXSMSAMSXAASASMSMASAMXMMSMSMMAMMMSSXMXXMSSMMSXSAMAMAXASASAXXAAMXMMMSAMXMX +AMSXMAXXSMMMAASAMSSMSAMASAMMMMAMMSMMMAXMMXXAXXXSAMAMAMXAXAAXMSASXSSSXMASAMMMSMSXMAXSXSASAAMSAMXMAXAAXMMMSAMAAAXAASXMASMMMSAMSSSXMASXXAMMMSMM +MAMXMMSMXMAXMMMASAAXMASXMASMXSXXXAMAMXSXAMSSXSAXXMSSSXSMSMXSASXSXXAAMMMMMXXAMAMXMAMXXMXSMSMMAMXMASMMSXAAXAMSSMMMMMASASXSMMXMMXMASAMXMXSAAMAM +XSMXXAAXSMSSXXXXMMXXMASASMMMXXAMSAMXMAMMSMMAAMMMMXXAMAMMAAXMMMAMASMXSSSSSMMSSMMAMAXMXSAXAXMMSMXMAAAAAMMSXMMXXMMMMSAMASASXMMXXSXMMSAMXASMXMAM +AAAXASMMSAMMMSMMXXAMSMSAMAASXMMMSMMSMMXAAAMMMMSAAMMAMAMMMSXMXMAMAMXXAAAXXXAAAAMSSMSAAMAMAMAAXMAMSSMMSXAXASMMMSXAAMASAMXMAXSAMXASAMXMMAMASXMM +AMMMMXXAMMMAAAASXSSMAAMXMMXMXMMAMAAXAAMMSSMSMAMMSXXMSASXXMMSASXSSSXMMMMMMMMSSMMAAAXXMMXMXMMMXSXXMAAMAMXMXMASAAXMSSXMASASXMMAXMMMASMMSSMXMAXS +SMMAXMMASXSMSSSMAAASMMMMXSASMSMASMMSSMXXAXAXMASXMMMASAMXXMAXXSAAXMAMXAMAXXAXMAMMSMMXXSXMXXAAXSMSSXMASAXMASMMMSMSAMAAAXAXMASAMSMSMMAAAXMASAMX +XASMSAMAXMXMAXAMMMMAXAXAMSASAXSAMMXMMSXAXMMMMAMAAXSAMXSSMMSSMMMMMSSMSMSMSMMSSXMAAXAXXMASMSMSMMAMMASXMAXSAMXXMAXMASXMSMSMSAMXXAAAXXMMSMSASAMA +SAMAAAMMMSAMMSXMXXXSXMMSAMXMMMMMXSASXSXMAMXAMAXMMMMXXXXAAXAAAXMAMXAAXMAMXASXMAMSSSSXXSXXAMAMAMMMMXMAMAMMAMXSMSMXAMXAMXMXMASMSMSMSXXAAXMXSAMS +XMMXSXMAASAMMAMXSMMMAMAXMMXXSASXMSASAMMXSMASMSSMMXMAMSXSMMSSSMXMASMMMSMSSXXAXXMMAMXMMSXMXMAXASMSSSMAMAMMMMAXMASMXSMMMAXMSMMAAAAASMMMSSMMSMAM +MXSAMAMMMSAMXXASAMAXAMAMASMASASAMMMMXMAAXMAMAAAXSSMMXSAAAAMXMXASAMXAMAMXXMMSMMSXMAMSAXXAMMSSMMASAMSASASAMMMMSAMXMMAMSSMMAAMSMMXSXSAAAAAAMXSX +XXMAMXMXAXMSMMSAMXSXXMMSAMMAMXSAMSXAMXMXSMAXMXMMAMAXAMSMMXSAMMMMXMSMXSSMAAAAAAXAXSXMASMSAXAAAMMMAMXXMAXAXAAAMASXASMMAMAXSSMXAMSMMMXMSXMMSAMX +MASMMMMMMSMAAMXMXMMXSAMMMMMMMAXAMSMMSASXAMMSXSAAXSAMXXMMMMMMMAAAAMXMAXAXMSSSMMSSMXAMMSAMMMSSMMXMXMSSMSMSSMSMSMMAMAAMMSSMAMMMAMAAXAAMMMSSMASX +AXASXAXAMXXMSMMXXAAAMAMAAAASMSSSMXAXSASXXAAXMAXSXSMAMSAMAAAXXSMSMSAXMSAMMXXAMAMXASAMSMXMXAMAXXXMAMXAAAAXMAXMAXSMSMMMMAXMMMXSXSSSMSXSAAXXMSMX +SSXASMSMMMXMMMMMSMMSSSMSSSMSAAAASXXMMAMMSMXSAMXXASXSXMAXSSSSMXAMASASMMXMSSXMMSSMMMSMAAAXMASXMXAXAXXMMMSMSAMXAMXASXXSMSMSAMXSMAAXAMAMMMSMXMAA +XAXMAMAAASAMMAAAXAMAXMAXAXAMMMSMXMXAMAMAXXMAMXSMAMAMMSSMAMAAAMMMAMMMMASMAAASAXXXMAAXMSMMXXAAASASXXXXMAMASXMMASMAMSMMAAAMASASMMMMSMAMASAAAMSM +MAMXASXXMMASXSMSSSMMAMXMSMXMXXMXAMXMXMSSMMXSAXAAAMSMAAXMAMSMMMSMSMXSXAXMMSMMASMSMSSSXMXXSMSSMMAXAASASAMMMAMSAMMAMXXMMMSMAMASXAXXMXXMXMMXMMAX +MAMMMSASXXXMMAAMAAXMXMAMAMMSMMMSMSASAMXMASAMXMMSXXXMMSSSSMXAMXMAMMMMMSXMAXAMAMAMMAMXAAXXXAAAXMXMMMMAMSSXMAMMASXXSXSXMAMMMMMMMMSMMMSMMMSAMXMX +SSMMAMXMAASXSMSMMMXSMMSSMXAAAAAAXMASMSASXMAMXAXXXASAMXMMMAXMASMAMAMXAMMMMSAMAMXXMMSSMMMMMMMSAAAAXAMXMAXAMAMMXSMAXASXXAXMASAAAXAAAAAAMAMASXXM +MAXMAMXMMMMAMXXAXXMXSAMXXMSSSMSSSMAMASAMXMAMXSAXAXMAMMMASXMMAXMAMAMMXSASXSMSMSMASMAAAAXAMXMAXXMSSXSAMAXXSAXXAMMSMAMXMMMSASMXXSMSMSSMMASMMMAS +MAMSSMAXMAMXMASMMXAXMXMAXXAAAAXAMXAMXMSMAMXSXMMMMASXMASAMAAXXSSMSSSMMSASAMXMAAMMMMXSSMSMMASAMXXAAMSXSMSAMXMMASAMMMMXASXMMSXSAAXAAXXMSASASXXA +MXXAAMMMXAMAMMSAMSMSMAMSMMMSMMMAMASXSAMXMMSAMXAXXXMAMXMMSSMMMMAAAXAAAMAMXMXMSMMAXXAMAMXMSXXAAMMMXMMMAMMASAMSAMMXMAMMSAAXSXAASMMMMMMMSASMSASM +SXMXMASXSMSASASAMAMAMAXAASXXXMSMMMMAMAMAXMSASXSSSMSAMXMAAMAXASMMMSSMMMAXXMSAXMSMSMMSAMAXAMMSMMXXAMAXAXSXMAAMXXMAXMMMXSMMAMSMXXXXMAAXMAMASAMS +MASASAAAAASXMAXAXASASMSSSMMXMAMSMXMAMSXXMASAMAMAMASAMAMMSSMMXXAAAXMASXSMMXSAXAAASAAXXSXSXMAXASAMSSMSSMSAMXMSMASMSMMAMAMAMAXXMXMASXSSMMMMMAMX +MMMASMMMMMMXXMMXSASXMMMXAAXAMAAASXXAMXASMMMMMMMAMMXMMSSMXAASASXMMSMMMAAAXAMXMXMXMSMSMXASMMAMAMASAAMAXAMXMAXXMAMMAXMASAMAXXMXAXXAXMAMAAXXMAMX +SXMAXASAXXXSMSAXAAXASXSSSMSXSMSASMSSSMAMAMXXAXMXMSMSAAAMMSAMXMAMSAAAMXMSMXSAMASXMMXAAAMSAMMSXSMMXMMMSSXXMXMXMAMSMMMAMAXMSMAXSMMASXSSSMSSSMSX +AXMASAMMMMMMAAMMMMMMMMAAAAXAXAMAMAAAXXAMAMAMMMAAAAAMMSMMAMSMXAAXSSSMSAXAAASMSASAMXSMSSXSMXMAXXMAMSAXAAMXMAMSMXMAASMSSSMASAMMAMSAAXXAXXXXAMXM +SXSAMMXAAAAMXMSMMAAXAMMMMAMMMXMSMMMXMMSXSMSAAMSSMMMMAXAMXXAXSSMXXAXASXSMSMSXMAXAMMAAAXXMXXSMMMMAXMAMXSAAXAXMAMSMMMAAAXMXMAXSAMMMMSMAMMMMSAMX +XAMXMASMXXXXAXAASXXSXSXAXAMXAAMXMAXMAXMAMAXMMXAAMSSMASAMSMSAAAXMMMMASXMAXXMXXMXSMAMMMSSXSASAAMMSSSSMAAXXMMMMAMMMSMMMSMSAMXMMASXSAXMXMXAAAASX +MXMXAXXMASMMMXMXMXXMAMXSSMSXSASXSAMASXMAMAMASMMMAAAMAMXMSAMXSMAMMAMASAMAMAMSMSAMASXMXXMASMSSMSMAAAXMXSMMMSASAXSASAMXMAMXMAXSXMAMAXSAMSSXMAMX +SAMXMXMMXAAASMSSSXSMAMAMAMXMXAXXMAMAMAMXMSMAMASXMSSMMXSAMXMMMMXASASXSMMXSAMXAMAMAXAMXAMXMAMXMAMMMMMMAAAMAMASXMMASAMXMSMSSMXMMSAMXMMAXAAMMSXM +MXXAMMXMXMSMSAAAAAAMAMMSSMAMMMMSSMMSSMMSMAMMSAMMMAMASASXMAMAAXMMSASMMMAASASMSMSMXSAMSSMASXMASAMMASAMSSSMASMMMSMMMMSMMMAMAMMSASASMMSMMMSXMMAM +SSSXSAASMXMXMMMSMMMSXSAAASASXAAAAAAAAMAASASMMAXAMASAMASASASMMSAXMXMAAMMMSAMXXAMAAMAMAASXSAAAMSMSASXXXAXXXMASAAAXMASAXSASAMAMMSXMXAAAAXMAASMM +XMASAMMSAXMASAMXMXXAAMMSMSSSXMSSSMMSSMSXSXSXSMMXSASMMXMMSMSXMAMXMASMMSSXMAMXMMMMMSAMSMMXSMMMSXXMASMXMXMASMMMSSSMMMSSMSAMXMXSMMMXMSSSMSSSMAMM |