This commit is contained in:
2024-12-04 12:31:34 +01:00
parent e3da406cb3
commit bc7e857b8e
4 changed files with 248 additions and 0 deletions

57
04/04-01.py Normal file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def count_vertical(data:list[list[str]], pattern:str) -> int:
result = 0
for i in range(len(data)):
for j in range(len(data[0])):
try:
if (data[i][j] == pattern[0] and data[i+1][j] == pattern[1] and data[i+2][j] == pattern[2]
and data[i+3][j] == pattern[3]):
result += 1
except IndexError:
pass
return result
def count_diagonal(data:list[list[str]], pattern:str) -> int:
result = 0
for i in range(len(data)):
#print(data[i])
for j in range(len(data[0])):
try:
if (data[i][j] == pattern[0] and data[i+1][j+1] == pattern[1]
and data[i+2][j+2] == pattern[2] and data[i+3][j+3] == pattern[3]):
result += 1
except IndexError:
pass
try:
if (j > 2 and data[i][j] == pattern[0] and data[i+1][j-1] == pattern[1]
and data[i+2][j-2] == pattern[2] and data[i+3][j-3] == pattern[3]):
result += 1
except IndexError:
pass
return result
if __name__ == "__main__":
solution = 0
field=[]
input_file = open("input.txt", "r")
for line in input_file:
line = line.strip()
if line == "":
continue
solution += line.count('XMAS')
solution += line.count('SAMX')
temp = []
for b in line:
temp.append(b)
field.append(temp)
input_file.close()
solution += count_vertical(field, 'XMAS')
solution += count_vertical(field, 'SAMX')
solution += count_diagonal(field, 'XMAS')
solution += count_diagonal(field, 'SAMX')
#print(field)
print(f'Solution:{solution}')

41
04/04-02.py Normal file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def count_x(data:list[list[str]], pattern:str) -> int:
result = 0
for i in range(len(data)):
for j in range(len(data[0])):
try:
if data[i][j] == pattern[0] and data[i+1][j+1] == pattern[1] and data[i+2][j+2] == pattern[2]:
try:
if data[i+2][j] == pattern[0] and data[i][j+2] == pattern[2]:
result += 1
except IndexError:
pass
try:
if data[i+2][j] == pattern[2] and data[i][j+2] == pattern[0]:
result += 1
except IndexError:
pass
except IndexError:
pass
return result
if __name__ == "__main__":
solution = 0
field=[]
input_file = open("input.txt", "r")
for line in input_file:
line = line.strip()
if line == "":
continue
temp = []
for b in line:
temp.append(b)
field.append(temp)
input_file.close()
solution += count_x(field, 'MAS')
solution += count_x(field, 'SAM')
print(f'Solution:{solution}')

10
04/ex.txt Normal file
View File

@@ -0,0 +1,10 @@
MMMSXXMASM
MSAMXMSMSA
AMXSXMAAMM
MSAMASMSMX
XMASAMXAMM
XXAMMXXAMA
SMSMSASXSS
SAXAMASAAA
MAMMMXMMMM
MXMXAXMASX

140
04/input.txt Normal file
View File

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