7 Achegas a86ccd8e50 ... 19f1fb1134

Autor SHA1 Mensaxe Data
  Piotr Czajkowski 19f1fb1134 Solved part2 hai 2 semanas
  Piotr Czajkowski 02c5e59134 Ok, now I got it, part1 solved hai 2 semanas
  Piotr Czajkowski 3f636a52b4 Merge branch 'main' of github.com:pczajkowski/aoc2024 hai 2 semanas
  Piotr Czajkowski 72c23059af Cleanup hai 2 semanas
  Piotr Czajkowski f2b596b260 Added description hai 2 semanas
  Piotr Czajkowski 8252536661 Added description hai 2 semanas
  Piotr Czajkowski c6430a330b Attempted, but I definitely misunderstood something hai 2 semanas
Modificáronse 3 ficheiros con 335 adicións e 0 borrados
  1. 120 0
      04/code.go
  2. 75 0
      04/description.txt
  3. 140 0
      04/input

+ 120 - 0
04/code.go

@@ -0,0 +1,120 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"log"
+	"os"
+)
+
+func readInput(file *os.File) [][]byte {
+	scanner := bufio.NewScanner(file)
+	var matrix [][]byte
+
+	for scanner.Scan() {
+		line := scanner.Text()
+		if line == "" {
+			break
+		}
+
+		matrix = append(matrix, []byte(line))
+	}
+
+	return matrix
+}
+
+var directions [][]int = [][]int{
+	{0, 1}, {1, 0}, {0, -1}, {-1, 0}, {1, 1}, {-1, -1}, {1, -1}, {-1, 1},
+}
+
+func checkPath(i, j int, matrix [][]byte, word string, index int, direction []int, rows, cols int) int {
+	if i < 0 || i >= rows || j < 0 || j >= cols || matrix[i][j] != word[index] {
+		return 0
+	}
+
+	if index == len(word)-1 {
+		return 1
+	}
+
+	i += direction[0]
+	j += direction[1]
+	index++
+
+	return checkPath(i, j, matrix, word, index, direction, rows, cols)
+}
+
+func check(i, j int, matrix [][]byte, word string, rows, cols int) int {
+	var count int
+	for _, direction := range directions {
+		count += checkPath(i, j, matrix, word, 0, direction, rows, cols)
+	}
+
+	return count
+}
+
+func part1(matrix [][]byte, word string) int {
+	var count int
+	rows, cols := len(matrix), len(matrix[0])
+
+	for i := 0; i < rows; i++ {
+		for j := 0; j < cols; j++ {
+			if matrix[i][j] == word[0] {
+				count += check(i, j, matrix, word, rows, cols)
+			}
+		}
+	}
+
+	return count
+}
+
+func isXmas(i, j int, matrix [][]byte, rows, cols int) bool {
+	if i-1 < 0 || i+1 >= rows || j-1 < 0 || j+1 >= cols {
+		return false
+	}
+
+	opposites := [][]int{{i - 1, j - 1}, {i - 1, j + 1}, {i + 1, j - 1}, {i + 1, j + 1}}
+	for _, opposite := range opposites {
+		if matrix[opposite[0]][opposite[1]] != 'M' && matrix[opposite[0]][opposite[1]] != 'S' {
+			return false
+		}
+	}
+
+	if matrix[opposites[0][0]][opposites[0][1]] == matrix[opposites[3][0]][opposites[3][1]] || matrix[opposites[1][0]][opposites[1][1]] == matrix[opposites[2][0]][opposites[2][1]] {
+		return false
+	}
+
+	return true
+}
+
+func part2(matrix [][]byte) int {
+	var count int
+	rows, cols := len(matrix), len(matrix[0])
+
+	for i := 0; i < rows; i++ {
+		for j := 0; j < cols; j++ {
+			if matrix[i][j] == 'A' {
+				if isXmas(i, j, matrix, rows, cols) {
+					count++
+				}
+			}
+		}
+	}
+
+	return count
+}
+
+func main() {
+	if len(os.Args) < 2 {
+		log.Fatal("You need to specify a file!")
+	}
+
+	filePath := os.Args[1]
+	file, err := os.Open(filePath)
+	if err != nil {
+		log.Fatalf("Failed to open %s!\n", filePath)
+	}
+
+	matrix := readInput(file)
+	fmt.Println("Part1:", part1(matrix, "XMAS"))
+	fmt.Println("Part2:", part2(matrix))
+}

+ 75 - 0
04/description.txt

@@ -0,0 +1,75 @@
+--- Day 4: Ceres Search ---
+
+"Looks like the Chief's not here. Next!" One of The Historians pulls out a device and pushes the only button on it. After a brief flash, you recognize the interior of the Ceres monitoring station!
+
+As the search for the Chief continues, a small Elf who lives on the station tugs on your shirt; she'd like to know if you could help her with her word search (your puzzle input). She only has to find one word: XMAS.
+
+This word search allows words to be horizontal, vertical, diagonal, written backwards, or even overlapping other words. It's a little unusual, though, as you don't merely need to find one instance of XMAS - you need to find all of them. Here are a few ways XMAS might appear, where irrelevant characters have been replaced with .:
+
+..X...
+.SAMX.
+.A..A.
+XMAS.S
+.X....
+
+The actual word search will be full of letters instead. For example:
+
+MMMSXXMASM
+MSAMXMSMSA
+AMXSXMAAMM
+MSAMASMSMX
+XMASAMXAMM
+XXAMMXXAMA
+SMSMSASXSS
+SAXAMASAAA
+MAMMMXMMMM
+MXMXAXMASX
+
+In this word search, XMAS occurs a total of 18 times; here's the same word search again, but where letters not involved in any XMAS have been replaced with .:
+
+....XXMAS.
+.SAMXMS...
+...S..A...
+..A.A.MS.X
+XMASAMX.MM
+X.....XA.A
+S.S.S.S.SS
+.A.A.A.A.A
+..M.M.M.MM
+.X.X.XMASX
+
+Take a look at the little Elf's word search. How many times does XMAS appear?
+
+Your puzzle answer was 2458.
+--- Part Two ---
+
+The Elf looks quizzically at you. Did you misunderstand the assignment?
+
+Looking for the instructions, you flip over the word search to find that this isn't actually an XMAS puzzle; it's an X-MAS puzzle in which you're supposed to find two MAS in the shape of an X. One way to achieve that is like this:
+
+M.S
+.A.
+M.S
+
+Irrelevant characters have again been replaced with . in the above diagram. Within the X, each MAS can be written forwards or backwards.
+
+Here's the same example from before, but this time all of the X-MASes have been kept instead:
+
+.M.S......
+..A..MSMS.
+.M.S.MAA..
+..A.ASMSM.
+.M.S.M....
+..........
+S.S.S.S.S.
+.A.A.A.A..
+M.M.M.M.M.
+..........
+
+In this example, an X-MAS appears 9 times.
+
+Flip the word search from the instructions back over to the word search side and try again. How many times does an X-MAS appear?
+
+Your puzzle answer was 1945.
+
+Both parts of this puzzle are complete! They provide two gold stars: **

