summaryrefslogtreecommitdiffstats
path: root/2024/tcl
diff options
context:
space:
mode:
authorAleteoryx <alyx@aleteoryx.me>2024-12-04 01:21:14 -0500
committerAleteoryx <alyx@aleteoryx.me>2024-12-04 01:21:14 -0500
commitc33cfb0574449f074920632e9a9ff6cb78327e76 (patch)
treebd9bd0ce7e3dc471c741594e84c2dcb1f18e59d8 /2024/tcl
parentfbf1ad5d946eceb3fd75cf9ddfb977623019d549 (diff)
downloadadventofcode-c33cfb0574449f074920632e9a9ff6cb78327e76.tar.gz
adventofcode-c33cfb0574449f074920632e9a9ff6cb78327e76.tar.bz2
adventofcode-c33cfb0574449f074920632e9a9ff6cb78327e76.zip
2024.4, sigh
Diffstat (limited to '2024/tcl')
-rwxr-xr-x2024/tcl/04.tcl60
-rw-r--r--2024/tcl/input.04.txt140
-rw-r--r--2024/tcl/lib.tcl7
3 files changed, 165 insertions, 42 deletions
diff --git a/2024/tcl/04.tcl b/2024/tcl/04.tcl
index 2e1742f..db00b11 100755
--- a/2024/tcl/04.tcl
+++ b/2024/tcl/04.tcl
@@ -7,57 +7,33 @@ puts {Part 1: XMAS word search count}
set height [llength $input]
set width [string length [lindex $input 0]]
-set w2 [expr {$height * 2}]
-set w3 [expr {$height * 3}]
-set input [join $input ""]
+
+set i1 $input
+set input {}
+foreach line $i1 { lappend input [split $line ""] }
set xmas_hits 0
+set x_mas_hits 0
+for {set y 0} {$y < $height} {incr y} {
+ for {set x 0} {$x < $width} {incr x} {
+ if {$x > 2 && [lrindex $input [list $y $x] [list $y $x-1] [list $y $x-2] [list $y $x-3]] in {{X M A S} {S A M X}}} {incr xmas_hits}
-for {set i 0} {$i < [string length $input]} {incr i} {
- set start $xmas_hits
- if {$width - ($i % $width) > 3 && [sindex $input $i $i+1 $i+2 $i+3] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
- if {$i % $width > 3 && [sindex $input $i $i-1 $i-2 $i-3] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
+ if {$y > 2 && [lrindex $input [list $y $x] [list $y-1 $x] [list $y-2 $x] [list $y-3 $x]] in {{X M A S} {S A M X}}} {incr xmas_hits}
- if {$height - ($i / $width % $height) > 3 && [sindex $input $i $i+$width $i+$w2 $i+$w3] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
- if {$i / $width % $height > 3 && [sindex $input $i $i-$width $i-$w2 $i-$w3] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
+ if {$x < ($width - 3) && $y > 2 && [lrindex $input [list $y $x] [list $y-1 $x+1] [list $y-2 $x+2] [list $y-3 $x+3]] in {{X M A S} {S A M X}}} {incr xmas_hits}
+ if {$x > 2 && $y > 2 && [lrindex $input [list $y $x] [list $y-1 $x-1] [list $y-2 $x-2] [list $y-3 $x-3]] in {{X M A S} {S A M X}}} {incr xmas_hits}
- # down-right
- if {$height - ($i / $width % $height) > 3 && $width - ($i % $width) > 3 && [sindex $input $i [expr {$i+$width+1}] [expr {$i+$w2+2}] [expr {$i+$w3+3}]] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
- # down-left
- if {$height - ($i / $width % $height) > 3 && $i % $width > 3 && [sindex $input $i [expr {$i+$width-1}] [expr {$i+$w2-2}] [expr {$i+$w3-3}]] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
- # up-right
- if {$i / $width % $height > 3 && $width - ($i % $width) > 3 && [sindex $input $i [expr {$i-$width+1}] [expr {$i-$w2+2}] [expr {$i-$w3+3}]] == "XMAS"} {
- puts $i
- incr xmas_hits
- }
- # up-left
- if {$i / $width % $height > 3 && $i % $width > 3 && [sindex $input $i [expr {$i-$width-1}] [expr {$i-$w2-2}] [expr {$i-$w3-3}]] == "XMAS"} {
- puts $i
- incr xmas_hits
+ # ABC
+ # DEF
+ # GHI
+ # -> A C E G I
+ if {$x > 1 && $y > 1 && [lrindex $input [list $y-2 $x-2] [list $y-2 $x] [list $y-1 $x-1] [list $y $x-2] [list $y $x]] in {{M M A S S} {M S A M S} {S S A M M} {S M A S M}}} {incr x_mas_hits}
}
}
puts "Count: $xmas_hits"
puts ""
-puts {Part 2: }
+puts {Part 2: X-MAS pattern search count}
-puts "2: $"
+puts "Count: $x_mas_hits"
diff --git a/2024/tcl/input.04.txt b/2024/tcl/input.04.txt
new file mode 100644
index 0000000..a6917f0
--- /dev/null
+++ b/2024/tcl/input.04.txt
@@ -0,0 +1,140 @@
+MMMSAMXAMMXSXXMAXAXXXSASAMXSAMXSAMXMAXSAMXSXSMSASAMXXXSASXSMSSSSXMAMSAXMSSXXASASMASXAXXMSMSSMMMSAMXMMMMXMXSXXMSXMAXXMAMXMSSXXMAMMMSMMMMMSXAX
+XAAXAMXMASXMASMSSSXSASASAMXMXMAMXMAMXASXAXMAXAMXSAMSMMSAMASAAAAAMXMASMMMMMMSMMASAXAMMMSMSMAAAASMMXSMSMSASMAASXMASMMSXMASASASXMASXMASAAASMMAM
+SMMSAMAMMAMXAMAMAAAMAMXSMMAXAMMSXSAMXASMSAMAMAMASXMASASAMAMXMMMMAXMAMAAAAAAAMMMMXMSAAXMASMMSMMSAMXSXAASASAMXMASXMAASAMAXMXMAXSASASASXSXXXAMA
+XAAMAXMASASMSSXMMMMMAMAMASMSMSAAAXASMAMAMMXMXAMXMAMASXSAMXMASXSXSXMASXMSSSSMMAASAMXSMSMAMAMXMXXAMASMMXMMMXMASXMAMMMSAMXSXSMMMSASAMASAMASMSAS
+MMMMMMMASASAMXMXMSMMAMAXAMMAAMMSSMAMMSMSXSAMXSSMSSMASMSXMAMXMASAMAMXMMAXAXXXSSSSMXMASMMASAMMMMSAMASXXAAAAASAMAXXMAXSXMAMMXAAAMMMXMAMAMAMAMMM
+SASASAAMMAMXMASXMAMSASXSSSSMSMMAAMAMAXAXMMASAMAMAXMSMAXMSASMMMMXSAMAMMMMMMXMXMAXXSAMXXSASASXAMSAMXSXSXSMSXMMSSMSSSXSASMSMSSMSSXAXMXSSMAMSMXX
+MASASASMMMXAMXAXSMMSMSAAAMXAMXXMMSAMXSXXASAMASAMAMMAMMMASXXAMMAAMXSXSASASASMAMXMXMAMMXMASAMMAXMASXMAXAAAMAXAAAAAAXAMAMXAAAXMAXMASXAAXAXMMXSX
+MAMAMMXXAMSXSAMMXMASMMMMMMMMMMMXXMAXMAMSMMXSMMXMSSSMXAAMMXSSMMMSXMXMXMSASASMASAMASAMXAMMMMMASMMASMMAMSMMMAMSSMMMSMMMSMSMMMSMXSMSMMMMMMAMXASA
+MXSXMAMSAXXMXAMASMASXSXMAMAMAMXMASMMXAMSAMXSAMXXAAXXMSSXXXXMAXAAMMXSMAMMMXMXAMASASMSSMMAAAXSMAMASAMAMXAXMXXXAXAXAAXXAAMXSAXAXMXAXAMMSMAXMAMA
+MAMAMAXSXXAMSSMAXMMSAMASXSASXXSAMXAMMSXSAMMMMMAMMSMSAMXAMSAMXMASASAMMMMAXASMSSMMASXAASASXMXMMMMASXXXXXSMSXMSXMSSSSMSMSMAXMASASXMSXMAASMMMAMM
+MMSSMMMXSXXXAXMSMMAMASAMMMMSAAXXXXSMAXAMAMAAAAAAAXAXXMMMMSAMSSMAXAAMXMSMSAXMXAXMSMMMSMMMASASASMXSMMSAAMAMMMSXMAXMAXXXAMXSMXMXMAXAAMSMMSXSMSS
+XAAXAXMAMSAMMXMXAMXMAMASXAAMMMMXMAXMMMMXMMSSXSASMMAMXSAMMMAMAAXMASMMXXAMMXMMSSMMAMAMXAXSMMXSAMASXMASMSMXMAXMASMMSAMSSMSAMXAMASMMMSMXAASMMAAA
+XMXSMMMAMAXASASMSMSMXSAMMMSSMXMXMAXASMSAXMAXAMAMXSMMASMSMSMMSMMXMXMAMMSSMMSAAMXSAXAMMAMXXSAMAMXSAMXSXXXMSMMAMXMAXXAAAASMMSASXSXXMMAMMXMAMMMM
+MMMMMASXMXSXSASAAAXAAMASXMAMAAMAMMSXSASMSMMSSXXAAMAMXSXAXMAAMXSAMASAXAMAAAAMMMASMSSSMAXXAMXSAMXSAMAXMMAXAAMSMSMSSMSMMMMAMSXXMMMMAMAMXAXXMXMS
+XAAXMASAMMXAMXMXMMMMMSXMMSAXSASXSXMMMAMXMAAMMSAMXSXMASXMSSMMSASASASASXSSMMSMXMASXAAMMSMMMSMXASASAMMSASMMMSMAAXAMXAAXAAMAMMMMXAAXXMSAXMSXMAMA
+SSSSMMXAMXMXMAMXSMXMAMAXXXAXMXSASAAXMAMAXMMSASMMMAMXAMAXAAAAMMSMMAMAMMAXSMAMXMAXMMSMAMXSAAASXMASAMMXAXXAXAMMSMXMMMMXXXSXMAAAMXSSSXXAASAMMSSM
+MAMXMXMMMMAXMMXAXXXMASAMMMSMSAMASMMMSAMMXSAMASXSXSXMASMMSSMMSMSAMXMMMMSMMMMSXMAXSMMMXMAXMAXMMMAMAMSMMMSXSMXSAXAASASXSMAMSSMSSXAXXAMXMMASXAAX
+SAMASMSAAASMMXMSSSSSMXAAXAAXAXMMMAMASXMSAMASAXAXXXSMAAAAAAXXAAXMMSXMAAAASXMMMMMMSAXAAMMMSSSXSMMXMMSASAMXAMXAAXMAMXMAAMXMAXMAMMMMMMMXXMAMMSMM
+SAMAXAMMSMAAMMSMAMXAMSSMMSSSMSSXSXMXSMAMSSMMMMSMMMXMASMMMAMSMSMXAMASMSSSMAAMMMSASXMMSSMAMAAASMXAAMSAMASMSSSMMMMSMMMSMMSMMXSASASAMASXXXASMMXS
+SMMSXSXXAXSAMXAMAMSAMXMAMXMAXAXXMAMAXMAAXMXAAAAAAXMAXMXXMXMXAMMMASXMAMMXXSMMAAMASXXAAMMAMMMMMASXSMXAMAXAAAXXSAMXASAAASXXXXMASASXSASAMMMSASAM
+XMAXSMXMAXMAMSASAMXASMSSSSSSMMSSMSMMXSMSMMSXMSSSMSSMSSSXMAXMMMMXAMMMSMAAXXXSMSSMMMMMSXSXSAAAMXMAAAXXMXMMMMMMSASMMMSXSAMSMXMMMAMAMMSXMASMXMAM
+MMXXAXAXXASAMSAMXMSMMAMAAAAXAAAAAMAXXXXMAMASAMXXXAAXAXMAXAXSAMAMMSMAMMMMSMXMAMXMAASAMMSMSXSSSMMSMMSMMXMAAMSXSXMASMMXMAMXMAXAMAMAMMSASXSAMSAM
+SSMSSMMMMMXMMSAMSAMXMAMMSMMMMMSSMSAMMXMSSMMAMMMMMXSMSSSSMASMAMXSAAMASAAXMMAMSMXMSMMAMAXASAXAMAMXAXXAAMSSSMSAMMSSMAMMSMSMSMSXSASASMXASAMXAMAM
+XAAAAAAAXXSSXSAMXMAXSXXAAMMAMXAXXXAMASXMASMXMASASXMAXAAMMXMMXMASMXMSSXMSSMXSAAXMMXSAMXSSSMMMMSMSMMSSMXXAMXMXMASAMAMAAXAAMAAASASASMMMMMMSSSSM
+SMMXXSMXSAMXAMXMAMXMAXMXSXXASAMXMSSMAXAXSAMSSMXMXAMXMMMXMSMXSAMXXSXXXXXAAXSAMSMSAMSXMMXAXXAAAAAAAAAAXMMAXMSAMXSAMAMSSMMSMMMXMXMMMXAAAXMAAAXM
+AXMSAAAAMAMMXMAMASASXSSMAMMMXXXAMAAMAMSMMAXAAAMSSMMMXAAMMXAASMSMAMMSXSMSSMSAMXMMAMMASMMMMXMMMSMSMMSSMXSXMAXXXASAMXMAMASMMAXXMSAMXSSMSSMXMXMX
+AMAAMMMSMSMMASMXXSASAAXMAMXSSMMSSSSMMSMASXMSMMMMAXAXSSMSAMMMMAAAAAAXAAXXAMXAMXSSSMSAMXAMASXSAMXAAAXXXXXAMSSSMASMMSSMSMMASMSMMASMXXXAMXMAXSXM
+SXMMXMAXAMXSMAMSAMXMMMMMASAMAAMAAAXMXAMXMXAXXSAMXMMXAAAXMAMAMSMSSSSMSMSSSMSAMXAAAAMAXSXMMMAMAMSXMMSMSMSAMAAXMAMAMAAASXSMMMAAMAMMXAMXMAMMXXAM
+AAXXSXAMMMXSMAAMAMASAXMAXMAMSMMMMMMSSMMMAMSMASMSAMXMMMMMXMASMMAAAXAAXXAAAXXAMMMSMMMXMAXSMSXMAMAMSAMAXAAXMMSMMMSAMMSMMAXXASMSMXSXMXMSSMSSMSAM
+MSAMAMASAMXXMXXMSMASASXSXSXMXXSAAAAXXSXMASMMAMASXSXXAASXSAMXAMMMSMMSMMMXMMXMXSXXMAXXAMMXAAAXXMSXMAMXMMMXSXMAXAMAMAAXMSMSMMAXXMMAMXAAXSAAASMM
+XMAXMMAXAMMASXSSMMXSMMMMASAMXASMXMMSASXSXSXMASAMMMMMXXSAMXSMMXAMAXXAAAAASMMSAMAMSXSAMXAMSMSAAAXXMSMAAAMMMASMMSSSMSMXMAAAXMASXAXAMAMMSMMSMMMS
+MSMMXMMMXMAAMAXMASAMXAXMAMAAMMMSXSAMXMASAMMSXSAMAXAASMMXMAXASMXSASXSSMSSXAXMAMSMMASXXMXMMAXMMMMMMXAXSAXAMXMMAXAMAMAASMSMXMMSXMMAMXXXMAAXMXXX
+XAAXSASAAXSSMSMSXMXSMMXSASXMXAAXXMAXAMXMAMASMSASMSXXAAMSSMSXMAMMMMMAMMMMMSMMAMXAMAMMXMMXMAMXSAMAMMAMXMSMMAXMAMSMAMSMMAAAAXAMXMAXXMASXMMSMSSS
+SSXMSAASXXAMAXAXMMMAXAAXXSASAMXMXXMXSMMSSMMXAXAMAAXASXMAAXMMMAMASAMAMAASMMAMAMSXMAMSASASMXMASXSAXXXMXMAXSXSXAMXMMXXMMSMSMSASMMSXAXAXAASXAAAX
+MMSAMSMMMAMMAMSAAXAAAMXSASAXASAMASMAXAMAXMSMSMMMMMMMMAMSSMMASMSASASMSSMSASMMAXMMXMAMAXMXMAAMSMSMSMMMXSAMMAMXMASAMXMSAAAAAAAXMAMSMMSXMMMAMMSM
+XAXMXAXMAMAMXSXMMAMAAAAMAMMMMSASAMMASAMMSXAAAAMXMMAXSAMXMASASXMAXAMMAMXMAMASXXMXAXMMSMMSSMSXMASXAAAMMMMAAAAXMASXMASMSMSMSMXMMSXMMAXAXXXAMXAA
+MMSSXMXXSXSXMAXASXSSSSMMXAXMXXXMASMASXMMMMSSMSAMXMMAXAMASMMMMXMAMXMMSXSASMMXAMSXMSXAXAAAAAXMSMMXSXMMXAXMSSMMSASAMXMXXXXXAXSXXXASMAMMMXMAMXMX
+SAAMAXMAMXXAMASXMAMAAAXAXSXMASMSMMXXXAXAAAMAMXAXMSMSSXMXSMAASMMASXAXAMMAMAXMMMAASAMMSMMSSMMAAAAAMXSXSASXAAAXMAMXAMXAXMMSASAXXMAMMMSSSXSMSASX
+MMSXMMAASMSSMAXAMSMMSMMSXMAXAAAAAXXSAMSMMMSAMXAMAAAXAASAMASMAASASMMMSSMXMXMXSMSXMAMXAAAMAAMSSMMMSASASAAMSSMMMSMSMSMXMAAXMMAMXMSMSXAAAAAASAMA
+SXAMMSSXSAAXMASXMMAXAXAXASXMXMSMMSASXXAAXXMASXSSSMMMMMMASAMXSAMXSAXAMXMASMMXXAMMSXMSSSMXSAMXMXAAMAMAMMMAXAXMXXASASASMSMMSMXASXXAXMXSMMMMMAMX
+AXMAXAXMMMMMMXSAASMMMMSSMMASXAXASMAMMSSSMSSMMMXAAXXAAXSXMASAMASMSXMXXAXXAAXAMXMAMAMAAAAXXSXAMSSMMXMXMAXMMAAAAMSMAMAXAXXAAMXAAAMMSMMXXAXAXAMX
+MMXMMSXMAXXXMXSMXMSAMSMAMMASMAMMMMAMXAAAAMAMSAMSMMSSXMAXMXMMSAMMMAMMSSMSSMMAXSMXSSMMSMMMAMMMXAAASXMMSXSAAASMXSAMXMMMAMMSASMAMAXAAXMASMSSMMSM
+XAMXAAMSAMSAMAMXXAMXMAAAXMASAMMAMSAMMMSSMSAMXSAXMAXMMMAMXMSXMMSASXSAAAAXAASMMXAXSAMXXAAMAMAXMSMMMASXAAMASAMAMAMXAAMMSXXMXXXMAMMSSMSAMAAXMMAX
+ASAMMSXSAXSAMASXMSMSXMXMSMASAMXAMSASXMAXAMXMMMXMAMXAAXSMMAAMSAXASAMMXMSMSMMAMMMMXAMSMSSSMSSSXXAASAMMMSMAMXMMMAMSSSXAXMASMMXMAMAMXAMMSMMSXSAS
+AMSXSXAMMMMXXAMAAAMXASAMXMASAMSSXSMMMMAMMMMMAMASMMMMMMXAASMMMAMMMMMSXAXAXMXAMXAAMMMSAMAAMAXMASXMMAMXXXMAXXXMMMXXXAMASASAAMMSAXSAMXMAAAXAAMAM
+XMAMSMXXMASXMSSMSMXSAMASAMMSAMAMMMMAXMXSAAMSASAXAAXXAAMSMMXXSASAAMAMMMMXMMSMMSMMSAAMXMSMMMMXXAMXSAMXMMMSMXAMAMSMXXXMAXXMSMAMMSXAAXMMSMMMSMAM
+XSXSXASXMASXAAAAAAAMAMSSXSASAMXSASXSXSASXSMSASASMMSAMSXMAMAMSASMXMASAMAXXMASMAAASMSMAMMMASMMMAXXMXXAAXAXXXXXASASMXMMSXSAXMSMMXXAMXXAMASMXXAM
+MXMAXSMAXAXMMMMMMMMXXMXMMMASAMXSASAAAMXXAXASAMAMXAAXXXAMAMAMXMMXXSASMXSAASASMSMMSXAMMMAXAAAMSXMXMASMXMSSMXMSMSAMXAMAXAMMMMAASMMSSSMMXAMAMSSS
+AAAMMMSXMSAMXSAMXMSMSXSXAMMMXSAMAMMMMMSMAMAMMMAMMMMMMSMMAMASMSAXXMASAAMSMMASAXMXXXMASXSMSXSMSAMXXMASAMXSAAMAMMXMSXMAMAMXAMSSMAAAAXASMSMSXAXX
+MASXAAXXXAAMAMXMASAMSAMSXSAXMMMSMXAXAASMAMXMSXMSMSAMAAXSMSXXAMSSXSXSMMMAXAAMAMXMASMSSXAAAAMASXXAXMASXMASXXSASXSMMXMSSSSSSMXAAMMMSMMMAXAXMSSS
+SMXXMSSMXSXMAMASMMXSMAMAMMMSMSAAMMMXMASAMAMMSAAAXMAMSMMAASAMSMXMASAMASMMSMXMAMAXMAXAXMMMMSMAMSXMSXAMAMXSMMXXSMSAASMAXAAAXXSXMXMXXMSMXMAMXAAA
+ASASXMAMMMASASAMMMSXXSMMSAAMMMSXSASASAMAMMSASMMMSSMMXXMSMMAMMAAMMMAMAMXMAXASXSSMSXMSSMMAAXMAMMXSAMMSXMXMXSSXMASMMSSMMMMMMMMAMAMXMAAMAMXXMMSM
+MMXSASXMASXMMAXXAMXAMMAXSMSSMAMMSASAMAXAMXMMSXSMXAAAXAXMASXMMSSSXSXMASASASMXAAMMMAMAAASMSXSAASMMMMAAAXXMASMAMAMAAMAXAXSASAAAMASAMSMXXXAMAMAX
+XMASAMXMXXAAXAMXXMMXMSMMXXMAMASAMAMMSSMASMSXMASMMMMMSSMXAMMAMAMMXMASASXSAXXMMMMAMAMMSMMAMAXXMXAAAMXSSMAASXXAMXMMMSMMMMMASMSXSASXXAMMSXMAXXAX
+SMXSMXXMASXMMXSAMXSMMAASXMSXMAMAMXMMAAXSMMMAMAMAAXAXXXAMSMMMMAMXXMAAAMMMMMMXSASMSSSXAAMXMAMSSSMMMMMAMMSMMMSMSXXSXSXMASMXMXXMAMMXMASASASMSMSM
+SSMMMMXMAMAAAAMASXAAMMXMAMAMMMMAMXMMSSMXAMMAMASXMSSSMMXMAAAMXSMSMXAMSMSAAAXASMSAAAXXXMMMMXMXAAXAAXMAMAXAXXAAAMAMAMXXAXXSSXAMMSSXSXMASXMASAMS
+MAMAAXXMMSSMMXMAMXMSMMMSXMXSASMSSSXAAAASAMXSSMXAMXMAXAASXSMSAMAAASMXMASMSSMMSAMMMMMMXMAXSAMXSMMMMXXAMXMMMSMSMSSMAMMMSSMAAAMSAAAXAMMMMAMAMXMA
+SAMSSSMSAAAASAASXSMAXAAAMAXMASAAAXMMSSMMXMAXAXSXMAMSMSMXXAAMAMAMMAXAMAMXMAXAMXMMXMAXAMAXSASMXMXSASXSSSSXAXAAXMASXMAXXAAMSMMMMSSMMXSASMMSSMXM
+SXXXAAAMMSSMMAXXAASASMSMMMSMSMMMMMMMAMMSXSXSAMXMSMSAAXAXSMSMSMAXSMSAMMXSMASMAAXMASXSMSSMSXMAXMAMMSAAAAXMMSMSMSMMMXSMXXXXAAXXAXAAXMMAXSAXMAXX
+SMSSSMMMAMAAXSSMSMMXSMMAXMAMAAXXXSXMASXXAXAMXMXMASXMMMXMAAXAAXXXSXSXMSAMXAAXSSSMXSAAAAXAMMMSMMASAMMMMMMMXAAAAAXMAXXAMMSSMSSMMSSMMAMSMMMSMSSX
+SAAAXXXMASXMMXAMAXMAMASXMSASMSMMASAMSSMMSMMMAXAMXXMAAAMSMMMMMSMASAMAAMMMMMSMMAMMMSAMXMMSMMAXASMSXSSXMXXXXMSMSMSMSSMXSAAAXAMAXAAAMMMXAAXAAASX
+MMMSMMXSAXAXSSSMSXSAMAMAMXMMXXAXAMMMMMAAMAMSMSMSASXSMSMXAAAXAXMAMAMXMASMAMAMMAMMAXXXXSAMAMAXAMASXXMAMMMMSMAAMXSXAAMAMXSXMMSSMSXMMASMSMXSMMSS
+XMAXAMAMMSMMMAXAXAMXSASMMSMSMSXMMSXXAMSMSAMXMAMMASXAXXXSSMSMMSMMSXMXXSXSASXSMMSXSSMXXMASMMMSMMAMSMSMMASAAMXMMMMMSXMXSAMMMXAXXMMSSMSAAMXMAMXX
+SMAXAMAXXAXAMXMMMSMASXSXAASAAASXXAXSMXAAXXMMSMMMMMXSAMXAMAXXSAMMXAXSMXXSMSAAXMAMMAMSSSMMMAXAXMXMXXAASAMXSXSAAXXAAAXXMASAMMXSAMXAAXMXMXAXAMAS
+XMSXMMAXSMSXMSASAAMMMXXMMXSMSMAMMMMMMMMSMAXMAAASASXMASXXMMMMSASXSMMMASMSMMXMMMAMSAMAAXMAXXMXMAMXSMSMMASMXASMSMSXSXMAMAMAMXMSAMMSSMSMSMSSSMXS
+AXMASMMXSAMXMSAMSMMAAMMSSMMXMXMAAXAAASAMMMMSMSMSASMSXMASMMXAMXMAAXAXSXAXAAMXAXMXSXMMSMSAMSASXMMXXAXMXMMAMAMAMASAAMSXMASXXMASAMAAAASAAAAAAMMM
+MSMAMASAMMMAXMAMAMXSAMMAAASXMXXSSSMXMSAMASAXXXAMAMMMASAXAAMXSMMSMSMMMAMSMMSXMXSAMMMSAMXAAXAMAMSSMMMAAXMXMSMXMAMMMMMASAXXAMXSAMMSMMMSMSMSMMAA
+SAMXXXMAXXSMSSXMAXMXAMMSMMMAMMMMMMMSMXMXAMXSSMXSAMASMMSXMMMAAMAMAMXSMSMAXMAAMSMMMAXMASMMMMMSAMAAAMASXXAMXAMXMASXMMSXMASXSMXSAMXXASXXXXXXASMS
+AXMASMSSMAXAMASXSSMXAMXAMSSMMAAAAAAMXAXMXSXMXMASASXXMAXMSAMMSMASAMSAAASXMMMSMAAAXSMSXXMAAAMAAMSSMSXMMSSMSMSSMAMAMMMSMAMXASAMXMXMASAMMSAMXMAX
+SASASAAAMXMASAMXMAMSMMMMSMAAMSSSXMSSSMMSAAAMAMMSAMAAMASMSASAAMXMAXXMSMSXSAAMMMMMMMAAMMSSSSMXXMAXAXAXAAAAMXMXMASXMAASMSXSAMMSAMMXAXASAAXMXMSX
+MAMASMMMMXSAMXSXSAMXXAAMAMMMMMMMAXAAAAAMSSMSMSAMMMSXMMSASAMXSSMSSMMXXAXASMXMAXAXAMSMSAMAMMMMXMXMMSMMMSSMSASXSASMSMSMAAXMXAMXASXMMSAMXMXSAAAA
+MAMAMXSAAXMXMAXAAAMXSSSSXSMSXSASMMSMSMMXMMAXXMMSXAMAMAMXMXASAAXAMAAAMXMMMSSSMMMMSMXMAXMAMAAMMSSSXSAAAAXXSASXMASAXMAXXMXMMMSMMMMAMMMMSXAMMMMM
+MXMAXSMMSSXMASMSMSSMMMAMAMAMAMMMSAXXAMXAAMAMXMXXMMSAMAXAXXXMASMSXXMASMSXMAMAMSMAAAAXAXMAMMXSAAMAAMXSMMSAMAMXMASMSSSSXXXXAAAAAAXSMASAMMSMSXSA
+MSSMSSMXMAXXAAAMAMXAAAAMAMXMASXAMXSAMXSXSMSMMSSMMAMXXXXSMXXXXMAXMMXXSASXMAXAMAMSSSMSMSSSMSAMMSMMXMAXAXMAMAMXMASAXAAXMXMSMSSSMXMAXXMAMXXAXAAM
+AAASAMXASMMSXMXMXMSSMSXXAXXSAMMXSXSAMXMAXMMAAAMAXSSSXMAMAXSMMMXMASAXMMMMMMSSSMXAXAAXAAAAXMASXAAXXMAXAXXXMASASMMMMMMMMAMMMAMXMAMXMSSSMAMXMMMX
+XSXMXMSASAMMXMMSAAAAXAASXMMMSXSXMASAMXMASAXMMSXSMXAAAMSMSMSAMXMSAMXXMSMAMAMMAMMSSMMMMMSMXSMMMSSMXMMMMSMSSMSASXASXMXXMAXAXXMASXSMMAAXASAMXMSM
+MMAMXMMAXAAMXSASMMMSMMMMSAAAMXSAMASAMXMASMMXSAXMAMMMMMMAMXSSMXMMMSAMSAMSMAMSAMMAXXAAXXAXAXASAMXMXAAASAMAAAMAMXMMMSXMSSSMSSMXAMMAMMSMMMXXXMMS
+ASAMAXMMSSMSAMXSXMSXAXMASMMMXASXMASASMMXSAAMAMAMSASASMXXSMMAMXSMSMMMSASXSXXSASMMXSSSSMSXMSMMASAMSMMMSASMMMMMMXXAXMAMAXAMAXMMSASAMXAAASMSMMAX
+XSASMSXAAMXMASAMAXMSSMMXSXSXMXMMMASAMXSASMMSMXMSMMSASXAAXASAMAMXMASASXMAAMXSAMXXXXAAAXXAMAXMASXMASMASMMAXXAXMASMXSAMASMMSSXAXXSASMSSMSAAXMAS
+ASAMXXMMSSXSAMASXMMAMXXXMASAMXAXMAMMMAMASAAMXMXAMXMMMMMMSMMSMASMSXMASAMXMMAMAMXXAXMXMMSXMASMXMASASMAMXSMMXMMSMMMAMAMMSAAXXMMSASAMXAAAMXMSMAS
+XXAMXAAAXXXXXMXMXAMASMSMXMSAMMMMMAMAMASASMMSASMXSAXAAAAAXAAXSMSASXSASXMAXMSSMMSMMXSASXMASXSXASAMXSMXSASASMSAMAAMMSSMSXMASXSAMMMXMMSMMMAXXMAS
+ASMMMSSSMXMAMMSAMMMAXMAMXXXAMMXAXAXMAAAASAASAXXAMMSSSSSSMMMMMXSMMAMXSASXSXMAMMAMXXSASASXMMMXXXMAXSAXMASASAMXMXMSXAMXMAMXSAMASXMASAXMASMSXMAS
+MMAAAXAMAAMASAMASXMSXSASXMXXMASASXSXSXSASXMMAMSSSMAAAAMAMXXSXASAMXMASMMSMXSXMXMMSAMXMAXMAAAXMAMSAMXXSASMMMMSMXMSMXMAMAMAMXMAMASAMXMMAXMAXMMS
+XSSMMMAMSMSAXXXAMXAAASASMXAASMSAAMAMXAMMMMXMAMAAAMMMMMMASAAMMMSXMAMASXXMXMMXMAMASAMSMAMSSMMSAMXMMMMMMASXAXMASAAXAASXSXMASAMAMXMASASMSSMXMAMX
+AXAMSSMMAXMMMSMXSMMMXMAMAASMMAMXMSSSMMMAAAMMSMMXMMXASXSASMAXAMXXXASXXMXMAMMSSSMASXMMMXMAMMMMAMAXAAAAMXMXXXSASMSMMMXMAXSASMSSSXSAMMSAAAMSSSXS
+SSSMAAAMXMSAAMMMXASMAMXMSMMAMXMSXMAAAASXMSXMAAXSMXMXXAMXSXAMMMMMSASXAMSSSSXAAAMAMMMAMXMAMSAMASXSSSSSXMASXXMAMAMXXXXMXMMASXAXMMMAXXMMMSMAAXAX
+MAMMSSMXSASMXSAMSAMXAXXMMSMXMASXAMXMMMMAXAASMMMAMSMSMAMASMMMSAAXMMMMMMAAXAMMSMMASAMAXXMAMXAXXSAAAAAMXSASXSMSMMXSAMXSSSXAMMSSMMSMMMMXXMMMMMMM
+MXMAXAAAMAMAMSAMMAMSXSASAAXAMXSAXMXSASXSMSXMASAMXSAMXXMASAAAXMSMSXMASXMSMMAXXXSXSMSSSSMSXSSMAMMMMMMMAMAMAMAAXXAXAMXXAMMMMXAAAAAASMSAMMMSMAAM
+MAMSSMMMMAMXMMASXXMAASAMSMSMMAMAMMXSASAMXMASXMSXAMMMMMMXMMMMMXMAXXSASMMMXASXMXMASAAAAAAAMAMMMXSAAAAMAMMMMMSMSMXSMMSMSMAMMMSSMMXMSASASAAASMMS
+SAMAAXXXSMSAXMAMMAMXMMMMAXAXAASAMXAMXMAMXSXMASMXMXAAAAMMSXAASXMMMMMAXAAAAMMAMXMAMMMMMMMMXMXMXASXSSSSSSMSAAAAXXMAMXXAAMMXSAXXMMSMMAMXMMSMSMAM
+SSSXSMSXMASMXMASMXMASAXSSSMSSXMASXXSASAMXMASMMAASMSSSXSAAMSXSAMSAMMSMSMMSXSAMAMASMSXSXMSAMAMMMSAMXAAAAASMSMSXXAMXAMSMSAAMXMAXXAMMMMAMXXAMMAX
+SASAAAXSMASAXSAMAASXXXMXAAAAMMSSMMMMASAXAMAMAMMMMAAMMAMASXMAMXMMAXXXAXAAMMSXSXSAXMXAXAASASASAAMAMMSSSMMMAXMMMXSAMXXXAMMSSSMSSSMMAAXAXAMAMSMS
+SAMSMMMXMAMMXMASXMMXSSSMSMMMSAXAAAAMMMMMSMASAMASMMMSSXMXXXMAMAMXSMSMMMMMSAMMMMMXSMMSMMMSXMASMXMAMXAAAXXMMMSAAAXMAMMMSMXMAMAMXAXSSSSXSASXMAAX
+MAMXXXXAMMSSMSAMAXASAMXAXMXXMASMSMSSMASXXXXXAXASAXSAAASXMXSMSMSAAAXAAAAXMXMAAAXAAXAAAXAMAMXMMMMAMXMSMMSASASMSSXMMASAMMAMXSSMSAMAAAAASXMASMSM
+SSMSSSSXSMAAXMMSAMXMSXMSMMSMMAAAMAMXMAMMSMMSSMASXMMMMMMASMSAAAMMSXSXMSSSXAXSXSSSMSXXSMSSMMXSAMXSMAXAXXXAMXMMAMASAMMASMXXAMAMSASMMMMMMASAMMMA
+AAAAAAAAMMMSASXMMSXAXMMMAASAMXSMMASMMXSAAAMAXMAMXXMAXASMMAMMMSMAMMMAXAMAXMMMAMXMASXMMAXAXAAMMSAXMASXSSMXMSXMASAMAXMXMAXMAXAMSXMAXXMXSXMMXXXX
+SMMMMMMSMXMXASAMAMMSMAXSMMSAMAMXSASASMSXSSMASMAMMMSMMAMASXMSXXMAMASMMMXMMMAMAMAMAMAXSXSXMMMSAMMSXAXMAXAAMMAMAMASXMSASMSSMSXXXMXMMMSAMXMSMSMM
+MMMMXXXMAMAMAMXMASXXSSMAMMSAMXSAMASXXAMAMXMAMMASAXAMXSSMMAMXMXMASXMMASAMAXAMSSMMASXMMMSASXAMASASMSMMSMSSSSSMASAMAXMASXMAMAMSAMSAMXMAXAMAMAAS
+XMASXMMMSMAMSMXSXSAMAMXMSAMXSXMAMXMXMSMMMAMSMMXMMMASAAAXSXMAMAMXSAASASAMSSMMMAASAMXAAMXAMMMSAMMMAMXAAAXAAAAXXMAMMMMMMMMAMAXSAMXMASXSMMSASXSM
+MMASAAAAAMAMAMMAMMMMMMMXMMSAMXMMSAAMAAAASXMXASMSXSAMMSMMMMSXSAMMMXMMAXAMMAXAMXMMAMSSMSMSMMXSXMXMAMSXMSMMMMMMSSSMMXSAASMMSMXSXMASXSAMXXAAXMAM
+XMXMMMMXSMMSSXMAAAXSXMMAAXMASMAASMSASXXMMMXSSMAAMAXAXAXAXMAMMASMSAMXSSSXSAMSSMXSAMAMMSAMASAXMMAMAXMSMXMXSAMXXAXXMASXMMAAAXASMSAMMMMMMMMSMMSS
+XXMMSMSAMAMXMASXSMMSAMSSSSSMMMMXXXMMAMXMSMAMAMXMMMSXXSMXMASXSXSMSASAAXMAMMMXAXASAMXSASASAMMSASXSXSMAMAMAMAMSMSMSMASMSSXMMMASAMXMAXMASAAMAXAS
+MMXAAAMASXMSSMMAXMASAMAAXAASXMSMMMSSXSAAAMSSXMAMAXMAXMXSXXXAAAXASAMMXAMMMAMSAMXSXMSMAMAMXXAMXXXMASXMSASASAMAAAAAMMSMASAAXMAMMMSSSMSASMXSAMMS
+AAMSSMMMMMXXAMXXMMMMAMMSMSAMXSAAASMSASMMMXAAMSMXMAMXAMAMXMMMMMMMMAXMXMAMSAMMSMAMAXAMXMSMMMSSMSXMXMAXMXMASMSMSMMMSAXMASMMXMAMXMAAMXMASAAMXXXS
+MXMMAMXXMASMSMMAAASXMMXXAMAMXSMSMSAMMMXMMMMXXAAASXSMSMAMAMAMAMXXSMMSAMMASMSAASMXSAMXMAXAAAMAMXAMASAMXXMASAAAAAASMXSMMSASXSASAMMSMMXAMMMSMMAS
+XMASMMAMXAXXMAXXSMXAXSMSMSASAMXAAMAMXXMASXMMXMMMXAXAAXMMAXSXSSSMSXASAXAMXAMAMAXAXMMAMMSXMSSXMSXMASASAMXAMXMSMSMSAMXAAXASASASXSAXAXMMSAMXXXAX
+SXMXXXXAAMSMSSMMMASXMSAAASAMASXMMMAMXXMMAAAAMSSSMAMSMSMSMSMAMAMASMMSAMSXMXMMMXMASXSXSAAASAXAXMASMSAMAXMASXMAMXMMMMXXSMAMAMASMMMSMMSMAMSMMMSS
+SAMXSMSMASXAAMASMAMXAMMMMMAMMMMAASMMMSXXMAMXSAAAXSMXXXAAXAMXMAMMMAXMAMXASXMXSXAAAAXAMASXMAMMMSAMMSXMAMMSMMSMSMMAAAMMMAMXXMAMAAAAXAAXMXSAMAAX
+SAMAXAASXAMXMXXMMSMMXMAXAMAMXAMMMSAAAXAMSMXSMMSMMAAXSSSSXMMMXMMXSSMSSMSXMASXMASMMSMSMMMXMAMMAMXSMSMMXSXAXAAXXASMMSAAXSMXXMXSSMSSMSSSMAMAMSSM
+SAMXMSMSXMSSSMMSAMXSSSSSSSMXMMXSXSXMMSXMASMMMMMAXMMMMAAMXSAMAXAXXXXAXXSASMMAXAXAAXXXAMSAMASMASAXAMMSASXMMSSSSXMXMAXMSAMXSAMXAAXXAAXXMASXMAXX
+SXSAAMAMXXAAAAAMASMMAAXAMXXAASASXSASAXAMXXMASASAMXAAMMMMASASASMMMMMMMASAMXMXMASMMMMSMMMAMAAXAMMMMMAMMMAXAAMAMAXMAXSMSASMMASXSMMMXAMXSASAMAMX
+XASMSMAMSMMSMMMSAMAMSMMSMASXSMASASAMMASMXMSAMMSAMSSSSSSMXSAMXMAAAXAASAMAMXXAMXXAAMXSXAMAMXSMMSXSXMXSAXAMMXXAMXSAMXSASASASAMAMXMAXMMMMAXAMSSS
+MMMXAMAMAAXXAXXMXSXMXAAXMASMAMSMMMAMMAXXXXMASXSMMXAXAAMSAMXSASMSMXSAMXMAMSMXSXSSMSAMXMXXMMAXMAXMASMSXSSXSSSSXMAXASMAMAMMMAXAMSMXMAAAMMMSMMAM
+XAASXMMXSSMSSMSMMXXMSMMSMAXMAMXAXXXMMSMMMMMXMAXAXMMMMMMMXSAMMSAAAXXMMSXMASXXAAXAAMASMMXSAMMMXSXSAMAXAXAAMXAMXAXMMAMXMMMXSAMMMSAASXSMSAAXASMS
+XXXSMASAMAAAXMAAMXXXAMXSMMSSMSSMMSSMAMAXMASMSXSXMMXXXSAMAMXSSMMMMMXMASAMAMMMMSMMMSXMAAASAMXSAXAMXSSMMMMAMMMMMSMSASXMXXXAMASXAMMMSAAASMMSAMAS
+SMMMMAMASMMMSXSMMAMSASAXMAMAAAXAAAXMAMXMAMSAAXSAMMAMXXAXSAMXXAAMMSMMASXMMXAAAAAXAMASMMMSXMXMASXMASAMAAXSSXSAAAASAMXAMMMXSAMMAMAAMXMMMMXMAMSM
+XMAXMXSAMMSAMXAMMSXSAMASMXSMMXSMMSSMSMSAXXMMMMSAMAAXMSMMXAAXMSMSAAASXSXSSXSMSSSMMSAMAMAMMAMMMMXMXXAXSSSMAASMSSMMAMXMASMMMASMAXMSSXSAAXXSSMMM
+XSMSAMMMMAMASAMXAXMXAMXXAAXAMAXXAMAAAAXMSXSASASAMXSSMAAMSMMXMAXMMSMMAXMAMAAAAAAAAMMSAMAXMAMXMMMSMSSMMXMMMMMMMMMXMASMSAMASAXXMSSMMMSSMXAXAASM
+XAAMXXAAMMSMXMSMMSXSASAXXXMAMASMMSMMMSMAAAXAMASMMXMAMSSMSAASXMMAXMMMAMXSMMMMMSMMMMXSASMMSAXASAAMMAAAMAMXAAXAMAAASMMMXASMSAMSMMMAAAMAMSSSXMMS
+MMXMMSSMMXAMAXXXXAMSAMMMSSSSXMXAXXXXMMXMMSMAMAMAMMSAMXAASXMMAMSMSMASAMAXAMXXMXASXMXSMMAASASAMMSSMMMMMSXMXMSMSMSXXAAXXAMXMAMXAASMMSMAMSASXMAM
+ASXMXXMASMMSXSMSMSXMMMMAMMAXXXSAMMSXMMAXAXMXSMMXXAMAXSMMMAMSMMAAXMASAMXSAMMSMSXMAMMXAMMMMAAASXMXAMMSAXASMMAAMAMMSSMSSXSAMMMSMMSAMXMMMMAMSMXS
+SMAXMXMAMAAXAXAAAMMSAMSSSMAMXXMASAAASXMMMSMAMAMMMXSSMMXMMMAAMSMSMMXSAMAMXMAAMMMSMMASAMXXMSMMMAAMMMAMASAMASXXMAMMAAMAAXSMSMAMXAXAXXXXAMAMAMMM
+MSMMSSMASMMMMMSMSMAXAMAAMMAXAMSXMMXXMAAAAAMASAMAXMAMAMASAMSMXAMAAXMSAMMSAMSMSAAAAXXXAMMXMAMXSMMMSMMSASASXMMMSASMSXMXSMSMAMASMASMMSXXASXSASAS
+XAXXXAXASXMXSAAXXXMSSMMSMSXSXMAMMXMSMSMMXMXASASXSAMSXMASAMAXSASMSMASAAMMMAXASMSMSMMMSSSSSXSAAXMXAAXMASAMMMAXXAMXAASXXASMSSMMXMXXAAMSMMASAMAS
+SSMMSMMXMAXAMSXMMMXAMAXAAXAAMAAMSAMXAMXSASMXSAMAXMXSAMAMXAMMXMMAMXMSMMXMXMMAMXAMMAXXXAXAAASAMXXSXSMMXMMMASMSXMMMSMMAMSMAMMMXXXAMMMXASMMMSMAM
+MAAAMXMAXMMMMMSMAAMMSSMMMMMMAMMMXASMAMAMAXXXMAMMMSAMAMAMAMXXMSMAMAXXXAAXAAXMXMMXXAMSMAMXMMMSXMXAAXXMAXAMXXAAAASAXAMXMAMXMAAXMMSSMMSASXMAXXAS
+MSMMSASMXMAMAAAMSSXMAMXAAAXAMMSMXAMMXMMMSMMMMAMAAMASXMXXSXSXAAMMSMMMSMMXSSMSAASMMAMMAAAMXMXXMSMMXMASASXSMMSMMMMASMMAMMXSMMMAXAAAAMMAMAMXMSAS
+XMAMSASXASASMSMMAMXMASXSSSSSSMAAMSSMMMSAMAMMXAXXMXMMMMMMAAMMSMSMAMMMSAXXAAAAMMAASMMXMASASXMMAXXAASXMMMMAMAAAAXMAMAMAMXXAAASMSMSSMMMMSSMSMMMX
+MMAMMMMXMSASAXXMASMMMSAAAAXAAXMMMAAMXXMAMSASXSSSSXSAAAXMMMMMAAAMAMAASAMASMMSXMSAMAMXMAMXXAAMSMAMXMMMXSSSMSXSMSMMSSSMSSMMSMAAXMAMMMXMMMAAXAXA
+MSSMMAAAMMMMAMASAMAAAMMMMMMSMMXSMMSMMMSAMXMXAAAAAASXSAXAAAAXMSMXSMMMSAMMAAAXXXMASXMXMAXAMMMMAAASAAXSAXMAXXAXXMAXAAAMAXAXAXMMMMASXMAAAMXMSMSM
+MAXASMSXSAMSASMMASMMMSAXXXXMASMXMMMMAAASAXXSMMMMMMMXMXSXSSSSMXMXXASAMASXSMMMAXAAMXMAMXSSMMSSXMXSMSMMXSMMMMMMASMMMSMMXMSSMXXMAXXSAXSMMXSXXXAM
+MASXMAXXSAMSASXSASXMASXXXMAMSMMASAMXMAXMXSASASXMXSMMMMSXAMAMXAMMMAMASXMAMSAMXMMMSASAMXAAAAMAMSMMMMAMXMAAMASMXMXAMMXSAAXAXSSSXSAMMMXAMXSMMXXX
+MAMAMMMAMSMMAMAMXSAMASMSSMSMXASAXAXSXSXSAMASAMMSAAAXXAMMMMSXXSMAMMMXMAXAMAMXMXAAMXXAMMXMMMSMSAAAMXAMMSSMMASMAMSMSMASMSMAMXAAMMMSXAXAMAXAXSSS
+MASMMAMXAMMMSMXMXSAMXSAMMAAAMAMMXSMMXMAMXMAMAMAMSSMMMSSMMAXMAMSSSXMXSSMXSASAMSMSSMMSXSXMMXSXSMSMSSMSXMASMASMMMAMAMXMXXMAMMMMSAAXMSXMMSSSMAAX
+SMAASXSMMXAMMXAMXSXMXMAMMSMXMXMXAMAMMMAMSMAMMMMXAMAAAMAAMXMAXXAXAMMAMAAMAAMMAAAXMAAMASMXSAMMSAMAXXXMASAMMXMAMSXMASXSMXSAXXAXMMMSAAASAAAXMMMM
+XMXMAAXXMASMSSMSAMSXMSAMXMASMMXMASAMXXAMMXXMAAXMASXMSMXMMASXMMSMMAMAMMMMMXMXSMSMMSXMAMAAMAMAMMMMMMAMXMMSMASAMMMMAMAXAXSXSSSSMASAMMXMASAMXXXX
+XMMXMXMMSAXMXAXXMSMXAXMSXMSMMAXMASXMAMXXSASXSMXSAMASMMSAMAXAAAMASMSSSXSXXAAMXMAXAAAXMMMMSXMXSAAASMMSASMMMASASASMSMMMSAMXXXAAMXMAMMAAAXMSMSMM
+XMAMSXSAMMSSMMMSMAMMSMAMAMAAXSXMASMMAMXAMMSAAAAMASMMAASAMSSSMMSAMAAAAASASAXSASXMSSSMSAXXMMSMMMXSAAXMASAMMMMAMAMAXMASMAMAMMSMMMSAMXAMXMAAAAAA
+XMASAXMASAAXAAAASASAAMAMASMSMMAMASAMASMAMXMMMMMSAMXMMMSXMAAAMAMAMMMMMMMAMAMSASMMAAAASMSAMAAAAASAMXMASMMMAXMSMSMMMXMASAAAMXAMXAMMSAMXSMSMSMSX
+SSMSAXSMMMSSSMSMSMSXSSMSASMMMSMMMSXMAXXAMMSAMXXMMSXXSAMXMMSMMASMMSAMXXMMMXMMAMMMMSMMMXSAMSSSMSSSXAASXXXSXSAXAMXSSXMASXSMMSASMXSASXMASMXXMAMA
diff --git a/2024/tcl/lib.tcl b/2024/tcl/lib.tcl
index 2968072..048bce5 100644
--- a/2024/tcl/lib.tcl
+++ b/2024/tcl/lib.tcl
@@ -47,3 +47,10 @@ proc sindex {str args} {
}
return $ret
}
+proc lrindex {list args} {
+ set ret {}
+ foreach arg $args {
+ lappend ret [lindex $list {*}$arg]
+ }
+ return $ret
+}