+ 140 - 0
04/input

@@ -0,0 +1,140 @@
+XMSSMSSMXSXSAMMMAMMMASAMXSSMAMSSSMMXSMMSSSMSAXAAMMMSMSMSMAMMMMXMMMMXAMXXMMMSMMMAMXMMSASMSSSMSMMMXMSSMSMSXMMXXMASXMMMMMMMXMASXAMSXSXSXSMAMSXS
+SMAAXSAMMAAAMAASMSAXSXMXXXMMAXAAMAXASAASXMAMXAASXAXMMAXAXXXSXSAMASXMSSMMSASXSASAMXXXSASAASAXAXAMMMAAAAASMMMSSMAMSAAMAMAXAXAXAMXXAMAAASMSMSAA
+MMSSMSAMAMXMMSXSAMMXMAMMMMMMXMMMMXMASMMSAMXMSXMAMMSMSSSMXSAMXSASAXAMXAAAMSMASMSAXAMXMAMMMMSSMSMSAMSMMMMMAAAXAMAMMMMSMSMMXMMSMSMMAMAMXMAAAMXM
+XAAAAMAMXXAXAXMMXMMASAMAASAMMXSAMXMMMMAMXMMMXASMMMAMMMMAASAXASAMXSXMSSMMXAMXMXSMMSXSMAMAMAAXMAMAXXXSMAASMMSSMMMSSMMAASASMMXAMAAMSMSMXMSMSMXA
+MSSSSSMMMSMSMSSSSXSASASXMSAMAASXMMMSMMXSXMAMSXMAMSMXAAMMMSXMMXMAMAMMXXMXSASMSXMMSAAXMAXAMMSMSXSASMXAMSXSAAMAXXAAAMMMXMAXAXSSMSSMAAAXAMAXAMXS
+XAAXAAXAXAAAAMAAAAMAXXMAXSXMSAMASAAAXSASASXMSAMMMAAMSMSAMXXMXAMMXXAXAXXMAAXAXAASAMSMSSSMSAMAMAMMSMSSMXASMMMSMMMMSMSMSMSMXMAXXAMMMMMSSSSSXSAM
+SMSMSMSXSMSMXMMMMMMSMMMXASXXMAXMMMMSSMASAMXAMMXASMSMXASXSAMMSXSMASXMMSMSMMMSSMMMMXMASMAASAMMMASAMXAMSMMMMAAXAXXAMASAAAMXXMMSMMSAMAXAAAAAAMAS
+AAXAXMXXAAAAXMASAXAAAAXMSMXSMMSXMMMXAMXMXMMMMSMMMAMAMXMXMASMAAAMMSAAAAAAAAAAAAMXXAMXMMMMMAMXSXSASMSSSXSAXMASAMMXMAMSMMMSXAMSAMSASXXMMMMMMMMM
+MSMSMXXMSSSSMSASASXMSSXSAMXSAASXSAXMAMXMMMMXXAAAMSMXSAMXSAMXMXMXAXMMMSXXXMMXSMMASMSMXAASMMMMSASXMAMAMASAMXAXAXAMMXMMSXAMMAMMMMMMMMAXMMXAAAAM
+XXAXMXMXAAAXAXASMMAXMMXSMSMMMMMASASMMMMAAAXSSMSXMXXMSMSMMMXMXASMSXMMXXASXSSMXAMAMXAAXMSSXAAAMMMAMSMAMXMMMSMSMMXMASXXXMASMMSXMASMASMMSXSSSSSS
+MMSMMAMSMMMMMSAMXSXMSAMXXAXMASXMMAMMASXSMXXXAAXMSMXAMXMAMXASXMSAMMSMXMXXAAXAMAMASMMSSXAMMSMXSAXAMAXXXAAAXAAAAXXMAXAXXMASAXSASAMSAMXAMAXAAAAX
+MAXAMAXAAXSAMSAMXMAMXASMSMMSASMXMXSSMSAXMMSMMMMAAAMSMAXSMSAMAXMMMASAAAMMMMMMSXMMXAAAXMAMMMAAMASMMSSMSSXMSSSSSMMMSSSMSAAMMXMAMAXMMMMAMMMMMMMM
+MMSAMMXMXMMAMSMSXSSMSMMXAMAMXSAXMMMMAMXMXAAASMMSMSAAMAMAAMSSSMMAXAXXMSXAAXSXAMSSSMMMMSAMAMMMSMXXAMXMAMXMMXAXAAAXMAMAXMXXMAMAMXMXMAXAMXAXXAXX
+SXAXMXASXSMSMSAAMMAASMSSMSXSASXSXAAMMMAMMXMXMAAXMAXMSMSMSMAXMASMMMSMMXXSMSMAMSAXXMXMASASMSMAAMAMXMAMASMMMMSMSSMMMAMXMSMMXASASAMSSMSASXSSSMSM
+XAMASXXXAAMXAMXMMSMMMXMAAAAMASAMXMMSMSASASMSSMMMMAMXAAAXXMMXSAMAXAAMAMXMMAMAMMXSSSSMXSAMXAXSASMAASXMASMAXXAXMAMAMXXAMAAMSAMAMAXMAMSAMMAAXMAX
+SAMASXMMMMMMAMAXXAAAMMSXMMXMXMAMMSXMASAAASAASAMXMASMMSMMMASAMASXMMSSMXAXAAMASXAMAAASAMXMSMMXAMXSXXAMAXMXMSMSMASMSMXAXSMMAAMSSSXMAMXXSAMSMSXS
+MAMASXXAAMXSAMXMMMSXSAMAMXMAXSAMAMXMAMXMXMMMSXMASXSMMAXAMAMASMMXAXAAAMXMSASXSMMSMSMMMSAMAXXMXMAMASMMMSXMAMXAMMSAAXSMMMAMMXMAAMMSXMSXSAMXAXAA
+SXMASMXSXSASXMSMSMMASMSXMAASXSMSSSXMMSSXSSXXSXSXXXMASMXSMSSXMMMSSMSSMSAAMAMAMXAXMAXAMMMXXSAMAMXMMAMAAXMSMSMXXXXMAXXMASAMXMMMSMAXAMMXSXMMSMAM
+AAMXMAXXAMMSAMXMAAMAMMSMXXXMMMMAASAMXAXMASXXMASAMSMMXXXMAXAMXAAMAXMXAMMMMAMXMMMSSMSSSXSXAMMMAMAXXASMMMMSAAMSAMXMXXAMASMMMASXMMSXXMAMMMMAXMXM
+AAMAMSXSAMXSAMASXSMXSASXSMMSAAMMSMXAMASAAMMMMSMSMAAXSMSMMMMSSMSSXMMMSMSASXSAXAMXAAAASAMMMMASMSASXMSASXAMMMAXAAXMXSMMAMMAMXSASAXMXSASASMASMAS
+XSSMXAXMASAMASMSAXASMMSASMASMMSXAXXSMSXMMAAAXAAXSSMMSAAXMASAMXXMASAAAMAMSASAMSXMMMMSMXMAMMMSXAAXMASAMMSMASXSMMXSAMMAASMMXMXAMASMASXSMSAAMMAS
+XMAXSMMSAMASAMXMMMSMSXMAMMASAXXXMSMAMXAASMSSSMSMAMMAXSMSSXSASMMMASMSSSMXMXMSMMASAMXAMXSSSSXXMASMMMMSMAMSXXAMXAAMASASXMXSAMSMMMMMASXMASMMXMMS
+AMAMXAAAMSMMMAXASXMASXMAMMASXMSXXAXMSMMMXXMMAMAMAMMMMMXXMMSAMAAMMSXMAMXAXMAXXSAMXMSXXAMMAXAXAAAAXMXAMSMMMMSMMMSXMMAXASASAMAAAXSMMSMMAMXAXSMM
+MMASMMMSMAMAXXSASAMAMMXMSMMSMAXXSMSXAASMMMMSAMMMMMXSAMSXMAXASXMSXMASMMMSAMAXMMMSAMAAMSMMAMXMMXSSMSMMXMAXSAMAXAXAAMMMMMASXMMSMXAAAMMSASMSXSAM
+XSMXAAAMXXXXAAMXMXMMMASMXMAMAMMMAMMXSMMAAAAMXSXSAAAMAMSMMSSMMMMSXSAMXAAXXMXSXAASASMSMXAMXSXASAMAMXAXAMXMMASXMASAMXAAXMAMXXXAMXSMMSASXSAMASMM
+MMSMSSSSXSAMSMMXSXXAXXAMAMAMXAXXAXXAXASXMMSSXMAMMMSXSMXASMMAAMASMMMSSMSSMMSMMMMSMMXAAXAMASMMMASMMSMMASMXSAMASXSMMSSMSMMMAMSMSAMAXMASMMMMAMAM
+SAMXAMXMAMXMMASASASMSMMSSSMSSMXSSSSMSAMXMAMAMMMMSAXAMXSMSASXMMASAXMAMXAMAXXAAMXMAXMMSMXMASAASAMMAMSAMXXMMMSAMMSAAXXXSAMSMAAAMASMMMAMXAXMAMSM
+MAMMXSAMXMAXSAMASXMAMXXAXAXXAMXSAAAAMMSXMSMMXSXASAMXMXXAXAAMAMXSMMMASMMMSMMSMSMMMASMMXSMXSXMMSSMAMXMMSASAMMXSASMMSSXMAMAXSMSMAMAXMASMSSXSAMX
+SSMXMXASMSAXMASAMAAAMMMSSMMSASMMMSMMSAMMMMAMAXMAMAMXMSMMMMMSAMXSXMMASASAXAAMXXAXMAMAAAXSASMMXAMXAXMSASMMMXMMMASAMAMMSAMXXXMAXXSAMSAMAXMAMMMS
+XAAMSXSMMMMMSAMASXMASMAXXAAXMXAAAMXXMAXSASAMXSMSMMMASAMXAXXXASAXAMSXSAMXMSSSMXSXMASMMMSMXSASMSSSSSXMASXAAAMXSASAMMSASASMMSSMMMMMAMAMSMMAMSSS
+SMMMMMMAXMSMMASAMXSASMMMSMSSMSSMMSMSSMMMAMXXAMAMAASXSXSSSSMSMMMSMMAAMXMMXAAAAAXAXAMXAXXXASAMAXMAAAXMAMXMXSAAMASAMXMXSAMAAMMMMXAMAMAMMAXXXMAM
+AAAXAASMMMAMXXMASXMXMASXXAAXMAXXXMAMXXMMSMSMAMAMSAMAXXXAAXAAMAXXASXSMAMMMMSSMSSSMSSSXMAXMMSMMMMMMMXMAXXMAAMXMAMMXAMMMMSMMSMASMMSASXSMSSMSMSM
+SSMSSXMAASASMMMXMXMAMMMMMMMMMMMSASMSSSXAAAXAAMXXMAMXMMMMMMSMSSSSXMAAXXXAXXAXMXAASAAMMAXSXAMXXAAXSMSXSMSMSMXAAAAXSMSAMAAXSMMASAAMASAAAXSAAAAM
+MAAXMMSSMSASMASMSMMMSASAMXSMAXSAMXAAAAMSSSXSXSXXMSMASXSASXAAXAXMMMMMMSXSMMMSAMSMMMSMXMSAMXSMXSSSXASAXAXAAXMSMXSASMMAMSMSAMMMSMMMSMMMMMMSMSMS
+SMMMXMAMAMAMMASXAAXXAAMXXASMAMMAXMMMMMXXXAMMMMMMAAMXMAMASXMSMMMAAAMAMMAXXMAXMXMAXXXXXMMMXMSAXMMMMAMAMSMSMSAMAAMASMSXMAMXMMXAXAMXAAXMASAMXAAX
+SAMXXMASAMSSMASXSMMMMXMXMSSMMSSSMMSAMXMMMMAAAAAMXSMSMAMSMMXXAXSMSXSASMAMAMSSXSMSMMMMMSAMXAMMMMAMSMSMMAMAAAAMMMMMMAAXSAMMXMMMMAMXMMMAAMAXSAXX
+SAMMXSAMXSXAMASAMXSAXSAMXXXMXAAXMASMXMAAAXSSSSXSXXAXMAMXAXXXMMSAMAXAXMASAMAAASAAAAXAAMASMMMXMXAMAAAMMMASAMXMAAAXMMMMMAMXAXAMMXMXMAMMSSMMSASM
+SAMXAMAMSMXSMXMAMAMSXMSAXSAMMMMMSMMMSXSSMMAAXMASAMXMASMSMMSMMAMXMAMSMSASASMMAMXMXMXMMSAXAXMXMASMMSMMAXMXXSXSSSSSXMXMSAMSMMMSAMSMSASAXAMAMMAM
+SAMMXSAMAAXXSSMMMAMAXMMSMMASASXAXAAXSAMAMXMAMMXMMMMAXXMAAASMMASAMXMXAMASMMXXASMMSASMXMMSMMMMXMMAXMMSSSXMASAMAAAMXMAMXSXAAAAMAMAAXMAMMAMXXSAM
+SAMXAXASMSMMAXASXSXSASAXXSXMAAAXSMMMMAMXMMSMMMMMXXXSXSMSMMXAMAXXMSMMXMAMAAXMAMAAXAAXAMXAMAXAAXSXMSAAMMXAAMAMMMMMMMXSAMMSSMXSAMXMMSMSSSMSMSAS
+SASMMSMMMAAMMSMMAAAMAAASAMXMXMSMMXSASXMASAAMAAAAAMAAAXXMASMXMMSMXAXMASXMXMMSSMMMMMMSSMSXSXSSMXSAMMMSSXSSSSSMASAAMSAMXSAMMAXAMXSMAXXAAXAAASAM
+SXMAAXAASMXMXAMMMMMMXMXMXMAMAMXASASXSASAMSSSSSSXMASMSMASAMMMSMAMSASAMXAMSXXAXMAXXAAXAAXAXMMAMASAMAAMMAXAAAXSASMMXMASAAAMMSMXXASMMMMMSMXMAMAM
+SMSMMXMMMAASMMSSMMMXAMMXMSXSSSSXMMSMXXMAMAMAMXMMMXMAXMMMXSAAAMAMSMMMXSAMMAMMSAMXSMSSMMMSMASMMAMASMSSMMMMMMMMXXAMSMMMMSSXAMASMASASAMSMMXXSSXM
+XASASMSSMSMMASAMAAAASMMAAMAMAAAXMXSMMSXSMSSXMASASAMXMMXMASMSSSMMSAMAASAAXXMXAAMAMAXAXAMAXMAMMSMMMMAMMXAAAXMXSMSMSAAMAAXMXMAMMXMASMSAAMMAXMAS
+MMSAAAASMAMXMMAMMMMXMASAXSASMMMAMAMAXMAXAAMXSXSXXASXMSMMMMXAXAXAXAMMMMSMSAMXMMMASAMMMMSSSMSXAMXSMMASMSXMXXMASXXASMMMMSSMSMAMMSMXSMSMSMAAXMAM
+AXMXMMMXXAMASXMMSMSMSMMMMSASAXXXMMMAMMAMMMSAMXSASMMMXAXASXMMSSMMXSMAAXAMXMMSMAXASXAXSXAAXAXMMSMAASASASASXMMASMMMMMSXMAMAAXAMMSMMSAMAXASMXSAM
+SXAXXSAMXSSXSAMMAAAMAMAMXMXMMXMASXXSSMXSMXMASMMAMXAMXMSMSAAAAAASAXSXSAMXMAAMMSMASXSAMMMXMAMAXMASAMAMAMAMMAMAXAXAAAMAMAXXSMSAAXAAMAMAXMAAXXAM
+XMMSAMASAAMASXMSMXMSASASAMASXXMAMMAXAMAXAASMMAMSMSSMAXAMXMMMSMMMAMAMXAXSSMMSAAMXMMMAMXMXSASXMMMMXMXMXMSMSAMMMMMSSMSAMMSMMAMMXMMSSMMMSSMMMSSM
+XMXAMSAMXAMAMXMXXMXSASMSASASASMMSSMSAMASMMSAMXMAAAXSXSAMSASAXAMMMMAMSMMMAMAMMSSMXXXAMAMXSAMXASAMXMAMXMXASASXASAMAXSAMXAAMAMXSXMAXAAXXAAAAAAX
+XSMSXSXASMSXSMSMSAAMXMASXMASASXAAAXSXMASMASXSSSMMMXMMSAMXAMASMXAXSAMXXASAMAMSXMXAMXSSMSAMXSSMMXSASXXAAMAMMMXMMAMXMXXMSMSMAMXMXMAXSMSXSMMMSSM
+MAAXAMXXMASXMAAAMSSMAMMMXSAMMMMMSSMXSAMXMMSAXMAMMMAAXMMMMAMMMXMMMMAASMXSMXSMMAMMXMAXAMMAMAMASASMXSMSSSMXMASAMXAMXMMSASXAXXSAMAXMAMXSAMASAAMM
+AMMMSMMMMSMXMSMSMMMXSSMXAMASXXAXMAXAMXSAMXMMMSMMASMSMXSAMASASASXMSMMASASXAXASAMSMMMSAMXSMMMAMXSMAXMAMXXASXSASXSMAAAMAMMMMXSXSMSSXMAMXSAMMSSS
+SMSMXAXAMMAMAAXXXMAAMMXMMSMMMXMXSAMXXMAMASAXMAASXSAXMASASXSASXSAXSXSMAXXMAMAMMMSAXASAMAMASMSSMMMXMMMXMAMMAMAMXMSSSXMSMSMSMMAMAAAXSSSXMXMSAXA
+XAAMSSMMMSAAXSSMMMMSMSAXMAMASMXAXAMXMMMAMXAXSMMMAMXMMMSMMXMMMMMMMXASXMMMMSMMMSAMMSMMMMMSAMAAXAMXAXAXMASASXMMMAMMMMAMXAAAAXMAMMMSMMXAMMXMMMSM
+MSMXAMXAASASXMAMSAMXMSAMMASAAMMSSSMMAAXAAMSMSMXSAMASXXMAMSMMSAAXXMMMAXAXAMASAMAMAAAASMXMXMMMSSMSXSXSMMMAMXAASXXAAXAMMMMXMSMMXAAMAAXMSXMMAAAX
+AAXMXSMMMXXMXSAMXASXXMAMSAMMSXAMMAAXSXSXSXMAXAASASASXMASXSAAXMAMMMASMMSMMSAMAXXMSSSMSXAMMSXXAMAXAAMSASMAMSSMSXMSMSASXSXMAMXMXMMSXMXXSAXSXSXS
+SMXSASAMMSMSXMAXSAMXAMXMAXXXXMXSXSMMMAMMMAMXMMMMXMASXMAMASMMMSSXXSASAMMAMMMXSMSMXAMXSMXSAAXMMMXMXMASAMXAMAXAXMXAAMXXAAASXSASASMMASMAMXMAAMAS
+XXAMASMMMAASXMAMXXAMXXSMSMSMMASAXMAMXXMASMMSSMMSSMAMMMMMXMAAXXAAXMMSAMSXMAMAXAASMAMXXMXMMSAMXMAXAAXMMMSSMAMMMSXMSSMXMMMMASASASAMAXMAMAMASMAM
+SSXMAMAAMMSMMXSMMMSMMXMAAAXXAMAMXXAMSMMXMXAXAAMAAMASXAASASXMSMMMMAASMMAMSAXSMSMSXSMMMSAAXMMSSSSSMXXXMMAMMSXSAMXXAAMAMASMMMXMAMMMSXSASXSAMXXS
+MMMMASMMMMAMMAXAMAXAXSASMSMMXSASMSMMAAMMSMMMSMMXMMXSMSMSASMMAMAXXMMSXXXXAMXMAAMSXMAAAMMMMSASAMMAMASMMMASAMXMASXMXXSMSAXAXASMSXXXAAXAMAMAXXMA
+MAAXAMXSASAXMMSSMASAMAAMAXMAXMAMMAMMSSMAAASAXASMXMAMMMAMAMAMAMMSMMMMMMXMAXAMXMASASXMSSXSAMMMAMSXMASAAMMMXXMXMMMMSXMAMMSSMMSAAAXMMSMSMMMSSMAM
+SSSSXMAMAXAMAAAAMMMXMMSMXMASXMSMMSSMMXMSSSMASAMAAMMSAMXMAXSSMSAMXAAAAMSSSMSSSXMMXMAXXAAAXSAXMMSXMMXXMMSMMXSASXSAAAMAMXAASAMXMXMXXAXXASAAAASX
+MAAXXSSMSMMSMMSSMXSSSXXXSXMMMMAASAAAMXMAXMMAMAMSXSXMASXMAMMAMMXMXSXSSMAXMAMAMXXSASXMMSMMXMASAAMASMMSSMAAMXSAMAMXSXSAXMMMMMSMSAAXMSXSAMMSSMMS
+MMMMMAMAMXXAXXAMXXAAXAMASAXMASMSAMSMMMMSMMMSSXMXXMASMMAMMAMAMXAMXAXMAMASMSMSMSMSASASAMAXXXAAMXSAMAAAAXSAMMMSMAMAMXSASXSMXAAAMMXSAAAMSMMAMMAX
+SASXAMMAMXSMSSMSSMMSMXMASMMMXXXMMAXAMXAAAXAAMXAMASASASXMAXMAMSASMSMSAMSXAAAAMXAMAMAMSSXMSMSXSXMASMMMSMMAXSAXSAMASAMAMAAMMSMSMAAMMMSMMMAAXMAS
+MXMMSXMXSXSAAAAAMAAMAXMASXMSAMXMXMSAMMXXMMMSSMXSAMXSAMMSASXSMMMSAMASMMAMSMMMSMSMMMXMXMXAXAAAXXSMMASXAASAMMAMSMSAMAMAMSMMAAAXXMMXAAAAXSSMMXMA
+XAMMMMSAMXMAXMMMSMMSSMMMSAMXMXAXAXSXMASXSSXAMMAMASAMXMAMMXAMXAMMAMXSAMMMMXAXMXMAAXSXASMMMSMSMAAMMAMSMMMAMSXMXAMAMXMMXXAMSSXMSMXSSMSMMAMAMASX
+SMSAAAMASASMMXMAAXMXMMSXMAMASMMXMMMSMXXAAXMXSMMSAMASAMSSXMAMSMMSSMXXXXXXAXSXSASMMAASAAAXMXAXXMMSMSXXXSMMMXSMMXMMXMXXAXAMMAASXXAXXAMASASAMMMS
+MASXSXSAXMAXAAMSSSMMMAMAMSMASAAXSMMSMSMMMMMSMXXMXSMMXSAAXSAMAMMXMMXMMMXMMXXASXSXMXMSMSSMSMMMMSAMXXAMXSAAMAAXXMASAAAMXSSMMSMMAMMSMAMAMASXSAAX
+MAMXMMMMSAMSSMXAMXMAMAMAMAMXMMMMMAMXAAMAAAXXXAAAMSAMXMMSMSAMAMSASXAXAXASMAMMMAMXMXXMAXMAMASAAMASXMASASXMMSSXMMASMSSMXAMXAAMMXAAAMAMAMXMASMMM
+MASXMASAMXXAAXXXMASMSAXSSMSMXAMAMAMXMMSSSSSMMMSXASXSMMMMXSXMSMSAMSMSXMAMMXSASASXMXSMMMMSMASMMMXMXMAMAMMXXMXMAMASXAAMSAMMSXSXSMSXSSSMXXMAMMSM
+MAMXMAMMSAMSSMMAMMSMMXSAAXAASMMXSASMSMXAMAXAAXMAMXAXXAMMAMMAXAMMMAMAMMSMSMMASAXAMAMAMMAMMAMXMSAMSMSSSSMXMAMXSMASMSSMSAMXMASAMXXAXMAMXMMAXMAM
+MSSSSXXAXMAMXASAXAXAMMAXMMMXMAAASAMAAMMASASMMMXXXMSMXSSMMMAMMXMASASASXAAAAMXMMMAMMSAMMASMMXAMSAMMAXAAAXAMXMAMMMSMAAAMAMMMAMAMAMASXMMMXAMXSAM
+XXAAMMMSMSXMSMMMMASMSXMMXMXAMMMMMAMSMSXAMXSXMMSSMAXAAXXXSASXMXMASASXSXMSMSXAASMMAXSAXSASASMSMSMMMMMMMMSXSAMXSAMXMSXSSSMXMASMMXSASAMASMASASAS
+SMMMMXXAAXAAXMASMMMXSMXXAMXXSXAXSMMXASMMMMMAAASAXMMMMSAASAMXSXSAMMMXSAXXMMMMSMAAAAMAMMXSMMAXAMXSXMAXMASAAXSASASAMXAXAMXMMMXMAMMXSAMAMAXMASAA
+AAXXMMSMSSMMMMMMAASASASMMMAMXMXXXXAXMSSXMAXSMXSXMMASAMAMMAMAXAMASMMASMMAAAXXAMMMMSSMXMXMAMAMAMASAMSMSAMXMXMMSAMXAMXMAMAMAXMASAMXSAMSSSXMAMMM
+MSMMAXAXAXMAMAXSSMMASXXAAAXXSXSAMMXSXMXSSSMMXMXMMSAMASXXMSMMMMMMSAMMMXSSMMMMSSSXMXAXMMASAMXSAMAXAMAXMASXXXMXMAMXXAASXMXMASMMXXMXMMMMAXXMXMSX
+XXASMAXMASXXXMXMMSMAMXXMMMSAMAMXXAAXAXAMXMAXASAMXSXSAMXXXMAXMXSXSAMXXMAMASXAAAAXXXAMMSASXMXXMSSSMMSMSAMXSXSASAMMAXXMMXSMAMMSMMSASMSMAMXMXMXM
+XMAMXMXSMMXMAXAAASXMMMSXAAMMMAMXMSASMMSMSMXMAMAMASMMASXSMSMXMAMASXMASMASAMMMMSMSSMSMAMXSAXSXMAMAASAMXASXMASASAAXAMXMAAMMSMMAAASMMAXMAMASAMAS
+XAMSMMMSAAASMMSMMMAAXAAMMXMSXXMAXAMXMAXASAMAMSSMASXSAMMXMAAAMASXMAMAXSMMXXAAXAAAXAAMXSASXMMXMASXMMSMSMMXMAMAXMSMXMAMMXSAXSSMSMXAMSMMMSMSASAS
+MMSAAAAMMMMSAAMMMSSMMSSXAMSMASXMMXSAMXMXMAXXXAXMAMMMMXMASXSXMAXAXXMMXSXXMASMSMMMSSXXAMXMXMXAMAMXMSMXMXAMSSMSMAMAMSASXAMMXAXAAXMXMAAAAAASAMXS
+AXAMSMXXXAXMMMMAAXAAXAXMXSAAAMAXSAMASXMMSAMSMMSMASMMSXSASMXAMSSMASMSASMSMAMASXXMAMXSXMAXAMAMSSSMXAXAXMMXAAAXMAMAMSAXXMSSSMXSMMAMSSMMMSMSXSXS
+SMMXXXSSSSMXXXXMAMSXMSSSXSXMAMXMMASAMAMASAXXAXMXASAAXAMXXAMSMAAXMAAMAXMASAMMMMSMMSXAASASMSMMAMAXMXSSMAXMSMMMMAMSMMSMMXAAAXMMSXXXAAMSXXASAMAS
+XAXMSMXAAMAASMMXSAMAXAAMAXMASMSXMMMMXXMAMXMXXMXMXSMMSSMMXMAAMXMMXMXMMMSAMMMSAAAXXMXSXMASAAMMSSMMAXAAMXMMXMAAXMXMSAAXAXMMXMAAASAMMSMSAMMMAMAM
+XSAAAAMMMMSMAAMAXAMAMMMMSMMMMAASASASXXMASMSAXAMXXMAMAAXXAASXSXSXMXXAMXMAMSAXMSSSSMXXMMXSMXMAAAASMMMXSXMXASMSXSAAMXSXSXSMSMSMAMMXXXXMMMMXAMAS
+AMMSMSXMXAAXSSMSSXMSXSAMMSSSMXMAMSAMAAMXAAAAASMMMSSSMMSMMMMAXASXMASAMXMMMMAMMAMXAMASAAAXMXMMXSAMAAXAAAXSAMXMASMSMXMAMAAMAMAMAAXXMMMMXSMMSSMS
+XXAMAMASMMSXXAMXMXXMASAXAAXMASXMAXAMSXMMMSXMMMAAAXAAAMSAXAMXMMMSXMAAAAMMMMAMSAMMAMMSMMMAMXAMAXMSSMMSSSMMXSAMMMXAXAMXMSMSAMXXMMSAAAAAXAAAAAAM
+XMAXASAMMMMXSAMAMMMMMMMMMSMMMXAXMMMMXAXMXMAMXSSMMMSMMMXAMMXMAXAAMXSMSXMAXMAXSAMSSXMSXSMAMAMMMXAXMAXMAAXXASASXMSSSXSXAXMSAXSXSASXSSSSMMMMMSMM
+XMMMMMMMMASXMASXXAMAAAMXAXASMSMMXXSASMMSASAMXXASXMAMXSMAMXMSSMMSSMAAAMSSSMMMSAMAMAXXAXXXMASAXMSMMMMMSMMXXSXMAXXAAAXMSMMMSMAAMXMAXXAMAMXSAMAS
+XAAMAAMMSASASAMMSSSSMSSMASAMAAMXMXMASAASXSASXSAMMMASAXXAMAAAAAAAAXMMMMAAAASAMXMASXMMMMMSSXSMXSXASXSAXAMSAXXMXMMMMMMAASXAMMMMMMXSAMXMSAAMASAM
+MMMSMXMAMMSAMAMMAMXXMAMMMMMMXMSAMAMAMMAMXSASXMMMAMAMAMSXSMMSSMMXXMXXXMMMMMMASMSMAMAAAAAXAMXMSMSMMMMMXAMXMASMASMMSMXSAXMASAMAMAAMXXMAXMMMMMXM
+XSAAMXMASXMXSSMMASXMMAMAMASXXAXAXAXAMAMXXMAMAXXSSSMMSMMAAAAXAXXXSSMXAASXSXSAMMASMSXMXSSXAMAXAAXSXMAMMSMASAXMAMAAXMAXMASASXSASMMSSMAXMASMSASX
+AMSSMMSASMMAMMASAMAMSASMSMASAXSSSXSSXSAMXMAMXMASASXAAAMSSMSSSMSMAAAXSAMAMAXMXXAMXMXSXMMMSMXXASMXMSMSAMSMXMSMSSMMMMXSMMMMMASASXXAXMASXMMAMAMX
+MMMMAXSXSAMAAXAMASAMAXSMAMMXSXXMAXAMAMAAASASMMXMAMMXMSMXAAAAXAAAMMMMAAMMMSMMMMASXAASASAAAMXSAMXXAAAMAMAMMXMAMAXAXXAXXMASMMMAMAMXSMAXAAMSMSMM
+XAASMMSASXSMSMXSXXMXSXMXXMMAXMAXXXSMAMXSASXSAXAMMMSSXAXSMMMSMSMMXAAAMXXXAXAMXAMAMMMSXMMMXSAAXXMAXSSMMMAMAMMSMSMMSMXMXMAMAAMXMASMAMASMMMXXMAX
+SXMMAAMMMAMAAMMMMMSXMAMMXAMXMSSMMMMSXSAMXSMSAMSMSAMMSMMAAAMAAMAMSXMMSSXMASMMAXAXAAAMXMXMAMMSMMMSAMXAAXXMXSAMMXSAMXMMMMXSMMSMXAXASMAMMASXMXMM
+AMSXMMMXMAMXMSXSAAXASXMSSMASAAXSAAXAMMXXMSMMSMAAMXSMMSAMSSSMSMAMMAMAAXXAAXXSAMXSSMSAMXAMXMXAAXAAAXSSSSMAAMASXAAXMMSAASASASAXMMSSXMAMSAMXMASM
+SXSAXMAMMMSMAXASMXSAXSAXXMAMMAMSSSMSMXSMMMAMAXMXMMXMAMMMAAAMXXXMMAMMSSMMMSMMMSAMASMXASXSAMMSSMSSSMMXAAMMMSAMMSSMSAMMSMASXMASMXMMASXMMXSMSAXA
+MASAMMSSMAAXXMASAXMMMMXMXMAMAMAMXXAAXMMAASAMMXSASXMMSSMMMSMMAMMSSMSXAMAAXAAAAMASMMMSXSMMMSAMXAXXXAXMMMMMAMASAMAAMXSXMMXMAMMMMAMSMMSMAMAMMMSS
+MAMAXMAAMSMXXMMMMMMMAMAAMSSSMSSSMMSMSASMMSASXAMAMAMAMXMAXAXMASAXAMMMMSSXSSSMMSXMAAXMAMXAAMMSMMMSSSMASMSMAAAMMSMMMASAMXAMXXAASAMAAAXXAAAMXMAM
+MSSSMMSMMAXXMXMAAAAXAMMSAAAAAAAAAXAAXXXMASMMMSSMXSMAMAXSMSXSAXMMAMXAMXMAMAMAASMXMAMMAMMSMXMAXXAXAMXMAXXMAXXSXMASMASAMMMMSMSXSXSXMXSMXXSSXSAS
+XMAXSXMMSSSMAAMSSSSSMSMMMMMMMMMXSSMSSMXMAMAAXMAMAMAMXSMXAXAMAMSSSMSMSAMAMMMMXSASMMXSASXXMASASXXSMSSSMXMAXSASASXMMMSMMMAXMAMXSMMXSAMASMMMXMAS
+SMSMSMSAAAAMAMMMAAMMMAXXASXSXSMAXXXAMXAMSSSSSMXMASASMMAMSMMMSMMAXASASXSAMXAMAMAMMAASMSASMXMASXAMAMAAXSXXXAAXAMXXXMMMSSMSMSMAXAXAMAMAXAAAXMAM
+SMMASAMMMSMMAMAXXXSMSSSSMXAMAAMMMMMMSMXSAXXMAMXSXSASAMXMMAMAMASAMXMAMXSAMSAMXMAMMMXSAMAMASAMXAMMAMXMAXAMSMMMSSXMAXAAXAAAAAASMMMMSSMMSSMSMMSS
+SAMAMMSXMXAMXSXMSAAAAMAAMMSMSMMAAXAAAXMMMSMSXMASAMMMMMAMXAMASMMAMMMAMAMAMMASXMSMXXAMXMXMASMXMXMSXSMSMMMMMAAMXAASXMMSSMMMSMXMAAAAAXAXAMAMXAAM
+SAMXSASAMSXMXAAAMXMMMMXAMAXAAXSXSSMSSXXAXMXMASASMXAAASMSSXMASXXSMAXAMMSMSSSMXSAAXSAMXAAMXMXXMAMMXSAAAMAAMMMSMSMMAAAAXAAAAMASMMMMSMSMMMAMMMSS
+XAMXMASAMAASMMMMXXSAMXMSMMSSMMSAXAMXMMSMSMXSAMASXSMSXMAAMAMAMMMXSXMXMASAAMAASMMMMAAMSSMMAXMASAXMAMSMSSSSXSAXAXASXMMSSXMSXXMMAXSXXAXAASAMAAXA
+SMMXSAXAMSSMAAMXMASAXXMAAMAMMAMXMAMAXMAAAAXXAMXMXMAXASMSSXMAMAAMAXSMXMMMMSMMMMAAMSMMMAXSASMMSMMMAXAMAMAAAMAMXMAMXMAXMMMMXXXMSMXAMXMXMMAXSSSM
+SSMAMMSMMMMMSMSXSAMXMSSSSMASMSSMSAMASXMSMSMSXMSMMXAMAMAAXXXXSMSXMMAAMXXAMXXXAXSSMMMXSAMXXMAXXAXSXMSAAMMMMMMMXMAMAMXMMAMMXSAAMAMSMMSMSMSMAAMX
+SAMXSXAXAMXAMXXAMXXAAAAAXMMMXAAMSXSMXAAXXMAMMAAAMXMMSMMMMSMXMAMAASMSSMSSSSMMMMMXAAAXMMMMXSMMMMMMAAXSMXSAMAAXXXASMSSMSXSAAMMMMAMAAXAASAXAMXMS
+MXMSXXMSMSMASAMXMASMMMMMMXMXMMSMSASMSMXMMMAMMMSASXMAMAMXAAMXMAXXAMXAAAAAAMSASAMXSMMMMXAAMMSAAMAXXMXASASASXSSXSASAAAAAXMMMSSMSSMMAMMXMAMAXAXS
+MSMMAMXAAMXMMXMAXXMXAXXASAMXXAMXMAMASXAMAXXXAXXAXXMMXMMAMASXMXMMSMMSSSMMMMSXSASMXMXAXSMSXASXSXSSSMSMMMMMMMAAMMXMMSMMMMMAXAAMAXXXSASASXMXSMSS
+MAAMXMSMSMAMXSSMXSMSSMSASMSAMXMAMXMSMSASMMMSASMSMMMSAMXSSMMXMAXSASAMMMMAMXXASAMMXSSXXAXAMMMMMMXAMAAMMMMAAXMSMMAXAAAAXMSSSSSMASMXMASMSASXSMAM
+SSSMAAXAAXAMXAAMMSAAAAMXMAXASASMMMXXAXMAMSAMXAAMAAASASXAAAXMMSXMAMXSASMXSAMXMSMMXMAMXMASXXAAXXMAMSMSASXSMXXMAXSMSSXMSAAAXAAMASXAMXMXSAMAXMXM
+XAAXXSMSMSXXMSAMAMMMMMMMSASMMMAXAXASAMSXMMAMAMXMSXMSXMXSSMMMAMAMXMMSAMAAMXMXAAMMASAMXMSMXSSSMMMSMXAMXSAAMXSXMSAMAXAAXMAMMXMMASXMSAMXMAMSMMSS
+MMMMXXAAMMMXXMAMMMAXAMXMMXXXAXMSSMAMXXXAXSXMAXXMAMXMAMAMXXXMASXMXSAMXMMASAMSSMXSAMMXXSMSAXMAXSAMAMMMSMMMMASAMAMMAMMXMASMSMSMXXXSAMXMSXMXAAAS
+SAAXMMSMSAMXXSAMSSSSXMAAXSMSMMXAAMAMMASXMAXSXMAMAXSMSMASAMXMASMMMMXSAMXASAMXAAXMMMSMMMAMMSMSMMASXXSXAMXMMASAMMXMSSMAXAXAXMASAXSMMSAMXAASXMMS
+AXASAAAASMMSMMAMAAAAASMSMMASASMSMSAXSAXMMSMMAMAMXXSAXMXMAMAMXXAMAMASASMMSXMMMMMXAAAAXMAMXXAAASAMXASMMSMXMAXAMXXMMAXSSMMMXAMXMXXAAXASXMAMAAXX
+MSMMXSMMMMXSMSMMMMMXMXAAAMAMXMAMASAXMXMXXXAMAMXSMAMAMMSMXMASXXSSSMASXMXAMASXMAMXMSSMMSASAMXMAMSSMMMAAAXXMMSSMMXMSAMXAXXMASXMASMXMSMMMMASMMSS
+XAAMMMMAAXAMAMXAMXMMMMSSMMMSAMMMMMMMXSAMXXMSMSAXMAMAMXSAAMSMMAAAAMAMAMMASAMMSASAMMMAASMXAMXXXMXMAXXSAMXMSAAAMXMXMASXMMAMAMASXXAXMAXAMSMSAAAA
+SSMMAAMSMMXSASMSMXXAXAXMXAAMXMAAXAMSSSSSMSAAXMASXSSXSAMMMMAAMXMXMMASAMSXMASXSASASAMMMSMSSSMSXSAMMSAMXXSAMMSMMAAASXMMXMAMMSXMXXXMSASMMSAMMMMS
+AAMSXMMAMAMMASAXAASMMXSSSMSSMSSSSXSMAMAMAAMSMMAMXAXAMXSXMSSSSSMSXMXSXMXMSAMXMXMAMAMSAXXAAAAAXMASMAXMXMAXMAAAMXXXSAXXASMSXMASAMSAMXXMAMAMXSXX
+MMMSASXSXSXMAMMMMMXMAMAAAAMXXAAXXMAMXMAMSMXMXMSSMSMXMMXAXMAMXAAAXSASMSAMMASMMMMAMSMMXSMMSMMMSSMMMXMMMMMMMSSSMSSXXXMSASAXASAMAAAXSXSMSSSMAMXX
+XAMSAMAASAMMXXXXSXMASMMMMMMMMMSXSAMXXSXMMAMXMAXAAXXXXASMMMSMSMMMSMAMASXMSXMAAXSXSXXXMAAMAAAXAXAMSMAXAXXXMMAAXMAMMMAXMMMXXMAXXMSMMXAAAAAMXSAM
+MMMMAMXMMXAXSSSXMASAMXSSMSMSAMAAAMMXMASMXSMMMASMMMSAMMSAAXMAMSAXXMAMXMMXMASMSXMSAMXAMMSSMSSXMSXMAAXSXSMSSMSMMMAMAAMSXAMMSSMSSMXAMSMMMSMMASAS
+MSXSSMMXMXSXAAAMSAMMSMMAAAASMSMSSSMSAMXMAMAXAXAXAMAMXAMXMMMAMAMSSMASAAAAMXSAMXSAMXMMXAAAMAXAAAMSMSAMXSAAXAMXASASXSSXMMSAAAAMMASAMAXAXMAMXMAM
+MAAMAMXAMMMSSXMMMXSASXSMMMMMMXAAAAAMMMSMASXMSXMSMXAXMMSASASASMMAMSMSMSSXSAMAMXXXXASAMMSSMASMMMMMXAAAAMMMSXMMMSASAXMAXMMMSMMMMXMASXSSSSXMMMMM
+MMSMMSSMSAAMXAMXXSMMSAXAAXAMXMMMSMMMAAMMASXMMAXAMMSMSASASASMSXMAMAMXXMXXMXSAMXASXMSASXAXMASAAMAMXSMMMMAAMASXXMAMMMMSMSXAAXASXASXXXSAMXMMAASA
+XAAAXAXASMSMSMMAMXMXMMMSXSASAAXXXASMMXMMMXMAMMMSMMAAMXMMMMMXMASXSMSSXSMXMXSASXAXMASAMMSSSXSMMSSSXMAASXMAMAXXXMASXSSXAXSSXSXXSASASXXMAXAXXSAS
+MMSSSMSXXAAAAASXMAXSAAAAASAMXXASAXMAMAASASXSAMXMASMXMAMXXSMAMAXAAXAAAXAAMMXAMMSMMXMMMXMAMAMMXAMXAXSXSAMAMSSMXSMSAMXMMMMMMMMMMSMAMXAMASMSMMMA
+SAAAAXMMMMMSMXMAMAASMMMSMMAMXASXMXSAMMSMASAXAMASMMAASAMMMMMAMMSSMMXMASXMSASXXAMXMMSXSAMAMAMMMSSSMMXASAMSMMAAXMAMMMXSSMSAAAAASAMXMSSMAXXAASXM
+SMMXMAAXAAXXMASXMMXXMAXMASMMMMMAMMMAXXAMAMASAMMSAMSMSAMXAAXMSAAAXAXXMXMASMAAMXMAASXAAXSXSXSAMAMAXAMAMXMAAXXMXMAMASAMAAAMMMSSSMSAMXAMMSXMMMXX
+XASXMSAMXSMAXMXAXSAMMSSSMMSSSXSAMMSAMMMMASASAMAMMXXMSXMSSSSSMMMSMMSSMAMMMXMXXXMMMAMAMMMXMMMMMMSSXMMXMASXSMASMSXSASAMMMMMSMMMMXSASXMSASMASXXS
+XAMAXMXSAAMXMXXMMMASAXAAXAMXMASASXMAMXASXMASXMASMSMAMAMAAAXMASAXAAAASASAMAXMMMXSMMAAXAMAMAAXXMAAAAMAMMMAXMAXAAXMAMXMMAXXXAAMXMSXMAMMAXXAMAMM
+SSMMMMASMXXMASMSASAMMSSMMXSAAXXASXSASMMMAXAMMSXXAAAASAMMSMASAMXSMMSMMMSASXXXAAAXAMSXSSSSSXSMMMMSMMMAMXMSSMSSSMMMSMASXMSMSSMMAXXMASXMAMMMSSMM
+AAAXXMASXMXXSXXXAMMAMXXXAAMMMSMMMAMASMXSMMXSAMMMSMSMSASXAXMMXSASAXXXMMSXMASMSMSMAMMAXMAXMXXAMMXAMXSMSAMMAAAAAXXAMMXAMXMAAAASMXAMSMAMSMSMAAMX
+MXAMXMXSAMSMMMSMAMSSSSSMMSMSASAAMSMMMMXXXASMXMAXXAXASAMMXXXSXMASXMMXSAMASAMXXAMMSMMSMMXMSASAMXXXXAXXSASMMMMSMMMASMXMSAMMSSMMSSXMAXAMAAAMMMMS
+SASMSXASAMXAAAXMAMXMAAAMAAAMASXMXAXAAMXMMSSMSSMSMAMAMAMXSMASMMAMMMAAMASAMASAMXMAMMAMAMAAMASXMMMSMMSASAMXASXXASMAAXAXMASMMMMAMMMSMXMSMSMSMMAM
+XAMAAMMSAMMSMSXSASXMMMMMMSMMAMXSSMSSXSAMXXMMAASXMMMAMSXAAMAMAMMSAMMXSAMASXMMSSMASMASXMMSMAMMXMASASAXMAMSAMASAXMSSSMSSSMMAAMASAAASAAAAAAAXMAS
+XXMAMMXSMMXAXXMSMSAMXXXXXXXMXSXXAXMMXSASXMXMSSMXAASXSAMXSMSSXMASMMSAMXMXXXSXSMSSXMMSMXSXMASMXMSSSMASMMMSASXMMSAMXMXXMMASMSSXSXSASMSMSMSMSSMS