├── day3 ├── build.sbt └── src │ └── main │ ├── scala │ └── Main.scala │ └── resources │ └── input ├── README.md ├── day2 ├── test ├── CHANGELOG.md ├── app │ └── Main.hs ├── LICENSE ├── day2.cabal └── input ├── day1 └── Day1.ods ├── day4 ├── CHANGELOG.md ├── test ├── LICENSE ├── day4.cabal ├── app │ └── Main.hs └── data ├── day5 ├── CHANGELOG.md ├── test ├── LICENSE ├── app │ └── Main.hs ├── day5.cabal └── data └── LICENSE /day3/build.sbt: -------------------------------------------------------------------------------- 1 | scalaVersion := "3.3.3" 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # advent-of-code-2024 2 | AoC 2024 3 | -------------------------------------------------------------------------------- /day2/test: -------------------------------------------------------------------------------- 1 | 7 6 4 2 1 2 | 1 2 7 8 9 3 | 9 7 6 2 1 4 | 1 3 2 4 5 5 | 8 6 4 4 1 6 | 1 3 6 7 9 -------------------------------------------------------------------------------- /day1/Day1.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aarroyoc/advent-of-code-2024/main/day1/Day1.ods -------------------------------------------------------------------------------- /day2/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Revision history for day2 2 | 3 | ## 0.1.0.0 -- YYYY-mm-dd 4 | 5 | * First version. Released on an unsuspecting world. 6 | -------------------------------------------------------------------------------- /day4/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Revision history for day4 2 | 3 | ## 0.1.0.0 -- YYYY-mm-dd 4 | 5 | * First version. Released on an unsuspecting world. 6 | -------------------------------------------------------------------------------- /day5/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Revision history for day5 2 | 3 | ## 0.1.0.0 -- YYYY-mm-dd 4 | 5 | * First version. Released on an unsuspecting world. 6 | -------------------------------------------------------------------------------- /day4/test: -------------------------------------------------------------------------------- 1 | MMMSXXMASM 2 | MSAMXMSMSA 3 | AMXSXMAAMM 4 | MSAMASMSMX 5 | XMASAMXAMM 6 | XXAMMXXAMA 7 | SMSMSASXSS 8 | SAXAMASAAA 9 | MAMMMXMMMM 10 | MXMXAXMASX -------------------------------------------------------------------------------- /day5/test: -------------------------------------------------------------------------------- 1 | 47|53 2 | 97|13 3 | 97|61 4 | 97|47 5 | 75|29 6 | 61|13 7 | 75|53 8 | 29|13 9 | 97|29 10 | 53|29 11 | 61|53 12 | 97|53 13 | 61|29 14 | 47|13 15 | 75|47 16 | 97|75 17 | 47|61 18 | 75|61 19 | 47|29 20 | 75|13 21 | 53|13 22 | 23 | 75,47,61,53,29 24 | 97,61,53,29,13 25 | 75,29,13 26 | 75,97,47,61,53 27 | 61,13,29 28 | 97,13,75,29,47 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /day2/app/Main.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Data.List 4 | import Text.Regex.Posix 5 | 6 | main :: IO () 7 | main = do 8 | contents <- readFile "input" 9 | let result1 = partOne contents 10 | putStrLn ("Part 1: " ++ (show result1)) 11 | let result2 = partTwo contents 12 | putStrLn ("Part 2: " ++ (show result2)) 13 | 14 | 15 | partOne :: String -> Int 16 | partOne contents = 17 | let 18 | nums = map parseStr (lines contents) 19 | in 20 | length $ filter isSafe nums 21 | 22 | partTwo :: String -> Int 23 | partTwo contents = 24 | let 25 | nums = map parseStr (lines contents) 26 | in 27 | length $ filter isSafeWithBadLevel nums 28 | 29 | 30 | parseStr :: String -> [Int] 31 | parseStr str = 32 | map read regexResults :: [Int] 33 | where 34 | regexResults = getAllTextMatches $ str =~ "([0-9]+)" :: [String] 35 | 36 | 37 | steps :: [Int] -> [Int] 38 | steps [x,y] = (y-x):[] 39 | steps (x:y:xs) = (y-x):(steps (y:xs)) 40 | steps _ = error "Pattern unreachable" 41 | 42 | isSafe :: [Int] -> Bool 43 | isSafe nums = 44 | let 45 | steps_nums = steps nums 46 | in 47 | all (\x -> x > 0 && x < 4) steps_nums || all (\x -> x > -4 && x < 0) steps_nums 48 | 49 | isSafeWithBadLevel :: [Int] -> Bool 50 | isSafeWithBadLevel nums = 51 | let 52 | length_alts = (length nums) - 1 53 | alternatives = filter (\x -> length x >= length_alts) (subsequences nums) 54 | in 55 | any isSafe alternatives 56 | -------------------------------------------------------------------------------- /day2/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024, Adrián Arroyo Calle 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Adrián Arroyo Calle nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /day4/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024, Adrián Arroyo Calle 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Adrián Arroyo Calle nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /day5/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024, Adrián Arroyo Calle 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Adrián Arroyo Calle nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /day3/src/main/scala/Main.scala: -------------------------------------------------------------------------------- 1 | import scala.io.Source 2 | import scala.util.matching.Regex 3 | 4 | object Main: 5 | def test1: String = "xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))" 6 | def test2: String = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))" 7 | 8 | def main(args: Array[String]): Unit = 9 | val input = Source.fromResource("input").mkString 10 | val result1 = partOne(input) 11 | println(s"Part 1: $result1") 12 | val result2 = partTwo(input) 13 | println(s"Part 2: $result2") 14 | 15 | private def partOne(input: String): Int = 16 | val mulPattern: Regex = """mul\(([0-9]+),([0-9]+)\)""".r 17 | 18 | var sum = 0 19 | 20 | for patternMatch <- mulPattern.findAllMatchIn(input) do 21 | val a = patternMatch.group(1).toInt 22 | val b = patternMatch.group(2).toInt 23 | sum += a * b 24 | sum 25 | 26 | private def partTwo(input: String): Int = 27 | val dontPattern: Regex = """don't\(\)""".r 28 | val doPattern: Regex = """do\(\)""".r 29 | 30 | var str = input 31 | var end = false 32 | while 33 | !end 34 | do 35 | dontPattern.findFirstMatchIn(str) match 36 | case Some(dontMatch) => { 37 | doPattern.findFirstMatchIn(str.substring(dontMatch.end)) match 38 | case Some(doMatch) => { 39 | str = str.substring(0, dontMatch.start) + str.substring(dontMatch.end + doMatch.end) 40 | } 41 | case None => { 42 | str = str.substring(0, dontMatch.start) 43 | end = true 44 | } 45 | } 46 | case None => end = true 47 | 48 | partOne(str) 49 | -------------------------------------------------------------------------------- /day5/app/Main.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import qualified Data.List as List 4 | import Text.Regex.Base 5 | import Text.Regex.PCRE 6 | import qualified Data.Text as T 7 | 8 | main :: IO () 9 | main = do 10 | contents <- readFile "data" 11 | let result1 = partOne contents 12 | putStrLn $ "Part 1: " ++ (show result1) 13 | let result2 = partTwo contents 14 | putStrLn $ "Part 2: " ++ (show result2) 15 | 16 | type Rule = (Int, Int) 17 | 18 | partOne :: String -> Int 19 | partOne contents = 20 | let 21 | (rules, lines) = parseFile contents 22 | in 23 | sum $ map getMiddleNumber $ filter (checkOrderRules rules) lines 24 | 25 | partTwo :: String -> Int 26 | partTwo contents = 27 | let 28 | (rules, lines) = parseFile contents 29 | invalidLines = filter (not . checkOrderRules rules) lines 30 | in 31 | sum $ map (getMiddleNumber . (fixLine rules)) invalidLines 32 | 33 | fixLine :: [Rule] -> [Int] -> [Int] 34 | fixLine _ [] = [] 35 | fixLine rules line = 36 | let 37 | cleanedRules = filter (\x -> elem (fst x) line) rules 38 | leftSide = map fst cleanedRules 39 | rightSide = map snd cleanedRules 40 | freeToUse = filter (\x -> notElem x rightSide) line 41 | selectedNum = head freeToUse 42 | newLine = filter (\x -> x /= selectedNum) line 43 | in 44 | selectedNum:(fixLine cleanedRules newLine) 45 | 46 | checkOrderRules :: [Rule] -> [Int] -> Bool 47 | checkOrderRules rules nums = 48 | all (checkOrderRule nums) rules 49 | 50 | checkOrderRule :: [Int] -> Rule -> Bool 51 | checkOrderRule nums rule = 52 | let 53 | (before, after) = rule 54 | a = List.elemIndex before nums 55 | b = List.elemIndex after nums 56 | in 57 | case (a, b) of 58 | (Just a, Just b) -> a < b 59 | _ -> True 60 | 61 | getMiddleNumber :: [Int] -> Int 62 | getMiddleNumber nums = 63 | nums !! index 64 | where 65 | index = (length nums) `div` 2 66 | 67 | parseFile :: String -> ([Rule], [[Int]]) 68 | parseFile contents = 69 | let 70 | rulesRegex = (contents =~ "([0-9]+)\\|([0-9]+)" :: [[String]]) 71 | numsRule = getAllTextMatches $ (contents =~ "([0-9]+,)+[0-9]+") :: [String] 72 | rules = map (\x -> (read $ x !! 1, read $ x !! 2)) rulesRegex :: [Rule] 73 | numsText = map (T.splitOn (T.pack ",") . T.pack) numsRule :: [[T.Text]] 74 | numsStr = map (map T.unpack) numsText 75 | nums = map (map read) numsStr 76 | in 77 | (rules, nums) 78 | -------------------------------------------------------------------------------- /day4/day4.cabal: -------------------------------------------------------------------------------- 1 | cabal-version: 3.0 2 | -- The cabal-version field refers to the version of the .cabal specification, 3 | -- and can be different from the cabal-install (the tool) version and the 4 | -- Cabal (the library) version you are using. As such, the Cabal (the library) 5 | -- version used must be equal or greater than the version stated in this field. 6 | -- Starting from the specification version 2.2, the cabal-version field must be 7 | -- the first thing in the cabal file. 8 | 9 | -- Initial package description 'day4' generated by 10 | -- 'cabal init'. For further documentation, see: 11 | -- http://haskell.org/cabal/users-guide/ 12 | -- 13 | -- The name of the package. 14 | name: day4 15 | 16 | -- The package version. 17 | -- See the Haskell package versioning policy (PVP) for standards 18 | -- guiding when and how versions should be incremented. 19 | -- https://pvp.haskell.org 20 | -- PVP summary: +-+------- breaking API changes 21 | -- | | +----- non-breaking API additions 22 | -- | | | +--- code changes with no API change 23 | version: 0.1.0.0 24 | 25 | -- A short (one-line) description of the package. 26 | -- synopsis: 27 | 28 | -- A longer description of the package. 29 | -- description: 30 | 31 | -- The license under which the package is released. 32 | license: BSD-3-Clause 33 | 34 | -- The file containing the license text. 35 | license-file: LICENSE 36 | 37 | -- The package author(s). 38 | author: Adrián Arroyo Calle 39 | 40 | -- An email address to which users can send suggestions, bug reports, and patches. 41 | maintainer: 42 | 43 | -- A copyright notice. 44 | -- copyright: 45 | build-type: Simple 46 | 47 | -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. 48 | extra-doc-files: CHANGELOG.md 49 | 50 | -- Extra source files to be distributed with the package, such as examples, or a tutorial module. 51 | -- extra-source-files: 52 | 53 | common warnings 54 | ghc-options: -Wall 55 | 56 | executable day4 57 | -- Import common warning flags. 58 | import: warnings 59 | 60 | -- .hs or .lhs file containing the Main module. 61 | main-is: Main.hs 62 | 63 | -- Modules included in this executable, other than Main. 64 | -- other-modules: 65 | 66 | -- LANGUAGE extensions used by modules in this package. 67 | -- other-extensions: 68 | 69 | -- Other library packages from which modules are imported. 70 | build-depends: base ^>=4.17.2.1, containers 71 | 72 | -- Directories containing source files. 73 | hs-source-dirs: app 74 | 75 | -- Base language which the package is written in. 76 | default-language: Haskell2010 77 | -------------------------------------------------------------------------------- /day2/day2.cabal: -------------------------------------------------------------------------------- 1 | cabal-version: 3.0 2 | -- The cabal-version field refers to the version of the .cabal specification, 3 | -- and can be different from the cabal-install (the tool) version and the 4 | -- Cabal (the library) version you are using. As such, the Cabal (the library) 5 | -- version used must be equal or greater than the version stated in this field. 6 | -- Starting from the specification version 2.2, the cabal-version field must be 7 | -- the first thing in the cabal file. 8 | 9 | -- Initial package description 'day2' generated by 10 | -- 'cabal init'. For further documentation, see: 11 | -- http://haskell.org/cabal/users-guide/ 12 | -- 13 | -- The name of the package. 14 | name: day2 15 | 16 | -- The package version. 17 | -- See the Haskell package versioning policy (PVP) for standards 18 | -- guiding when and how versions should be incremented. 19 | -- https://pvp.haskell.org 20 | -- PVP summary: +-+------- breaking API changes 21 | -- | | +----- non-breaking API additions 22 | -- | | | +--- code changes with no API change 23 | version: 0.1.0.0 24 | 25 | -- A short (one-line) description of the package. 26 | -- synopsis: 27 | 28 | -- A longer description of the package. 29 | -- description: 30 | 31 | -- The license under which the package is released. 32 | license: BSD-3-Clause 33 | 34 | -- The file containing the license text. 35 | license-file: LICENSE 36 | 37 | -- The package author(s). 38 | author: Adrián Arroyo Calle 39 | 40 | -- An email address to which users can send suggestions, bug reports, and patches. 41 | maintainer: 42 | 43 | -- A copyright notice. 44 | -- copyright: 45 | build-type: Simple 46 | 47 | -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. 48 | extra-doc-files: CHANGELOG.md 49 | 50 | -- Extra source files to be distributed with the package, such as examples, or a tutorial module. 51 | -- extra-source-files: 52 | 53 | common warnings 54 | ghc-options: -Wall 55 | 56 | executable day2 57 | -- Import common warning flags. 58 | import: warnings 59 | 60 | -- .hs or .lhs file containing the Main module. 61 | main-is: Main.hs 62 | 63 | -- Modules included in this executable, other than Main. 64 | -- other-modules: 65 | 66 | -- LANGUAGE extensions used by modules in this package. 67 | -- other-extensions: 68 | 69 | -- Other library packages from which modules are imported. 70 | build-depends: base ^>=4.17.2.1, regex-posix ^>=0.96.0.0 71 | 72 | -- Directories containing source files. 73 | hs-source-dirs: app 74 | 75 | -- Base language which the package is written in. 76 | default-language: Haskell2010 77 | -------------------------------------------------------------------------------- /day5/day5.cabal: -------------------------------------------------------------------------------- 1 | cabal-version: 3.0 2 | -- The cabal-version field refers to the version of the .cabal specification, 3 | -- and can be different from the cabal-install (the tool) version and the 4 | -- Cabal (the library) version you are using. As such, the Cabal (the library) 5 | -- version used must be equal or greater than the version stated in this field. 6 | -- Starting from the specification version 2.2, the cabal-version field must be 7 | -- the first thing in the cabal file. 8 | 9 | -- Initial package description 'day5' generated by 10 | -- 'cabal init'. For further documentation, see: 11 | -- http://haskell.org/cabal/users-guide/ 12 | -- 13 | -- The name of the package. 14 | name: day5 15 | 16 | -- The package version. 17 | -- See the Haskell package versioning policy (PVP) for standards 18 | -- guiding when and how versions should be incremented. 19 | -- https://pvp.haskell.org 20 | -- PVP summary: +-+------- breaking API changes 21 | -- | | +----- non-breaking API additions 22 | -- | | | +--- code changes with no API change 23 | version: 0.1.0.0 24 | 25 | -- A short (one-line) description of the package. 26 | -- synopsis: 27 | 28 | -- A longer description of the package. 29 | -- description: 30 | 31 | -- The license under which the package is released. 32 | license: BSD-3-Clause 33 | 34 | -- The file containing the license text. 35 | license-file: LICENSE 36 | 37 | -- The package author(s). 38 | author: Adrián Arroyo Calle 39 | 40 | -- An email address to which users can send suggestions, bug reports, and patches. 41 | maintainer: 42 | 43 | -- A copyright notice. 44 | -- copyright: 45 | build-type: Simple 46 | 47 | -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. 48 | extra-doc-files: CHANGELOG.md 49 | 50 | -- Extra source files to be distributed with the package, such as examples, or a tutorial module. 51 | -- extra-source-files: 52 | 53 | common warnings 54 | ghc-options: -Wall 55 | 56 | executable day5 57 | -- Import common warning flags. 58 | import: warnings 59 | 60 | -- .hs or .lhs file containing the Main module. 61 | main-is: Main.hs 62 | 63 | -- Modules included in this executable, other than Main. 64 | -- other-modules: 65 | 66 | -- LANGUAGE extensions used by modules in this package. 67 | -- other-extensions: 68 | 69 | -- Other library packages from which modules are imported. 70 | build-depends: base ^>=4.17.2.1, regex-pcre, regex-base, text 71 | 72 | -- Directories containing source files. 73 | hs-source-dirs: app 74 | 75 | -- Base language which the package is written in. 76 | default-language: Haskell2010 77 | -------------------------------------------------------------------------------- /day4/app/Main.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Data.Foldable (toList) 4 | import Data.Map.Strict (Map) 5 | import qualified Data.Map.Strict as Map 6 | import Data.Sequence (Seq) 7 | import qualified Data.Sequence as Seq 8 | 9 | main :: IO () 10 | main = do 11 | contents <- readFile "data" 12 | let result1 = partOne contents 13 | putStrLn $ "Part 1: " ++ (show result1) 14 | let result2 = partTwo contents 15 | putStrLn $ "Part 2: " ++ (show result2) 16 | 17 | type Pos = (Int, Int) 18 | 19 | partOne :: String -> Int 20 | partOne contents = 21 | let 22 | lineContents = Seq.fromList $ lines contents 23 | gridSeq = foldr1 (Seq.><) $ Seq.mapWithIndex (\i x -> lineIndex i x) lineContents 24 | grid = Map.fromList $ toList gridSeq 25 | in 26 | Map.foldr (+) 0 $ Map.mapWithKey (\k _ -> xmasAtPos grid k) grid 27 | 28 | lineIndex :: Int -> String -> Seq (Pos, Char) 29 | lineIndex y str = 30 | let 31 | chars = Seq.fromList str 32 | in 33 | Seq.mapWithIndex (\i x -> ((i, y), x)) chars 34 | 35 | 36 | partTwo :: String -> Int 37 | partTwo contents = 38 | let 39 | lineContents = Seq.fromList $ lines contents 40 | gridSeq = foldr1 (Seq.><) $ Seq.mapWithIndex (\i x -> lineIndex i x) lineContents 41 | grid = Map.fromList $ toList gridSeq 42 | in 43 | length $ Map.filter id $ Map.mapWithKey (\k _ -> crossMasAtPos grid k) grid 44 | 45 | crossMasAtPos :: Map Pos Char -> Pos -> Bool 46 | crossMasAtPos grid pos = 47 | if cellContent == Just 'M' then 48 | isLetterAt grid (x+1, y+1) 'A' && isLetterAt grid (x+2, y+2) 'S' && ((isLetterAt grid (x, y+2) 'S' && isLetterAt grid (x+2, y) 'M') || (isLetterAt grid (x, y+2) 'M' && isLetterAt grid (x+2, y) 'S')) 49 | else if cellContent == Just 'S' then 50 | isLetterAt grid (x+1, y+1) 'A' && isLetterAt grid (x+2, y+2) 'M' && ((isLetterAt grid (x, y+2) 'M' && isLetterAt grid (x+2, y) 'S') || (isLetterAt grid (x, y+2) 'S' && isLetterAt grid (x+2, y) 'M')) 51 | else 52 | False 53 | where 54 | (x, y) = pos 55 | cellContent = Map.lookup pos grid 56 | 57 | isLetterAt :: Map Pos Char -> Pos -> Char -> Bool 58 | isLetterAt grid pos x = Map.lookup pos grid == Just x 59 | 60 | xmasAtPos :: Map Pos Char -> Pos -> Int 61 | xmasAtPos grid pos = 62 | if Map.lookup pos grid == Just 'X' then 63 | length $ filter id [xmasUp, xmasDown, xmasRight, xmasLeft, xmasUpLeft, xmasUpRight, xmasDownLeft, xmasDownRight] 64 | else 65 | 0 66 | where 67 | (x, y) = pos 68 | xmasUp = xmasStr grid pos (\(x, y) -> (x, y - 1)) 69 | xmasDown = xmasStr grid pos (\(x, y) -> (x, y + 1)) 70 | xmasRight = xmasStr grid pos (\(x, y) -> (x + 1, y)) 71 | xmasLeft = xmasStr grid pos (\(x, y) -> (x - 1, y)) 72 | xmasUpLeft = xmasStr grid pos (\(x, y) -> (x - 1, y - 1)) 73 | xmasUpRight = xmasStr grid pos (\(x, y) -> (x + 1, y - 1)) 74 | xmasDownLeft = xmasStr grid pos (\(x, y) -> (x - 1, y + 1)) 75 | xmasDownRight = xmasStr grid pos (\(x, y) -> (x + 1, y + 1)) 76 | 77 | 78 | xmasStr :: Map Pos Char -> Pos -> (Pos -> Pos) -> Bool 79 | xmasStr grid pos fPos = 80 | xmasStr' "XMAS" grid pos fPos 81 | 82 | xmasStr' :: String -> Map Pos Char -> Pos -> (Pos -> Pos) -> Bool 83 | xmasStr' [] _ _ _ = True 84 | xmasStr' (x:xs) grid pos fPos = 85 | if Map.lookup pos grid == Just x then 86 | xmasStr' xs grid (fPos pos) fPos 87 | else 88 | False 89 | -------------------------------------------------------------------------------- /day3/src/main/resources/input: -------------------------------------------------------------------------------- 1 | select(){,(where()+-mul(514,727);:]]what():^*from(764,547) mul(550,305)$^^%>select(587,376)mul(94,564)select()when(633,175)[[mul(302,490)$-}&**+mul(335,535)@select()>select()mul(241,166)when(800,629)mul(758,530)',^ &!~%/#mul(938,70)?&!from();mul(412,287)}/mul(230,620)(~select()what()select()'@mul(410,577)$mul(720,516)-mul(373,78)when()!^:@{)mul(793,973)who()when()mul(85,246)>what()}[#[@!^/mul(396,22)@when()-;:':>}mul(515,670)<[mul(38,415)?~select()why()^when()*#+($do()']select()>:^/when()^mul(440,923)@mul(48,816)mul(370,665)@*>who()^,when()mul(155,426) mul(132,914)^%select()&when()/from()(+}mul(296,176)mul(361,479)%{;!,'who()where():mul(506,495)#who()&%< ^mul(481,87))&!;mul(541,563)%don't(){}'-),from()$mul(495,427)^when()mul(640,499)select()}:] )%+()mul(967,918)?when()select()<{/who()what()mul(505,225)(mul(90,482)>!from()when()#do()mul(620,841):who()!mul(719,850)where()-)mul(931,185)?;select()]@,why()%]mul(39,103)mul(687,103)$%];how(337,314)[}$-when()mul(282,494):;!where(188,779);who()mul(342,554)<^who()(why()where()who(345,491)%mul(407,74)why()&}'%'mul(324,781)mul(90,925):from()mul(828,16)mul(438,549){what()>$why()*what(35,607)mulwho()mul(91,548)>,what()select()]&how()@mul(384,93!select(),where()$mul(835,662)@{don't():#<^/-+mul(489,462)>>where(){why()where()---when()mul(53,461)/~?mul(273,777)mul(119,879)+@'when()-mul(585,949)?['when()from(946,632)mul(22,105)>-:how())from();mul(439,876)?mulwho()@who()when()<@{-mul(111,687)$&mul(432,628)%*,{when()mul(287,508)'-select()}don't()/#~-@from()[:#mul(111,655)%: &;mul(518,391)don't()&mul(197,749)@who()*mul(935,21)+> who()why()mul(299,881)who()]@+%/from()[?do();{+[why()$select()#mul(264,731)]'select()what();+who()mul(713,161)where(931,649))mul(360,529)}where()!;]how()how()mul(619,728)how()<%}+}mul(420,324);{!from();mul;)>mul(144,181)who()}?~where():who()${ mul(261,691),why() /+mul(189,450) 2 | +when()%^]]/when()~@mul(533,22)mul(231,586)mul(107,724)!@mul(504who()@}when(291,528)mul(691,859)/}#mul(726,544)from()[>>what()^?^from(762,977)mul(67,280)(who()^mul(586,844)}how()how()+where(),mul(886,320)#from(691,802)mul(376,296)'why()[@}how()#why(530,714)?>mul(791,363)?what()$${@why()>+mul(133,626))why()&}what(){%(mul(474,459)what()where()(^mul(311,372)mul(243,118)where()@mul(302,760):{who()-'{+mul(145,293)}why();how());$]mul(652,761%? ;]:@mul(259,51)@>'mul(474,995){don't():}*mul(309,511)?select();(mul(553,164)]how(){when()mul(556,560/~when(464,361),^<#[/&do()when()&who()*mul(22,727)from()):who()when()}mul(367,34/when()where()mul(226,816)mul(421,33'(,(#, ?who()do()%;+-:-mul(99,868)#{[why()who(504,690)?mul(119,337)+,mul(250,122))%#%mul(708,536)>select();from()mul(480,332)}&what(423,278)mul(891,459)}mul(852,128)mul(418,844)~select()[{when()(mul(69,312);!)where(419,852)<:*@-don't()what()!$-;{mul(91,636)-when()select()~from()(&mul(894,19)how()]@,[do()#,what()'@mul(116,57)why()from(),@-?mul(651,74)]what(704,54)how()<$mul(169,494) )from()$~-mul(44,491)$mul(29,368)'why()+-+mul(961,385)>who()select(137,499)mul(586,30)$%when(765,538)?why()(mul(378,568)}select()[:[%?$from()don't();mul(375,803)#']/@/^}*where(184,703)mul(21,508)>;+,mul(921,355)};mul(594,553@%])mul(793,439)]from(599,582)mul(982,538)}//^;how()~)'from()don't()~&who()<+#+mul(386,116)>/~who()mul(373,106)+#!do()(&-select(),+~;~mul(59,223)mul(233,653)mul(547,404)?where()~%don't()}}select() from()@] from()mul(150,196) ]}(>mul(514,824)where()+mul(332,418) 3 | />'^')what()mul(590,783)?$when()mul(55,422)from()~]select(198,113)from():}don't()mul(436,985)^:select()from()@//don't()/mul(675,976)$from(),!&]#*&don't()*[#how()~/*mul(172,297)<-{,select()};mul(866,305)$mul(938,509)+>mul(100,651)%where()how(223,719)/){!!;(mul(163,66)+''when()mul(217,127)^},(why()how()what()]who()mul(39,897)>/(mul(966,889)-]'}{,+,!$$why()from()mul(338,824)where()/&;mul(230,684)@'where(354,854)- )%when()mul(288,730){from()){}where()mul(124^}'(&don't()mul(688,399)from()++[how()why()mul(136,861who()!?#select()!]where()!do()&how()where()when()mul(968,380)'-$select()why()&:;mul(906>select()^~who())>:*mul(433,704)&why()#who()%@;what()>;mul(848,947) from(497,742)?select()~mul(590,692)why()* ,(<<)where()*mul(102,487)when()]where()>*when()!mul(406,710)mul(962,153)who()who()what()+&from()mul(419,854)$/mul(201,493)from()-)select()'^:[!;mul(779,883)why()why()}?why()(don't()what()]%~{mul(966,261)how()[when())^when()]mul(513,694)/*:when()select()who()'mul$?++~?:$mul(657,498)$ &why()mul(310,762)^+what()~,what()why()why()#}mul(320,448)%mul(886,159)(]what()?'@why():[mul(415@who()$what(){select()who())mul(912,558)select()where()%'why():mul(784,109)-&:-]mul(354,211):*#~mul(637,881),$from()mul(947,709)what():,'mul(284,267)&from()mul(259,860)/^],&(when()when()^mul@select() how()!mul(462,151)~,)where()mul(7,166)**what()<~mul(137,598)^]~>mul(561,283)*@ ;select()mul(262,658)who()<,-what()/-why()mul'$;;-]#why()>mul(510,757)$what()who()>mul(139,401)where()^#&/*mul(332,919)>?how()]when()/mul(218,127)[+mul(504,583)why()$>^mul(649,222)@?don't()from()&what())&'^mul(878,444),,mul(340,684)when()'why()when()?why()mul(852,617)mul(569,36)~(select():>~&/when()@do()why()from()>who()where()mul(93,146)(;why(863,117)mul(681,428);#mul)$from()how())?{] mul(793,537)where() @~?++?when()why()mul(163,958)select()}who()mul(540,501)$when()#who()/mul(331,537)[>~why()what(395,317)[)[mul(928,496):mul(127,943)$>mul(18,669)?&mul(443,860)when()!;;&select()*mul(624,669)[}:,*>]mul(941,338)?%where()((how();<~when()mul(483,529){)/'+'~$mul(254,159)when():when()'*!??%mul(731,125)when(670,595)]^^from()'?]mul(912,606) ):[^do()#{;?-mul(851,526)>'!'mul(689,174) >?{)how()/;what()mul(919,455)]mul(320,219){#+) {mul(267,831)((from()&:[-from()mul(84,102)mul(291,186)/+}*mulhow()?who()-*mul(973,390) 4 | (~{$where()why(250,398)/how()&#!/usr/bin/perlwhy()-{{#^%>mul(772,422) 'how()}&)mul(184,89)$what()mul(376,816)when(),@#mul(949,642)'/+select() [mul(399,146)[~who(){;~ mul(526,131)when()mul(787,620)@~+?from()@-mul(310,482)}:$?what() ,mul(360,720)/why()why()#)^mul(561,462)+@:-{who()mul(403,894)from(),}{(('?!mul(555,514)?-:#&]$-mul(18,725)??mul(901,195)how()mul(814,623)$;~)select()/mul(4,986)#,{-]{!*~mul(833,296)/?mul(496,21why():@/#[what();mul(162,231))>~do()select();+*^?}?mul(38,18)?*who()&why()/who(479,558)from()%,mul(225,613)mul(494,841)'who()%@+{>&~mul(586,498) select()*!/]};-; /what()where()mul(614,161){select()where()+!what()/-mul(927,228)mul(432,16)when()?&+'^mul(539,745)]^when()what()mul(970,413)+<&:don't()$%mul(533,997))-mul(574,681)mul(978,225)&![who()why()(>mul(453,460)why()*+how()~!why()where()*-mul(840,804)>+mul(570,880)/>how()'-~*;+mul(367,248)$@what()mul(303,242)when()?>!!!-what()>%mul(547,184);when(300,185),^mul(196,377)~<{,[@from()when()from()'mul(727,421)>mul(199,873)],select()-+<&where()mul(962,772):what()/[${how()<*where()mul(534,770)select()/how()>*mul(356,156)((%where()}~how()#who()mul(801,644)from()mul#select(458,914)how()where()~}(}what()mul(273,584)who()mul(692,224)(>what()where();%,-mul(779,81)<[~who()!mul(786,30)]':mul(328,225)/when()#])(>:?:don't())*/mul(914,292)why()mul(83,290)[~mul(257,792),;+]*mul(949,612)*{;[-:]$^]mul(813,824)]/mul(5,572)}+don't():)from()*[>+(#who(422,860)mul(243,781)<-mul#<*<#&{?/'mul(579,115)(:mul(861,206)?)<&{>;mul(331,573)mul,^->,~>?who():from()mul(463,386)['{*>],when()?mul(740,88)]<[where()from()-]mul(685,334)+how()}how()^mul(973,106)select()$+mul(867,634)do()@-?mul(535,483)how()$[mul(161,41)]where(),#,mul(129,507)don't()who()what() mul(214,987)[ *^*[&mul(870,285)when()how())(+)+who()^how()how()'why(990,834)<@from(535,913)mul(741,712)why()when()who()@>-*!mul(296,759)$@where()mul(585,923)where()who()/why()]}>mul(163,233) ;;what(771,674)when()mul(553,949)select()when()'mul(545,530) 5 | ( !>{!-*}mul(646,888)]-?why()+mul(359,478)why()mul(186,893)]where()what()when() >select()mul(592,52)where()select()from()[select()from():~'/mul(164,308)what():>^)why()how()$&who()mul(377,499)why()((where()@~who(),mul(658,47)#how()+%from()'/select(287,448)]~mul(759,688)!@?]{(~mul(196,596)who()+mul(759,422)/@[#>where()mul)-how()>$&:$@},mul(861,458))mul(126,262)@;what(){};:don't()#mul(695,332)>what(),why()#++%select(){mul(471,679)^select()/mul(387,568)when()%(]*how()>do()' ^]?mul(777,56)>where()(why()select(14,295)mul(874,481)!from(){;~how()@mul(22,505))~who())when():&mul(395,566)-(~what(231,98)$$;$mul(326,815)>from() select()^who()#mul(189,720)what(),from()don't()>%+/mul(418,532)-;):don't())@:#!when():$[:<['mul(764,131)$:@&[from()%+~ mul(258,284)from(810,941)&how(232,473)mul(338,578);/select():mul(990,919)from()how()>[{!}mul(69,711),when()+do()}/[#who()*mul(907,255)?!}{]*mul(781,224)#select()mul(755,122))-:[',mul(863,596):how() who()%select()select()[what()do()+where()^+mul(722,58)^[,how()?#^ !:mul}&select()~{}mul(885,728)when()?mul(468,630)?where()from()select()>*~:don't()%#}$@-)mul(200,579)why() mul(10,435):)/;@{;mul(298,190)where()why()$ mul(9,631);where(7,826)@-don't():':;[,!@+mul(273,471)mul(325,690)mul(267,174)mul(339,952)}what()>)>@mul(307,862)do()why(335,510)]&>( mul(636,749)(-mul(592,773)!mul(2,50+'#mul(338,514)#;why()where()mul(127,711)@mul(146,911)mul(860,601)%select()mul(806,306)mul(410,847),:[mul(73,481)+don't()>}&)]mul(509,882)*/@~*where()-!mul)$do()where()?mul(308,113)/@?why()where()>%mul(970,425)~[$@'[mul(83,136)+<%who()who()who()^~where()mul(960,152)when()mul(714,401)how()?]from()*!what(313,652)mul(455,389)select()why()<-[)%:(%mul(929,53[-@%~;%]where()why()mul(293,806)from(258,940)[mul(959,603)!@)why()?{{$mul(744,798) '{}&<&?,mul(389,91)#'select()@,who()/$($-@,mul(792,652)how()mul&)!do())-}?~select()>mul(527,656)mul(220,657)who(453,708)mul&when()/when()+ how()how()%%@mul(62,191)'{%,mul(13,233)mul(780,237){from(817,212) when()mul(216,970)@what()}<: - ;mul(954,521)+mul(645,579)mul(695,53)%{},mul(927,488)$/$$what()&what()mul(815,350)](select(){;mul(650,656)&<:what(70,971)* mul(452,286)select()#&)when()+mul(438,390)>what()/mul(353,213) &from()~mul(920,652)~mul(971,287)don't()select()}/mul(4,595)where()-mul(332,353);>+mul(64,192)mul(33,846)}'where()(:mul(13,41)[@!^][(^$mul(728,587)what()>^&what()>who(73,62)why()where()mul(501,624)(%!mul(187,871),;>from()(, mul(563,884)]]/[who()mul(685,629){where()from()@@',who()why();mul(57,598)mul(799,387)why()?mul(963,99)*-!''when()mul(606,12)who()]how(), mul(615,921)/what()from(858,351){how()#who()@mul(379,934)~/{mul(871,792)<[+&mul(206,542)mul(154,161)-when():why()[mul(663,226)>from()from()?#mul(320,293)>select()!@;from()where()<^~mul(865,92)mul(834,118)select()#>mul(36,886) why()[>,,))select()mul(777,447)what()};<>how()from()*mul(942,312)how()]mul(810,261)select()@+>)'){mul(356,987){mul(33,198)[select()from()where()({mul(752,594)$why()who()>,?^where()->mul(478,705)why();select()from()when();]/]from()mul(878,617)@who()-who()[&&mul(554,90)#+:^do(), <{mul(978,459)/##[^ ]how(); mul(470,763)mul(342,6):&mul(192,104)from(220,224)[mul(309,253)$}mul(98,92)[mul(690,632)how()why()!>@mul(880,975)~/what()why()/*[mul(663,3)when()[@! )&,~^mul(965,150)#~},%^(]from()mul(503,640)::where()mul(146,66)&)~[mul(37,741)mul(714,547)/; 7 | -------------------------------------------------------------------------------- /day4/data: -------------------------------------------------------------------------------- 1 | SAXXAXMMSSSSSXMXMAMXSXMAMAMXXXAMXAXXMXMAXSXMMAMXXXMSSSSSMSSSSSSMSSMMXSAMMMMXSAMXSMMMSASASMXMASMMXSSMXSAMXSAMXMMXXXAMAMXMASXSSMSASXMXSMMMMXXM 2 | MASXMSMAXAAAMMMAMAMSAMSXSAMSMSMMXMSSMMSAAXASAMSAMXAAAMAMXAASAASAAAASMMASMAAAMXSXAMAASXSASXMSXMASAXAAAAASAXAXAXMMSXMASMMMMSAMXAMMXASXXAAMMMSM 3 | MAMAAAMXMMMMMAMAXASAMXAAMXAXAAXMAMXAAAMMXMAMAXSAAAMMSMAMMMXMMMMMMMMMAAAMMMMSSXXAMMMMXMMAMXAXASMMMSMMMSSMXSMSMSMAAAMAMAAMAMXMMXMASMMMSSMMSAAX 4 | MXSMMMSASXSSSSXSXXMAXMMSMMSMSMSMMSSSMMXASMSMXMSXSXXMAXAXXMXSXSASMSMSSMSSXSAMMMMSXSXXXAMXMAXSMMAAAAAAXXAMMAXAAAMMMXMAMSMMAMMMSXMAAAAAMAAAMSSS 5 | SMMMAXSXSAAAXAAXXXSAMXAAAXMXAAAASAMXAXMASAXASXMAXXMMMSXSXMSMASAXAAAXMAAXXMASAAMAXAAAASMSMSMSASXMSMSMMSAMMXXMMMSMXAMMXXXSASAAAAMSSSMSSMMMAAXA 6 | XAAXXASASMSMMMMMAXASAMXSAMXSMMSXMASMMMMMMXMMAASXMASMXSAAASAMAMMSSMSMMMMSMMXMXXMMMMMMMMAAAXAXMSXAAXAMASMMSMMSAAXXSXXSASAXAMMMMSMMAMAAAMMXMMSM 7 | SSMXSAMAMXXAMXAMMMAXXXAXXAMXXMMMXSMMMAAAMMSSSMMAMAMSAMMSMSAAXSAAAMXXXMAXAMXSSSMXXXAAXMSMSMMMXSMMMSXMAXAAAMASMSSXMAXMAMMMSMMMXXMMAMMSMMSAAXAX 8 | XAAMMMMXMAXAMSSSXMSMMMSMMSAMXMAMMXAXMXMXSAAAAASAMXXMXMXAXSXMAMMSSMMASMMXMMAXAASXXMMSMAXXXMXAXXAMXMMMSSMXMMAXMXXAMMMMMMSAMAMSSSXSXSAAAASXSSMS 9 | MMMMASMSMMSMMSMXMAXAXAMAAMAMXSXSAMMMSMMSMMSSMMXAXSMSMXSMXMAMMXAMXAXMAXAASXMMSMMSAAAAXSXSXAXSMSXMASAMXAAASMSSMMSMASXAAAMASXMAAAASAMMSMMSAMAXS 10 | MSSSMSAAXAAMMXXXXXSMMSSMMSAMAMAMXMAAAAXXAAAXASXSMSXMAXXXXXAMXMSSSXMASMSMSASAMAASMMXSXMAMAMMXAMXSXMSMMMMMSAAAMAXXAAMMSSMXMAMMSMSMAMMAMXMASMMS 11 | XAAAAMMMMSSSMMMSMMAMMAXXXXXMAXAMMSMSSSMSMMSMXMAMASXXXMAMMSXMAMXAMMSXMAXASAMASMMSXMXXAMXMAXAXMSMAMXXMAXSMMMMMMSSMSSXXAXXMAMMAMXMMAMXAXXSMMMAX 12 | MMMMMMAXMAMXMASAXSASMSSXSAMXSSMXAAMAAXMAXMAMSMMMMMASXMXXXAMXASMAMXSASMMMMMMMMAMXMSAMAMSSXSMMMAMXSASASMSAXXXXAXXMAAMAASASXSMXXAMMSSSXSASXMASM 13 | XAAMMSMSSSXMMXMXMSASAAXMASMXMAAMSMMSSSSSMMMXXAXSAMXMXXAMMASMMMMMMXMAMAMXAMAMSAMMAMXSAMAMASAMSMMAMMSAMASMMMXMXMMSMSMMSAMAAMMSSMSAXAAASMMAAAXA 14 | MSXSAAAAXAAMSSMMMMMMMMMSMMSAMMMMXAXMAMAAXXMASMMMSMSMXMXSMAMAAXMASAMAMAMSASAMMAMAMXASASMMAMAXAXMXSXMAMXMXAAXMMXAAXAXXAAMMSMAAAAMMSMMMMASMMMAS 15 | XAAMXMSMMSMMAAAASAMAXMASAASXSXXMSMMMAMSMMAMXXXAMXXAMXMAMMSSSMMSAXMMAXAXXXXMSMAXSXMXMMMXMAMMMASMSMXXSAMXXMSAMSASXSMSSSXMAXMMSXMMAXXXXMAMSAMXX 16 | MMSMMMAMAAAXSSMMXASMSMAXMMSMMMMMAAAXSXMAXMMAMSSMSSSSSMASXMAXMXMXSAXSSXSAAMXAMMMXASASXSSSMSAXAAXAMAMMAXMASXXXAAXAAAAXAMMMSXMMXAMSSMSMSMMSMMSS 17 | XAAMXSAMSSMMMMAMSMMXAMXSXAXAAAASXSMXMASMMAXAMAMXXAAAXXMMAMSMSAXMAMAXAMMMMXSASMAXMSASAAXAXSXMMSSSSXXSXMMMAMSMMSMSMMMSMXSAXMAXMMSMAAAXXAAMAMXX 18 | XSXSAMAMMMAMXAAMAMMSMSXAMMXSMMMSAXMASMMMSMMSMASMMMMMMMMSSMMASAMXMASMAMXAAXMAMMSMAMAMMMMSMSMSMAAMXMXAXXAXASAAXXAMASAXXAMASMMSAXAMMMMXMMMSSMMX 19 | MMAMXSMSASMSMSMSXSASXMAMXMAXMXMMMMMAMAAXAXAAMAMAMSMSMSMAAXMMMMXAXAXSAMSMSXMXMAXMXMXMASXMAMAAMMSMMAMSMSMSMSASXMAMAMMSMMMAMAXAXSMXSASXSMXMAAXX 20 | XMAMAAXSASAMAAXXMMMSAXAXAMXSAASAMXMMSSMSXSSXSSMSMAAMAAMSMMXSAASMMSMMXAXMAMSMMMSMMMMMAMMMAMSMSXXXAXAAAAXAAXXXMXMMXSMXMSMMSXMMXXMASXSAXMAMSMMA 21 | SXSSMSXMAMMMSMSAMXASMMMSMMAMMMSASXSAAAAMXMXAMXXXSMMMSMXAMAMMMMAMXMASMMXMSMMASAMXAAAMASMSMMXMMXMMSMSMSMSMSMSMSAMXMMMMXAAXXAXXSASASXMAMSAMASXM 22 | SAMXMMMMMMXMXXSXAXMXMAMAAAXMAXSAMAMMSMMMASXXXXXMASXXAMSSXSAXAMMXMXMMAXSMXAXXMASXSSSSMMMMMMSASAXAAMAXAAAXAXMAMMSXSASXSSSMXMAXSAMASMMMMXASASXS 23 | MXMASAAAAMAMMMMSSXMAXAXSSMSMMMMXMAMXMAXSMSXMXMASAMXSMXAMXMASMSMAXSXSSMSAXSMMSXMMAMAMAAAAAASAAAASASMSMSMMMSMSMAAAMASAXAAAAMMMMMMMMMAAXSMMASAS 24 | SASXMMSSMMASASAAMAMAMXMAAMAAMAAMSASAMSXSXSASXSAMASMMXMAXXXAAMAMMXSAAAAMAAXAASAMMAMXMSSSMSAMXMXMMAMXAMAXXXMAMMMMSMMMMMSMSXSAXAAMAAMSXXAXMAMMM 25 | SASXSAMXMSAXAMAXSSMAXSAMXSSSMMXMSASXSMASASAMMMXSSSMSAXMAMMXMSXSMAMMMMXMMMMAMSAMSSXSAMAXAMXMMSMXXMAXXMAXXMXMXXMAXAAAXAXXMXSASXSSSMXAMXSMMASMM 26 | MAMAMASAMXAXSMSMAAXSXXAXAAXAAXSAMXMMAMXMAMAMASAMXMAMSSMSMAAXSASMAMAXXAXXMASMSAMXAAMAMAMXMAAXMAMSASXSMSSMMAXMXMSSSMSMXSAMAMAXAAMXMSAMAMXSAXAX 27 | MMMSMAMASMMMXAXMXMMMMSMMASXSMMSMMSMSXMASAMAMSMASXMAMMMAAASXSMAMMMSASMMSXXXXAXAXMMMMMMMSSSMSMMMMSAMAAXAAASXSMAAXAAAMAAXAAAMMMMMMAMSAMXSAXMSSM 28 | XXAXMXMAMAXMMMMMAMXXAAASAXAAXXXMASXMXSASMSSXMXXMAXMMXMSMXAMXMAMAXAMAXSAMMSMXSMMSMSAAAXAAAMXAMAMSAMXMMSSXMAAXMSSSMMMMMXSSSXSAXAXAXXAMAMMMMAMA 29 | SMSSMSASMMMXAXAXAMAMSSXMMMSMMMXMASASXMASAAMAMSMXMMXSSMAMMAMSSMSXMAMSXMAMAAMAMXAAXMXSXXMSMMSMSAXSAMXMAXAMMMMMMXAAXXXAMAAAAASMSMSMMSAMXXAAMASX 30 | AXXAAAMAAAMSMSMSMSMMAMXAAMAAXMXMSSMMXMAMMMSXMAASXSAAASAXSAMXAMXMMXMMASAMSSMXSMMSXSAXAMMMMXAASMMXXMAMXXMAAXASMMXMMSMAASMMMMMXAAAAXMAMSXSXSXSX 31 | MXMMMMXSSMMAXAMAMAMMMSXSAXSSMMAXAXXXXMMXSAMAMXSAAMMSMMMMSASXXMAMXSASAMAMAAXXXAMAAMAMXMAAXMMXMSAMXSSXSASXSAAAXMMSAXMSMXAASXXSMSSSXXMMMAXMMXSA 32 | XXMAMXXXMASMMMMASASMXXMASMXAASMSMMSMMMSMMMSMMMMMXMXAXXMAMMMMSMMMASAMMMMMMSMXMMMMSMAMASMSMXXMAMMAXAAASAMAAMSMAMXMAXXXMSMMMMAMXAMMMSMAMAMAMAMM 33 | MMSAMXXMMMAAASMMSASAMXMAMXXXMMAAXAAAAAAXMAXMAAAXMSXSMMMSSMSAMASMAMSMAASAMAXAAASXMMASXSXAAMXSMSASAMMMMMMXMMMMMXAMAMSXMASAAAAAMAXAAAMXMAMAMASX 34 | XASMSMSMASMXMXAXMAMAMMSMSASMSMSMMSSMMSMSMAXSMMSMAXMAAAAXXMAXMAMMAMAMSMSASASMSMSASXXMASAMSSMSASMAAXMXAAXAMXXASAMMAMMASAXSSSXSMSSMMSSMSSSMSASX 35 | MXSAAAASMSMXXMAMSMSSMAAAMAMAAXMAMAXAXMASMMXSAAXAMMMSSMSMMXSAMAXXAXMXMASAMXSAXMXAMXSMMMSMAXAMAMXMAMXSMSXSSMMASAMSXMSAMMXMXMAXAMXMAAAXMAAXMASM 36 | XMXMMSMSXMAASXMMSMAMMSMSMSMSMMMAMASMMMSMAMAXMMMSAMAAXMXMSAMASASXSSXMSAMXMASAMSMAMAXAMAXMXMSMAMMXMSXMAMXMAXXAMAMXMAAAXMAXAMXMAMAMMMMMMMMMSASA 37 | XXAMXMMXMMMMXAAAXMAMMXAAAAAAXAMAMXSXXXAMAMMSSMAXAMSSMSAMMASXMAMAXAAXMSSXAAMAAXSXMMSAMSSSSMAMAXXASMAMAMASAMMSSXMAMXXMMSMSSMMMMMSSSXSAAMXXMASM 38 | MMXSAMXAMXAAXXMMSSSSMMMMSMSMSSXMSMSASXMSXSAAXMASAMXAXSAMSAMXMSMSMMXMAAXAMXSMMMMXAMMXMAXMASMSSSXMXXAMAXXMXMAMMAMXSMXAXXMAMXAAASXAAXSSMMAXMXMX 39 | AAXSASMMSSMSXSAAAMMAMSSMXXMMAMAAAAXASAXAXMMSMXMAMSSSMSMMMMSAXAAMAXAMMMSXAMXXAAMSSMSAMMSSMMMAAAMSMSSSXXXAXMXXXAMSXAMSASMSSXSMSMMMMMXAMSMSMSAS 40 | MSXMASXMAAMAASAMMMXAMXAMSMMMASMMMSMAMMMSMMAXMASAMXAAAXXAXMMMMMSMXMXXAXAMXMASXSAAAASAMXMAASMMMMMAAMAXMASMMMMSMMSXASAMAXXMAMXSMMSSSMSMMAAAAMAM 41 | SMXMAMAMSSMMMMXMASXSSSMMASXMASAMXXAMAXAAXMAMXAMMMMAMMMSSSMMSAMMMSMMSXSMAAMXSAMMMMMMAMMSSMMAMXXSMSMAMSASAAAAAAXAXMXAMMMMMXXMASAAAAASXXMSMMMAM 42 | AAAMASXMAAAXSAMMXMAXAAMSASXMASAMSMXMXMXSSMSSMXSAAASAXXAAAAASASMAAAXSASASXSMMXMASAMSAMXAAMSAMXXXAXMAXMAXXMMXSSMMMXSAMXAXXXXMMMMMMMMMMAMAXASAS 43 | MXMSAXAMSSMMXAMXSMSMMMMMXSAMXSXMASAMXSAXAMAAMASMMSXMXMMSMMMSMMMXMMMMAMAMASAMASXSMMMASMSSMSASXMMMMMSSMSMSMSXXMASAMXAMSSSMMSMAAXXXSAMAMSASXSAS 44 | XMXMMMXMMAMXMXMAXAXASMMMASAMAMASMSXSAMXSXMSSMMSSMXXMAMAAASASAXMASMMMAMAMXMAMASAMXAMSMMAMASAMXAAMAXMAAXMAAMMMMAMMSXMMXXAMXAMMMMXMMAMSAMXMXMMM 45 | MMAASXSSSMMAASMMMSMAMXAMASAMXSAMXMMMMMXMAXAAAAMAXMASXSASMMASAMMAXAASASASASXMXMMMMSSMASMMMMMMSSMSMSSMMMSMSMAAMXSAMMAXSSMMSMSASMSMSAMXMXMMXSAM 46 | ASMSMAMAMXMXSXAAAAMAMXXMASAMXMASAMASMXSSSMSSMMSAMSMMMAMXAMMMMMMSMSMSASMSMSXSAMXMAMAXAMXMXASAMXAAAMXXXAAXAMSSSXSAXSAMMAMAAMSASAAAMXMXXXMAAMAS 47 | MXMAXXMAMMXXXMSMSXSASXSMAMAMAMXXAXSAMXMAAXMAAAMAXAAAMMASMMSAXXXAAMAMXXXMAMMAMSMSMSAMXXAASXSXMASMMSMMMSSXMAXAXMMMMMAXSAMSSMMAMMMMMMSAMXMMXSAM 48 | MAMAAMSSSMXSXAXMXMMAMAMMSMSMSXMSAMAMSMMMMMSXMMSXSSSMSAMXXASXXXAMXMXMMAMXMSAAXAAAXMAMXMMMSAMMSAMXXAAAXMMMXMMMMXAAAXMMSAMAMASMMMMSSSMAAMSAMXAA 49 | MAMXSAAAAXASMXMASXSSMAMAXAAAXAAMAMXXMAXASASAMAXAMXMASMXSMMXXMXMXMXXSSMXAXAXASMMMMSAMXMMASAAAMAXMSSSMSAMASXAAAMSXSMSMSAMXSAMXAAAXMASXMASMXSXM 50 | XAXSMMSSSMAMMMMMMMAXMXXAXMMMMSXSAMSMSSMAMASMMSSSMSMAMXAXAAMSSSMAMXMAXMSSSMAXMXSXMSMSSSMASXMASMMMAAAAXXMASMSMXXMAXAAASXMAMMMSSMSMSMMMMAXAASAS 51 | MSSXAAMAMMSMSAAAAMMMMSMMXSAXMAXXASXMAXMXMAMXXAAXXXMMSMMSMMSAAXSXMAMAXMAMAXMXMASAMXAAAAMAMAXMAMXMASMMMSMXSXMASASMSSMXMMMMSMMAMAAAXXAXMAXMXMAM 52 | XXAMMMSAXXAASMSXSMXMAAAAAXMXSMMXXXAXAMMXMASXMMSMSSSMAAAAXXMMSMMMSXSMSMASXXXMMMSXMSMMSMMAMXMMASMMAXXAAXAAMAAMAAAXXASXMSMAAMMAMSMSSSSSSSXMMMSM 53 | XXAMXAMMSMMXMMXXXMAMXSSMSXSAMASASXXMSMMASASASXXAAAASXMMXMSAMXAAXXXAXXMAMAXMASAMAXXXXAASXSAAXAAXMASXMSSMMSAMAMSMMSAMXMAMMSXMAMXXMAAMMAMASXAAA 54 | SMMMXMMASXMXAASMMAMSAMXMAAMASAMMAMXXXASASASAMXMMMSMMXASAMSAMSSMMMSMASXSSMAMAMASXMMSSMXMASXSMSMXMASAAAMAAXASXMAMAMXMXSMSXAAMSSMASMMMMASMMMSSM 55 | XAAXSAMASMMSMMSASAMMASXMMSMXMMMXAMMMSXMASXMAMXAXAXMXSSMAXSAMXXAAAAMMXAMXAAMAMMMMASAMXAMMMMMAAXXMASMMMSMMXMMMXAMSAMXXMXMMSSMAMMAMSXXMAMAXXAXX 56 | MXMXMAMASAAXAXSXMASXASAMXMMSAMXSAMAAAXSAMXSSMXSMMSMAMMSSMMXXXSSSMXSSMSMASMSSXSASXMASMMXSAAMSMXMMXMXMASMMASAMMXMXXSXMSAXMAMXMAASAMXXMMSMMMMMA 57 | SSSMSSMMSMMXMMMASXMMMXMXAAMAXSASASMXSXMAXMAXMAMASXMASAAXAMSMMMAXAAXAAXAXMAXMASASASMMMAAMMXMXXASMXMXMASASASAMXMASMSAAMMSMXXAXXMAMAMXXAAMAAXAS 58 | XAAAAAAAMASXAAXXAMXAAAXSMSAMSMASAMAAXASMSSMMXASXMAXAMMMSXMAAASAMMXMMMMMMMSMMAMAMMMXAXMMSSSSMMMMAASASAMXMASAASMMSAMMMMSAMXSSSSXSXMXSMSXSSSSMA 59 | MSMMSMMMXAMMSSXMSSSSSMXAXAMXSMAMMMMMXAMXAMAMMXSXSMMMXSAMXSSSMMASXMXASASAAAAXXMXSASMMMSAXMAMXAAMSMMAMMSSMMMXMSAAMXMXSMSASAMMAXXMAMXAAAAMXMAMM 60 | XMAMXASAMSSMAXASAMXAAXSAMMSAMMSXXSSSSSMMXSAMSMMAAAAXAMAMXXAXASAMAMSASASMSMSXXXMSASASAMMSMMMMMAMAXMMMSAMXAAAXSMMSAMXSASAMXMMSMSSSMAMMMMMASAMX 61 | MSAMXXMAXXAMASXMASMMMMMAAXMXSAXSMSAMAAAXAMASXAMSMXAMMSAMXMAXXMAXAMMXMAMMMAMMMAAMXMAMSMXAAXAAAXSAMXAMMMSMMMMMXXAXASAMMMXMXMAMMAAAXAXXMASAMXSM 62 | ASMMSXSXMSMMASASXMXAMXSMMXXAMXSAMMAMSMMMSSMMMSMXXXXMXSASXMASMSSMXSAMMMSXMAMASXXSAMXMXXSSSMMSXMAMXSMMSMAMSSSSSMXSAMASXMMSMMASMMMMMMXMSXXAXXMX 63 | MXSAXMASAXXMMSAMMMXSXMXAMXMMSSMMMSSMAASAXAAMAMXXXSAMXSXXMASXAAXAXMMMAASAMXSXXAASXMMXMXMAMMMMASAMMASAXXAMAAXSAAAMMMMSAMSAXMAXXXAMASAMXMSMSMSM 64 | SAMXMSAMSAMXMMXMASMMMMSXMASXSXMXMAMSMSMMSSMSSMMMMMASAMXMXMAAMMMXMAASMMSASAMXMMMMAMAASMMAMAASXMAXSAMMSSSSMMMSMMAXAAMXAXMAMSXSMSXSASASAAAAAAAM 65 | MMMMXMAMMMAXXSMXSAMXAAMASASMMAASMSXSMAMMAMXAAAAXAMMXAMAMAMSMSMXSMSMSAASAMAMAMAXMASXMMAMXMXMSAMAMMASXMAAXXXMXMMSMSSMSAMXSMMASAAAMXMMMXSMSMMXS 66 | XAAMXSAMXXSSMAAMMXMMSMSMMMSAMXMXAMAMMMMMAMMSSMMSSSMXSAAXAXAAXAAAMXXSMMXXMAMAXXSSMSASXMMMSMMSXMAMXMAMMMMMMXAAXAAAMAMXAMAMAXAMMMMMASXMMAMXXMAS 67 | SSXSASAMMAMAAMSASASAXXAAAMSAMXMMXMAMXXSSSMAMAMAAAAMSASMSXSMSMMMSSMASXSSMSSSSSMAAASAMSXAAAAXSXSSSXMAXXXMAXMSMMMSMMAMSXMASAMXXXAAMAMAXMAXAAMAM 68 | XXAMXSSMSAXAMXXAXAMAMSSSMMMASXMAASXSAAXAXMXMAMMXSAMMAXMAMXAMAXAMAMAMMAAAAAAAAMSMMMMMSMMMSSMMAMMAMMSSXMSSXMASMAMASXMMXMXSMMMXSMSMSXMMSXMSSMSS 69 | MMXXMXMXSASMMMMSMSMAMXAMXAXAXAMSMSASMXMSMMSMASXXMMAMXMXMASXSAMXSAMASASMMMXMSMMAAMXMXMASAMMAMAMXXAAXXMMAAASASMASMMAAMSAMXAASXMAXXMASASAAMMAMX 70 | AXAMMXMMMAMXAAAXMASXSXSXSMSMSAMXMMAMXSAXAMAMASMMMMXMASMMAMMMMMMMASASMMAAAAMMMXXSXAAXSAMAXSAMXSXSMSXSAMMMMMAMMMXAXMMMMASMXMXAMAMASMMASMMMMAMS 71 | SSMMSAMAXMAMXMMMSASXMAXAAAAASXMMMMAMXMASMMXMASMAMAXSAMAMAMMAAAXXXMMXASMMMXSAMXMMXMSMMASMMXASXXAXAAASXSSSSMSMMMSMMMSASMMMXSXMMXSAMXMAMAAMXSSS 72 | XAAASAMAXXASMMSAMMXAMAMSMMMXMMMAXSXSXSAMXAMMMSMSMSMMASMSMSSSSSSXMASMMMAMXXMAMMSAMMAXSMMMAMSMMMXMXMMMAXAAAAAAAMAMXXMASAAXASAMAXMASMMXSMMSAMAX 73 | SMMMSXMASMMSAAMXMSSMMAXAMAXAAAXMXMMMMMASAASXASMMXMASAMAMMAMXXXAASMMAXSAMMXSSMXMAMXAXXMMMAMXAMXMMXXMMMMXMMSMSMSASAMMSMMMMASMMXXMXXAMAMMAXXMAM 74 | MAMMMMMASAASMMMSAXAMMMSSSSSSSMSMSXAXMSMMMSAMXSASASXMASXMMXSXSMSMMASMMMMSXASAXXSSMMSXMASMMXMAMXAAAMASXMMXXXMXXMMMAAXAAAXMAXXAMMMMMSMASAMXSMSM 75 | MAMAAXMAMMMMAMAMXMXMAXMMAAAAAAAASXMMMAMXXXMAXSAMXMMXMAMXAASXMAAMSASXAXASMMMMAXMAAXAASAMASMSSMSSSMSAMAXMASAMSXMAXXSSMSMXMMSMMSAAAAAMAMMMXSAAS 76 | XSSSSMSSMSAXAMXSSMSSMSAMMMMSMMMSMAMSSSSSMMXSAMXMXXXMXMSMMXSAMSMMMASMMMMSASAXMSAMXMMMMASAMXAAAAAAAMASMSMMMAXAASAMMMAAAXSMMAAASMSMXXSAAXMAMSMS 77 | AXAMXAAAASXSMXXMAXAAMSAMXXXXXAXXMXMAAMAAAAAMXSMMMMXSAAXAMXSAMXXXMAMAMAMXAMXSXSASMMXSSXMASMSMMMSMMMAMXAAMSMMSMMASXAMXMSSMSMSMMMXXAAMAMXMMXMSX 78 | MMAMAXMMMMAAAASMSMSSMSXMXMSSSSXSSSMMSMSMMMXSAMMAMSASMSMSMMSAMMMXMXSXSASMAMAAAMAMAXMAXXSXMMAXAXAAAXAMSSSMAAMXASXMXMASXXMASAMXXSAMSSSMMAXMASXM 79 | XSXMASMXMMXMMMSAMAMMAMMMMAXAAAASASXMAAXMMMMMMMXAMMASAAMMAMMXSAMMMAMXXAXXAMSMSMASMMMMMXSAXSXSSSSSMMSMMXMMSSMSXMMSMSXMXAMSMAMAXMAXXAAASXMSMSAM 80 | XASMAMAAMXMSAAMXMAMMXMAAASMMMMMMAMMSMXMXAAAAAMMSXMAMXMSSMMMASASAMASMMSMSXXXAXXAMAAXXXASMMMAMXAMAMXMAMMMAMMXMAXMAMMAMSMMMMMMXMSSMMMMMXAAAMSAM 81 | SMAMASMMSMASXSMMSXSAMSSSSXMAAMAMAMAXXXXSSXSSXSAXAMXSSMMMAAMMSAMMSASXAXAXSAMXMSMAMMMSMASXAMASMMMMXMSAMAMSXMASMMSMMSAMASAXASMXXAAXAAAXMXSMXSAM 82 | XXMSASAAXMXMAMAXAAMAXAAMMMMSXSASMXSAMXXMXAMXAMASMMAXMASXXMSAMAMXMASMMMMMMXXAXAMSMSASAMXXXSAMAAAXAXMASMSAASASXASAAMASAMMSXSSSMMSSSSMSAAXMAMXM 83 | AMXMASMMMSASAMXMXSXMMSXMASAMXSASASMSMSAAMXMMSMMMXMXXSAMSXSMASAMSMMMXAAAAXAMASMSAAMAMSAMXMMXXSSMSMXXAMXMXMMASMXMMMSMMMSMSAMMMAMAMMAMSMMMMASAM 84 | XXAMXMAAASASASXMXXXMAMASASAMAMXMXMAMMAMMMXSXAAMMMSMMMMAMMSSMMXXAAAMXMSSMSXSASXMMSMMMMMSXMASMMMASMSMXXMXXXMASAMXAAAXAXAAMXMAMAMAMMAMXAXMXASAS 85 | ASMSMSSMMMASXMAMASAMXMAMASAMMMMMMMMMMAMAXMASXSMAAAAXMMSMAMAMAMXMSMXAMXAMMXMASXXXXAXSAMXAMAMMAXMXAAASXMMMXMAMMMMMMXXASMMMSSSSMSXSSSSSMMSAASAM 86 | MMAAAMXMXMMMMXAMMXMMMMMMASAMXAAMXMAAMAMXSMXMMAMMXSAMXAAMMSAMASMXMAMSXSAAXXMAMMXMMAMMAXSXMMSMSSXMMMMMAAMMAXASAMASAMSAAXSAAXAAXXAAXMXAAAAMXMMM 87 | XMSMMMAXMASAXMXMMXSAMXASXMASXSXSASXSSXSAMXAXMASXAMAAMSMSASXSMSAMXAAXASXMSAMAMMXSAMSSSMSXMSAAXMASXMMSSSMSXSASASASAMASMXMMSMSMMMMMMMSSMMAXSAMX 88 | SAMAMSAMAXSASMSXSAMASMAMXSXMAMASMSAAAASXMSXSMAXMMMSAXAXMASXSMMAASMMMMMMSAXMAMMASASAAXAXAXXMSMSAMAXAMAMAMASXMAMASAMMAXASAXXMXAAAAAXXXSAXMMAMS 89 | XXSAMXAXSAMXMAAXMAMAAMAMMMMMAMAMXSMMMMMAXAXSMSSMMAMXMASASXMMAXAMXMAXAAXXMXMXSMAMXMMXMXSSMSMXAMXSAMXSAMAMMMASXMXSXMXMMXMASAMXSMSSSSMAAMMXSAMA 90 | MMMMMSAMMMSAMMMMXAMXXSASAAAMAMXSASMXSASXMMXMAMAXMASMXMAMMAMSSMMXSSSSSSSXXXSASMSMSXSXMXAXAAMMXMMXXMASXSXSASAMASAMXSMXMASXMAMMXAMXAAMSMXAXMMXM 91 | XXAMXAXXXASXSXMASAXMAXMMXSXMMXXMAXMASMXAAXAMSSMMSXSASMMASXMAMASAMXXAAAMAMXMASAAAMAAAXSAMSMMSXAMASMXMAMASAMASMMASAMMXMASASXMAMSMMMMMAMMSMSMSX 92 | MSSSMMXMMMSASAMXAMXMAXSSMMXSAASMMMMASMSSMMXSXAXAMXXXMASMMMMXSAMASXMMMMMXSAMAMMMSMXMXMMXMMAASXSMMXMAMMSAMMSXMXSAMXSAXMASAMAMXSMXMASMMSAAAAAAX 93 | XAAAMXAMXXMXMASMXMXMMSMAAAAMAMMAASMMSAAXAASXXMMMXMMSSMMAXXAMMMSMMMXAAXMASXSSSSXXMAMAMXSMMMMSAXXMASXSAMASXXXAXXSAMXMXMAMMSMMMMMSSMSAMMMSSMSMM 94 | MMSMMSXSAMSSMMMMSXMASAMXMMSSMXMXMMAMXMASXXSAXMAXAMXMAASMMMMSAXAMAMAXSSMXSAAAAMAMSXMASAMSAAMMXMASASMMMSXMMMMASAASMXSASXSMAAXXAAXAMMMMAMMXXAXA 95 | AXMAMXMAXSAASXAAMAAXSXXXAXMAMMSXXXAMMSMMXMMXMSSSMSAMMMMXMAASXMMSXXMSMXAXMXMMMMMAAXXXMXSAXMXXASXMMMAMXAAXAAXAXMAXXASASAMMSSMMMSSMMASMSSMASMMS 96 | MMXXSAMAMMMSMSMSMSSMMAMSAXMAMMAASMMSXAXMMXAAXXMAASMMSAMASXXSMSXMMMXAMXSMSAXAXASMMSAMXMMMASMXXSXXXXXMMSMMSSMMSAMXMXMAMXXAXAXMAAAAMAXAAAXAMMAM 97 | SAMMSMMASXXXXXMAMAAAMAMAASMMMMMSMAASMMMXAMSSSSMMMMAASXMASMAMXXAAMSMMSAXAXAXSSMSAAMMAMXAXMASMSXMASMSAMXXAXMAMXXMMXSMMMSMMSSMMMSSMSSMSMSMSSXSS 98 | ASAAMASASXMXXMASMSSMMXSMSMAXMAMAMMMMASMMXXAAAAXXMMMMSXMXSMAMMSMMMXASMXSSXSXXAMXMMSMSMSAXSAAMMAMAAXMASMMSSSSMMAMAAXAXAAAAXAAXAAAXXAAAAMAXSAMX 99 | MXSSSXMASASXXSAMXAAAAMXXAMAMMMSSXSAXAMAAXSMMMMSMSXAAXAMMSXXSXXMAMXMMAMXXMAMMAMSXMXAAMAAXMMXXMAMXXMMAAXSXAAMMMAMMXSAMSMSMXSMMMSAMXMMMMMSMXMAS 100 | XMAXMMSXXAXAASMSMSSMMASMSSSMSMAAAMSMSMMSXMASMXSAMXMXSAXAXMSMAMMASAXMMMMMXMSSSMSAAMMMMMSMXXXMXMXSAAMMMSMMMSMAMASAMMXMAAAXMMXXXXXMAXAXAAMASMAS 101 | SMSMMAMMMSMMMMASAMXMASAMXAXAAMMMSXXXAAXXASMMSAMMMMSAXMASMXXXAAXASXSAMXAMAXXAXASMMSMSAXMAXSMSAAASXMMSMAXAMXXMSAMMXMASMSMAASMSAMXSMSSSMMSAXMAS 102 | XAMAMSMSAAASXMAMAMSXMMASMAMSMSXAMAMXXMMMMSAAMXSMMXMASMMMAAMMMSMXXAAXSXMSSSMMMXMAXMASXSMXMAASMMMSAMAAMAXMMMAMXXXXAXMMAXXXXAAXASMAXAAAMAMXSMAS 103 | SXSAMXAMSSSMAMXXMMMAMSAMXMXXXXMASAMSMSAXASMXSAMASASXMMXMSXAXAAXAMSMMMXMAMXAXAXSXMMMMMXMAMMMMAMMMAMSMSSSMSMAMMMMSMXXMASXSAMAMMMXAMSSSMSSMMMAS 104 | AASXXMMMXXAMXMSMSMSAMMXSASAMXXMAXASAAMAMXMAMMMSAMXXXAXMAMXSMXXSMMAAAAAMAMXMAMMAXSAXAXASAXAXXAMSMSMXAAAAASMSSSMAAMASMMAASAXSXMSSMMAAAXMXMXXAM 105 | MMMMMXXSMXMMMXAAAAXMXSASXSXXMMMMMMMMSMXXSMSMAAMMSSSMMMSXMAMXSAAASMSMSXSMSSMMXAAMSSSMSXSASXSSSSXAXASMMMMMMAXAAXMMMAXAAMXMXMXAXAAAAMXMMMAMXMAS 106 | MSAXSAMASAAAXMMSMSMXXMASXMASXSMSAXMAMXXSAMXAMXSAAXXAAAXAMXMAASMMMMXMAXMAAAMSMMMMXAXAAAMAMAAXMAMXMAMAXMAXMMMSMMSSMMSSMSAAAAMSMSXMMSAMASAMAAXA 107 | SMMXMASAMMSMSAXMAMXXXMXMXMAMAAASMSAMXAXAMASAMAMMSXMMMSXSMAMMMMMMMAAMXMMMMSMXAMXXXAMMMSMSMMMMXMASMXMXSXXMAXAMAMAAAMAMXMMSMSAXXMASASMMMSASXSXA 108 | SAMASMMMSAMASMMMAMAMSAAMAMASXMMMXXXMMSMSXMXXMXSMMASXMXAMMAMMAXAAXXMXSAASMXMMSMMMXSAXSXAXSXXXSAMXAASAMASMSMAXAMXMMMAMMXMXAMAXMSAMASXSASAMAMAS 109 | MAMXSXAAMXMAMAASAMAMXASMMSASAAXXXMXSAXAMXMSMSAAAMAMAAXMMSSMSASXXMAAAXXMMMAMXAAAAXXXXXMXMMXMASASXSMSAMXMAXXSSMMSMSSSMSAAMMMAMMMMSAXMAAMXMXXAM 110 | SSMMMMMMSMMSMMMSMMSMMXMAXMASMMMMAMAMMSMSMSAAMSSMMXSMMMXXAXAMASAASMMMSASXSSSSSSMSSMSMSMAASAMMMMMMAXSMMXMXMMMAAAAAMAAASXSAAMXMXAMMASMSAMXAMMMM 111 | SAAMMAAMXAAMASAMMAMMMASXMMAXAMXAAMXSXMAAXSMMMXMMMMXMAAXMASMMXMMMMXAASAMXXAAXAMXXAAAAAXSASMSAAASAMXSXSXSXSSSMMSMSXSMMMAXMMSAMXAMMMMMAASXMXSAM 112 | SXMMSMSSSSMSAMASMASASASMSMMSAMSSMSXXAMMMMXMASAMAAMASMSMAXXXMSMMMSMXMSAMXMMMMMMMMMSMSMXMXMASXSMMMXXMAXAMAMAAXAMMAAXSXMXMXXSASAMSMMSMSASAXXAAS 113 | SXSXSAAAAXXMASXMMASAMXSAAAXXAMXAMAMMMSAASMSAMAXSASASMAAMMMSAAAXXAAAXSMMSAAXAAAAAXXAAXXXMSXSXMASXSSMSMAMXMSMMASMMMMAMSMMMMXAMMSAXMAXMASXMMSMM 114 | MAXAMMMMMMASAMMSXAMMMMMAMMMSSXSXMMXAASMMMAMMSXMXASXSMMSASAMSSMMMSSXXMAAXMXMSSSSSXMSMSMMMMMSAMXAXMXAAXAXAXAXXXAXSXMMSAAAMAMSMMSASXSSMAMMAAAAX 115 | MAMMMMMMAAMMMSASMSMSASMSXXXAXMSAMXMMMMAXMMMASAAMAMAMAAXXMAMXMAMAXAMXMMMSMSMXMMXMMXAXXAAAAXXXMSMSMMMMSMMMSSSSSSXMASXSMXMMXMAAXMAMXMAXAXMMMMSM 116 | MXSAAAXSSSXSXMASAXAMASAXAMMMXAMAAAAMSSSMSMXASMMMAMAMMMSAMSMAXAMXSASMAAAAAASAMXASAMSSMSSSSSXAMSAAXAAMAMAMAMXAXMASAMXXXSMASXSSMMMMSSMMSMMASMAM 117 | XAMXXMXMAAMMAMAMMMSMMMMMMMAMSXSAMXSXMAAAAXMXSAAXXSXSXMSMMXASMSSMSAMXSXSMSMMMMSAXSAMAAAAMAXMXAMSMMSXSAMMMMMMAMSAMXSMSMAMASMXAXXAAMAXXAASAXMAM 118 | MSSMMSMMMMSSMMASXAXXMAXAXSXXAMXXXMXMMMMXMMXMXMMSMAMXAXMMSXAMAXAAXXMAMMAMXXXAAMAMMSSMMMSMXMMSMXMMMMAMAMSAMSSSMXMMAAAAAMMXSXSMMSMSSSMSMMMMSSSM 119 | XMAMAAAMXAAAASAXMMXSMSXXMSMMASXMSMAAAAMSMMSMXMMAMAMSXMAAMMMMXSMMMMSAMXXSAXMMXSXXAAMAXMXMASAAXMAMAMXMAMMASAAAXMSMSMXMMXXAMMXAAXSAAXAAXASXMAXM 120 | MSAMSSMMMMSXMMMSASMSAMMXXMASAMMMASXSXXMAAAAAASXXSAXAASMMSXXAAXAAMAMMSXSMMSMMMSXMMSSSMSASXMMMSMXMASMSMSSMMMSMMAAXAXMSSMMMSAMMMMMXMMSMSASAMAMX 121 | MMXMXAMSSMMXXAXXMSASAMXSSSXMXSASAMXXMMSMSMMMMSAAMXSMAXAXAASMASXMSSMASXXAAXMXAMAMAXAAAXXSMSMMSAXSAMAAMMAMSMAMASXSXSAAAAXSAXXMMXSMMAMXMASXMMSS 122 | XSASMMMXAASMMMXSAMXMSMXAAMXMSXMMASAXAXSAAAXSAMXMMAMXMXSMSXXAMAMXAXMASMMXMXMMXSAMAMXMXMASAMXAMMMMASMSMSAMXSASXMXAAMMXSMMMASXAMAMAMASXMMMMXAAA 123 | SXAXASMMMMMAMAAMXMASXSMMSMSXSAXXMMXSXAMMMMAASXMSAMXSXAMXXAASMASAMXMASXAAMAMAMSXMXXXAXMMMSMMMMXXXAMXMASAMXSMSASMMSXSMMMAMAMMMMSSSMAMASMXAMMSS 124 | MMSMMASXMSSSMMSSXXXAAXXXAAXAMSSXSMAMMSSSSSMMXXAAAXAMMXSAMXXMXXMXMAMAMMSASAMAXSMSXAXSSMSAMXMSSMSMXSAMAMASXSMSAXXAMMMAXXXMAXMAAXAXMXSAMXMSMMAX 125 | XAXASAMXMXAAASAMMMMMMMMSMSMAMAMAASAXMAAXAAXXMMSMAMASMMMXMMXMXSAMXSMASAXXSXXMMSAMMMMMAAAAMXSAAAAAAXXMMSXAAMAMAMMXSASMMSMSASXMSSSXMAMXMAAAAMAS 126 | MSSMMSSSSMSMMXAXMAAAMAAXXMAXMAXSASMSMMSMSMMMXAAXXSXSMAMAASMMASASAMMXMXSMMMSMAMXMAXASXMSSMXMMSSMMXSAMASMMSMAMAXMASAMXAAAMAMAAAAMASAXAXXMMXMXS 127 | MAMXAMMAMAAAXSMMSMSMSMSMXMXXMSAMXXAXXMAMAXAXMSSSXSAMMASMSXAMAMAMASXMSAMAASAMXSASXSAXXXAMXXMXMXXAXSXMAXAXMASMXXSAMAMMSMSMASMMMXSASXMAMSAXSAMX 128 | SAMMMSMAMSMSAMAAAXAAAAAMMMAMMXXMSMSMXMASXMSAMXAXMMAMSMSXMXSMMXXMAMXAMASXMMMMMSASASMSMMAXMMXAXXMMXMMMMSMXSMMMXMMAXXMAAAXXAAMXMXMASAMAAMAMSAMS 129 | SASXSMMMXXAXAMMMMXMMMMMSAMSSMAASXAXAXSAMXMAMXMMMAMAMMXMASAXASAMMSSSMSAMAAXXAAMXMAMAAAXMMSASMXSASXSAAMAMXSAAXAMMSMMMSSMMMMSXAMXMASAMSSMSMMAMA 130 | SXMXAMAMSMMSMMSMSSMMSXMMXXMAMXXXMSMMMMASXSXMSASMSSSMXAXMMMXAMMXMXAAAMMMXMMSMXSMMXMMMMXASMASAASAMASMXXXSAMMMSXSAAAXAAAAXXMAXMSXMAXAMXXAXXXAXA 131 | SAMMXMAXAAAMAMSAAXMAMAXAMXXAMXSSSMMAASAMXSAASAAAAAAXSSMSASMXSXMMMMMMSMSAMXXAASAMASMAAXMMMAMXMMAMXMSSXSMASMMXAMXSMMMSSXMXMASMAMMXXAMSMXMMSMSM 132 | SAMSMXSSSMMSSMMMMSMASXMSSSMAMSAXAASXXSMSAMMMMAMMMMMMXMASASAASMMAAXAAAAMMMSXMXMAMASMMSSMAMSSMXSXMASASXASAMAXSMMAXAXMMMMMMXMAXMSAXXAMSXMAMAMAM 133 | SXMASAMAMXMAMAMAAAXASAAXAXMAMXMSMMMXAXXMMSSMSMXMMMMXXMAMAMMMMASXSSMMSSXMASASMSSMXXAAAAMMMMAMAXMMXMASXMASXXMMXMXSMMSAAAAMMMMMXMAXMSSMAMMSASMX 134 | XASASXSSMAMASAMMSSSSSMSMAMSSSXMAMAMMSMSXMAMXAAAMSASAMMSMASMXSAMXXAXAAAXMASMMAAMMMSMMSSMMASMMSAMXAMAMAXAMMSAXXXMMMASMSSXSAAASMMSMMXAAXMASASXS 135 | SXMASXXASXMASMSAAAXAMXAMXMAAMMSAXAXMAAMXMASXSMMXSASAXAXSXXAAASXMSMMMSSXXMXXMMMMAAAAXAAASASAXMASMSSMSSSXAASMMMMXAMXSAMAASMSMSAAMMMSXMMMXSAMMA 136 | MAMAMXSMMSMMSAMMSSMSSSSSMMMSMASMSMSSMSMAMAMAXAMXMXMMMSMMSMMMMMMAXXXMMMAAXMASASMMSSMMSMMMAXXMXXXXAAAXAXAMXMAAAMMXSAMMMMMMAXXSMMSAAXAMAXAMAMXM 137 | SAMAAXXXAXXMMMMAXAAAAXMMAAAMMMSAAAMXAMXXXSMMSXMXXXXAAXAASXXAAAXXMMSMAMXMMAAMASAMAMXMXSMMAMSMMMMMSMMMMMSXAXSSXXAXMXXMAXXMMMMXXAMMMSMMAMSSMMSX 138 | SXSMSMSMSSSMASMMSMMMSXSSSMSSMAMMMSMSMSSSMXAXSASMSMASMSMMSASMSXSMSMAMASMSSSSSMSAMMMMMAASAMXSAAAXXAMAXAAMAXXAAAMSMMMSSMMMAAAASMMSAMXAAXSAAMAMS 139 | MAXAXAAAAAAMAMAXXAXAAMMAMXAAMXSXXMASAAAAASAMSAMAAAXMAXMAXAMAXASAAAMSASMAAAAAASXMAAAMXMAXSAMXSSMSASMSMMSAMMMMMSXAAAXAAAASMSSXAASAMXMMSMMSMASA 140 | AMMXMSMMMSMMSSXMSMMMSSMAMMSXMASMSMSMMMSMMMXAMSMSMSXMXMSAMXMXMXMSMSXMASMMMMMMXMASMXSAMXXMSAMXXMMSAMXAMXMASXSSXXXSMSSMMMMXAMXMMMSXMXXMXMSMMXSX -------------------------------------------------------------------------------- /day5/data: -------------------------------------------------------------------------------- 1 | 57|32 2 | 67|77 3 | 67|23 4 | 54|27 5 | 54|35 6 | 54|99 7 | 27|63 8 | 27|83 9 | 27|14 10 | 27|47 11 | 83|96 12 | 83|25 13 | 83|45 14 | 83|33 15 | 83|82 16 | 46|81 17 | 46|67 18 | 46|27 19 | 46|72 20 | 46|21 21 | 46|73 22 | 85|54 23 | 85|99 24 | 85|98 25 | 85|28 26 | 85|53 27 | 85|27 28 | 85|63 29 | 76|69 30 | 76|21 31 | 76|54 32 | 76|48 33 | 76|92 34 | 76|81 35 | 76|62 36 | 76|23 37 | 51|75 38 | 51|68 39 | 51|25 40 | 51|72 41 | 51|62 42 | 51|96 43 | 51|21 44 | 51|11 45 | 51|27 46 | 24|77 47 | 24|63 48 | 24|76 49 | 24|72 50 | 24|51 51 | 24|14 52 | 24|39 53 | 24|18 54 | 24|62 55 | 24|67 56 | 77|53 57 | 77|57 58 | 77|75 59 | 77|36 60 | 77|11 61 | 77|23 62 | 77|69 63 | 77|96 64 | 77|85 65 | 77|52 66 | 77|81 67 | 45|23 68 | 45|73 69 | 45|54 70 | 45|81 71 | 45|36 72 | 45|27 73 | 45|65 74 | 45|96 75 | 45|76 76 | 45|33 77 | 45|52 78 | 45|46 79 | 11|61 80 | 11|19 81 | 11|39 82 | 11|94 83 | 11|98 84 | 11|54 85 | 11|56 86 | 11|92 87 | 11|24 88 | 11|27 89 | 11|43 90 | 11|69 91 | 11|28 92 | 18|43 93 | 18|76 94 | 18|47 95 | 18|72 96 | 18|39 97 | 18|25 98 | 18|63 99 | 18|14 100 | 18|62 101 | 18|32 102 | 18|67 103 | 18|94 104 | 18|96 105 | 18|77 106 | 33|77 107 | 33|36 108 | 33|54 109 | 33|73 110 | 33|96 111 | 33|75 112 | 33|28 113 | 33|23 114 | 33|11 115 | 33|81 116 | 33|68 117 | 33|65 118 | 33|46 119 | 33|52 120 | 33|85 121 | 36|69 122 | 36|65 123 | 36|52 124 | 36|75 125 | 36|48 126 | 36|76 127 | 36|54 128 | 36|19 129 | 36|68 130 | 36|81 131 | 36|57 132 | 36|73 133 | 36|56 134 | 36|62 135 | 36|21 136 | 36|92 137 | 52|73 138 | 52|48 139 | 52|85 140 | 52|83 141 | 52|23 142 | 52|27 143 | 52|57 144 | 52|11 145 | 52|31 146 | 52|92 147 | 52|28 148 | 52|19 149 | 52|54 150 | 52|75 151 | 52|99 152 | 52|65 153 | 52|24 154 | 63|33 155 | 63|65 156 | 63|32 157 | 63|35 158 | 63|52 159 | 63|51 160 | 63|62 161 | 63|45 162 | 63|72 163 | 63|82 164 | 63|46 165 | 63|96 166 | 63|77 167 | 63|47 168 | 63|67 169 | 63|23 170 | 63|36 171 | 63|14 172 | 73|27 173 | 73|99 174 | 73|21 175 | 73|63 176 | 73|92 177 | 73|98 178 | 73|83 179 | 73|85 180 | 73|69 181 | 73|39 182 | 73|54 183 | 73|11 184 | 73|53 185 | 73|32 186 | 73|61 187 | 73|19 188 | 73|18 189 | 73|57 190 | 73|48 191 | 19|24 192 | 19|47 193 | 19|82 194 | 19|32 195 | 19|46 196 | 19|39 197 | 19|92 198 | 19|14 199 | 19|33 200 | 19|69 201 | 19|83 202 | 19|94 203 | 19|48 204 | 19|18 205 | 19|57 206 | 19|61 207 | 19|51 208 | 19|99 209 | 19|56 210 | 19|63 211 | 99|72 212 | 99|13 213 | 99|14 214 | 99|96 215 | 99|82 216 | 99|76 217 | 99|35 218 | 99|18 219 | 99|61 220 | 99|46 221 | 99|39 222 | 99|36 223 | 99|33 224 | 99|77 225 | 99|51 226 | 99|67 227 | 99|47 228 | 99|43 229 | 99|94 230 | 99|63 231 | 99|24 232 | 47|72 233 | 47|52 234 | 47|75 235 | 47|65 236 | 47|14 237 | 47|96 238 | 47|46 239 | 47|11 240 | 47|33 241 | 47|85 242 | 47|73 243 | 47|67 244 | 47|51 245 | 47|82 246 | 47|81 247 | 47|13 248 | 47|25 249 | 47|77 250 | 47|76 251 | 47|36 252 | 47|23 253 | 47|62 254 | 35|72 255 | 35|65 256 | 35|81 257 | 35|47 258 | 35|36 259 | 35|52 260 | 35|75 261 | 35|62 262 | 35|45 263 | 35|96 264 | 35|33 265 | 35|46 266 | 35|67 267 | 35|13 268 | 35|77 269 | 35|76 270 | 35|85 271 | 35|23 272 | 35|73 273 | 35|51 274 | 35|25 275 | 35|14 276 | 35|68 277 | 94|13 278 | 94|47 279 | 94|68 280 | 94|65 281 | 94|82 282 | 94|51 283 | 94|36 284 | 94|43 285 | 94|67 286 | 94|76 287 | 94|46 288 | 94|96 289 | 94|35 290 | 94|45 291 | 94|81 292 | 94|33 293 | 94|72 294 | 94|62 295 | 94|14 296 | 94|23 297 | 94|25 298 | 94|77 299 | 94|52 300 | 94|73 301 | 69|82 302 | 69|83 303 | 69|61 304 | 69|43 305 | 69|35 306 | 69|46 307 | 69|63 308 | 69|25 309 | 69|67 310 | 69|14 311 | 69|47 312 | 69|33 313 | 69|24 314 | 69|32 315 | 69|56 316 | 69|39 317 | 69|72 318 | 69|51 319 | 69|94 320 | 69|92 321 | 69|48 322 | 69|99 323 | 69|45 324 | 69|18 325 | 96|62 326 | 96|75 327 | 96|73 328 | 96|85 329 | 96|57 330 | 96|65 331 | 96|69 332 | 96|31 333 | 96|23 334 | 96|76 335 | 96|19 336 | 96|36 337 | 96|81 338 | 96|11 339 | 96|53 340 | 96|28 341 | 96|27 342 | 96|56 343 | 96|68 344 | 96|52 345 | 96|21 346 | 96|48 347 | 96|98 348 | 96|54 349 | 61|13 350 | 61|52 351 | 61|62 352 | 61|67 353 | 61|35 354 | 61|51 355 | 61|82 356 | 61|39 357 | 61|36 358 | 61|77 359 | 61|45 360 | 61|63 361 | 61|32 362 | 61|76 363 | 61|14 364 | 61|72 365 | 61|94 366 | 61|47 367 | 61|46 368 | 61|43 369 | 61|33 370 | 61|18 371 | 61|96 372 | 61|25 373 | 68|21 374 | 68|98 375 | 68|18 376 | 68|83 377 | 68|57 378 | 68|28 379 | 68|73 380 | 68|53 381 | 68|99 382 | 68|19 383 | 68|69 384 | 68|63 385 | 68|11 386 | 68|92 387 | 68|85 388 | 68|27 389 | 68|48 390 | 68|39 391 | 68|61 392 | 68|75 393 | 68|56 394 | 68|54 395 | 68|24 396 | 68|31 397 | 53|82 398 | 53|47 399 | 53|69 400 | 53|24 401 | 53|32 402 | 53|61 403 | 53|63 404 | 53|31 405 | 53|39 406 | 53|14 407 | 53|92 408 | 53|18 409 | 53|98 410 | 53|56 411 | 53|83 412 | 53|19 413 | 53|99 414 | 53|33 415 | 53|94 416 | 53|57 417 | 53|35 418 | 53|48 419 | 53|45 420 | 53|43 421 | 23|24 422 | 23|21 423 | 23|28 424 | 23|65 425 | 23|73 426 | 23|48 427 | 23|98 428 | 23|75 429 | 23|31 430 | 23|92 431 | 23|19 432 | 23|69 433 | 23|56 434 | 23|68 435 | 23|53 436 | 23|85 437 | 23|57 438 | 23|99 439 | 23|27 440 | 23|83 441 | 23|81 442 | 23|61 443 | 23|11 444 | 23|54 445 | 21|98 446 | 21|92 447 | 21|31 448 | 21|48 449 | 21|43 450 | 21|57 451 | 21|35 452 | 21|69 453 | 21|56 454 | 21|82 455 | 21|39 456 | 21|63 457 | 21|94 458 | 21|61 459 | 21|53 460 | 21|47 461 | 21|28 462 | 21|19 463 | 21|24 464 | 21|27 465 | 21|83 466 | 21|18 467 | 21|99 468 | 21|32 469 | 72|11 470 | 72|53 471 | 72|76 472 | 72|52 473 | 72|85 474 | 72|68 475 | 72|13 476 | 72|19 477 | 72|27 478 | 72|54 479 | 72|23 480 | 72|57 481 | 72|36 482 | 72|31 483 | 72|21 484 | 72|28 485 | 72|73 486 | 72|77 487 | 72|98 488 | 72|96 489 | 72|81 490 | 72|75 491 | 72|65 492 | 72|62 493 | 14|72 494 | 14|73 495 | 14|77 496 | 14|76 497 | 14|52 498 | 14|25 499 | 14|11 500 | 14|96 501 | 14|51 502 | 14|65 503 | 14|67 504 | 14|62 505 | 14|13 506 | 14|36 507 | 14|21 508 | 14|75 509 | 14|68 510 | 14|33 511 | 14|81 512 | 14|23 513 | 14|46 514 | 14|85 515 | 14|45 516 | 14|54 517 | 98|43 518 | 98|56 519 | 98|47 520 | 98|61 521 | 98|24 522 | 98|39 523 | 98|69 524 | 98|63 525 | 98|32 526 | 98|57 527 | 98|51 528 | 98|33 529 | 98|83 530 | 98|18 531 | 98|35 532 | 98|82 533 | 98|48 534 | 98|94 535 | 98|99 536 | 98|92 537 | 98|19 538 | 98|46 539 | 98|45 540 | 98|14 541 | 82|96 542 | 82|81 543 | 82|23 544 | 82|14 545 | 82|13 546 | 82|76 547 | 82|73 548 | 82|68 549 | 82|77 550 | 82|75 551 | 82|33 552 | 82|65 553 | 82|11 554 | 82|72 555 | 82|36 556 | 82|46 557 | 82|67 558 | 82|52 559 | 82|51 560 | 82|25 561 | 82|54 562 | 82|85 563 | 82|45 564 | 82|62 565 | 13|68 566 | 13|81 567 | 13|73 568 | 13|65 569 | 13|54 570 | 13|57 571 | 13|52 572 | 13|28 573 | 13|62 574 | 13|76 575 | 13|23 576 | 13|75 577 | 13|36 578 | 13|53 579 | 13|21 580 | 13|56 581 | 13|69 582 | 13|98 583 | 13|31 584 | 13|96 585 | 13|27 586 | 13|85 587 | 13|11 588 | 13|19 589 | 65|98 590 | 65|24 591 | 65|81 592 | 65|73 593 | 65|31 594 | 65|48 595 | 65|28 596 | 65|11 597 | 65|53 598 | 65|99 599 | 65|27 600 | 65|19 601 | 65|18 602 | 65|92 603 | 65|85 604 | 65|21 605 | 65|61 606 | 65|54 607 | 65|83 608 | 65|69 609 | 65|56 610 | 65|75 611 | 65|68 612 | 65|57 613 | 39|25 614 | 39|96 615 | 39|47 616 | 39|65 617 | 39|35 618 | 39|33 619 | 39|72 620 | 39|36 621 | 39|52 622 | 39|77 623 | 39|94 624 | 39|45 625 | 39|23 626 | 39|13 627 | 39|46 628 | 39|76 629 | 39|14 630 | 39|82 631 | 39|62 632 | 39|32 633 | 39|51 634 | 39|67 635 | 39|43 636 | 39|63 637 | 62|85 638 | 62|28 639 | 62|99 640 | 62|23 641 | 62|53 642 | 62|19 643 | 62|31 644 | 62|81 645 | 62|57 646 | 62|54 647 | 62|21 648 | 62|48 649 | 62|65 650 | 62|83 651 | 62|98 652 | 62|75 653 | 62|11 654 | 62|52 655 | 62|69 656 | 62|56 657 | 62|92 658 | 62|27 659 | 62|68 660 | 62|73 661 | 81|75 662 | 81|28 663 | 81|57 664 | 81|56 665 | 81|53 666 | 81|48 667 | 81|85 668 | 81|11 669 | 81|21 670 | 81|92 671 | 81|99 672 | 81|68 673 | 81|27 674 | 81|24 675 | 81|98 676 | 81|61 677 | 81|39 678 | 81|31 679 | 81|54 680 | 81|83 681 | 81|73 682 | 81|18 683 | 81|19 684 | 81|69 685 | 56|25 686 | 56|35 687 | 56|82 688 | 56|32 689 | 56|94 690 | 56|67 691 | 56|99 692 | 56|33 693 | 56|48 694 | 56|18 695 | 56|24 696 | 56|47 697 | 56|46 698 | 56|39 699 | 56|83 700 | 56|72 701 | 56|45 702 | 56|61 703 | 56|63 704 | 56|77 705 | 56|51 706 | 56|43 707 | 56|14 708 | 56|92 709 | 43|62 710 | 43|72 711 | 43|73 712 | 43|51 713 | 43|96 714 | 43|35 715 | 43|45 716 | 43|33 717 | 43|52 718 | 43|67 719 | 43|65 720 | 43|46 721 | 43|23 722 | 43|68 723 | 43|76 724 | 43|14 725 | 43|13 726 | 43|82 727 | 43|47 728 | 43|81 729 | 43|85 730 | 43|25 731 | 43|36 732 | 43|77 733 | 48|63 734 | 48|33 735 | 48|14 736 | 48|32 737 | 48|61 738 | 48|18 739 | 48|83 740 | 48|43 741 | 48|24 742 | 48|45 743 | 48|72 744 | 48|13 745 | 48|92 746 | 48|51 747 | 48|67 748 | 48|47 749 | 48|35 750 | 48|99 751 | 48|82 752 | 48|94 753 | 48|25 754 | 48|77 755 | 48|39 756 | 48|46 757 | 28|98 758 | 28|14 759 | 28|53 760 | 28|56 761 | 28|45 762 | 28|24 763 | 28|47 764 | 28|69 765 | 28|99 766 | 28|82 767 | 28|61 768 | 28|39 769 | 28|43 770 | 28|18 771 | 28|63 772 | 28|31 773 | 28|35 774 | 28|32 775 | 28|83 776 | 28|92 777 | 28|48 778 | 28|94 779 | 28|57 780 | 28|19 781 | 25|77 782 | 25|28 783 | 25|19 784 | 25|75 785 | 25|27 786 | 25|76 787 | 25|21 788 | 25|31 789 | 25|98 790 | 25|23 791 | 25|72 792 | 25|54 793 | 25|96 794 | 25|85 795 | 25|52 796 | 25|81 797 | 25|53 798 | 25|62 799 | 25|13 800 | 25|68 801 | 25|36 802 | 25|11 803 | 25|65 804 | 25|73 805 | 75|28 806 | 75|53 807 | 75|83 808 | 75|69 809 | 75|11 810 | 75|99 811 | 75|24 812 | 75|31 813 | 75|56 814 | 75|21 815 | 75|98 816 | 75|54 817 | 75|19 818 | 75|32 819 | 75|94 820 | 75|61 821 | 75|43 822 | 75|18 823 | 75|39 824 | 75|48 825 | 75|63 826 | 75|92 827 | 75|27 828 | 75|57 829 | 92|47 830 | 92|25 831 | 92|35 832 | 92|83 833 | 92|77 834 | 92|67 835 | 92|72 836 | 92|51 837 | 92|46 838 | 92|24 839 | 92|99 840 | 92|32 841 | 92|13 842 | 92|82 843 | 92|18 844 | 92|63 845 | 92|61 846 | 92|33 847 | 92|96 848 | 92|94 849 | 92|39 850 | 92|43 851 | 92|45 852 | 92|14 853 | 31|24 854 | 31|35 855 | 31|63 856 | 31|83 857 | 31|39 858 | 31|57 859 | 31|45 860 | 31|94 861 | 31|32 862 | 31|43 863 | 31|48 864 | 31|18 865 | 31|82 866 | 31|56 867 | 31|14 868 | 31|98 869 | 31|99 870 | 31|69 871 | 31|33 872 | 31|47 873 | 31|46 874 | 31|92 875 | 31|19 876 | 31|61 877 | 32|76 878 | 32|65 879 | 32|25 880 | 32|33 881 | 32|67 882 | 32|68 883 | 32|13 884 | 32|82 885 | 32|96 886 | 32|47 887 | 32|23 888 | 32|52 889 | 32|14 890 | 32|72 891 | 32|51 892 | 32|94 893 | 32|77 894 | 32|43 895 | 32|81 896 | 32|46 897 | 32|35 898 | 32|36 899 | 32|62 900 | 32|45 901 | 57|92 902 | 57|45 903 | 57|14 904 | 57|63 905 | 57|18 906 | 57|33 907 | 57|82 908 | 57|47 909 | 57|83 910 | 57|99 911 | 57|94 912 | 57|35 913 | 57|56 914 | 57|25 915 | 57|43 916 | 57|69 917 | 57|46 918 | 57|61 919 | 57|39 920 | 57|51 921 | 57|48 922 | 57|24 923 | 57|67 924 | 67|25 925 | 67|53 926 | 67|65 927 | 67|98 928 | 67|27 929 | 67|62 930 | 67|13 931 | 67|31 932 | 67|75 933 | 67|52 934 | 67|72 935 | 67|36 936 | 67|11 937 | 67|54 938 | 67|73 939 | 67|21 940 | 67|81 941 | 67|28 942 | 67|76 943 | 67|96 944 | 67|85 945 | 67|68 946 | 54|56 947 | 54|31 948 | 54|69 949 | 54|57 950 | 54|98 951 | 54|94 952 | 54|61 953 | 54|24 954 | 54|92 955 | 54|47 956 | 54|53 957 | 54|43 958 | 54|19 959 | 54|28 960 | 54|18 961 | 54|83 962 | 54|32 963 | 54|63 964 | 54|21 965 | 54|39 966 | 54|48 967 | 27|19 968 | 27|24 969 | 27|94 970 | 27|35 971 | 27|18 972 | 27|56 973 | 27|31 974 | 27|99 975 | 27|43 976 | 27|82 977 | 27|57 978 | 27|39 979 | 27|32 980 | 27|98 981 | 27|53 982 | 27|28 983 | 27|92 984 | 27|48 985 | 27|69 986 | 27|61 987 | 83|18 988 | 83|67 989 | 83|61 990 | 83|13 991 | 83|14 992 | 83|94 993 | 83|36 994 | 83|72 995 | 83|24 996 | 83|39 997 | 83|77 998 | 83|35 999 | 83|99 1000 | 83|43 1001 | 83|32 1002 | 83|51 1003 | 83|46 1004 | 83|63 1005 | 83|47 1006 | 46|25 1007 | 46|52 1008 | 46|36 1009 | 46|68 1010 | 46|13 1011 | 46|76 1012 | 46|96 1013 | 46|77 1014 | 46|11 1015 | 46|51 1016 | 46|75 1017 | 46|85 1018 | 46|28 1019 | 46|54 1020 | 46|23 1021 | 46|65 1022 | 46|62 1023 | 46|53 1024 | 85|94 1025 | 85|11 1026 | 85|21 1027 | 85|57 1028 | 85|69 1029 | 85|56 1030 | 85|24 1031 | 85|18 1032 | 85|31 1033 | 85|39 1034 | 85|92 1035 | 85|32 1036 | 85|83 1037 | 85|19 1038 | 85|48 1039 | 85|61 1040 | 85|75 1041 | 76|98 1042 | 76|52 1043 | 76|53 1044 | 76|85 1045 | 76|57 1046 | 76|68 1047 | 76|56 1048 | 76|28 1049 | 76|83 1050 | 76|19 1051 | 76|11 1052 | 76|65 1053 | 76|75 1054 | 76|31 1055 | 76|73 1056 | 76|27 1057 | 51|54 1058 | 51|36 1059 | 51|77 1060 | 51|52 1061 | 51|28 1062 | 51|23 1063 | 51|67 1064 | 51|13 1065 | 51|31 1066 | 51|76 1067 | 51|85 1068 | 51|81 1069 | 51|65 1070 | 51|53 1071 | 51|73 1072 | 24|94 1073 | 24|33 1074 | 24|25 1075 | 24|96 1076 | 24|32 1077 | 24|43 1078 | 24|35 1079 | 24|61 1080 | 24|13 1081 | 24|45 1082 | 24|82 1083 | 24|36 1084 | 24|46 1085 | 24|47 1086 | 77|31 1087 | 77|21 1088 | 77|76 1089 | 77|65 1090 | 77|98 1091 | 77|27 1092 | 77|54 1093 | 77|73 1094 | 77|28 1095 | 77|13 1096 | 77|19 1097 | 77|62 1098 | 77|68 1099 | 45|13 1100 | 45|51 1101 | 45|77 1102 | 45|68 1103 | 45|62 1104 | 45|72 1105 | 45|11 1106 | 45|75 1107 | 45|85 1108 | 45|67 1109 | 45|25 1110 | 45|21 1111 | 11|63 1112 | 11|21 1113 | 11|83 1114 | 11|35 1115 | 11|32 1116 | 11|53 1117 | 11|48 1118 | 11|57 1119 | 11|31 1120 | 11|99 1121 | 11|18 1122 | 18|35 1123 | 18|23 1124 | 18|33 1125 | 18|82 1126 | 18|51 1127 | 18|45 1128 | 18|13 1129 | 18|36 1130 | 18|52 1131 | 18|46 1132 | 33|13 1133 | 33|51 1134 | 33|21 1135 | 33|25 1136 | 33|72 1137 | 33|62 1138 | 33|67 1139 | 33|76 1140 | 33|27 1141 | 36|53 1142 | 36|27 1143 | 36|23 1144 | 36|98 1145 | 36|28 1146 | 36|85 1147 | 36|11 1148 | 36|31 1149 | 52|69 1150 | 52|53 1151 | 52|98 1152 | 52|21 1153 | 52|68 1154 | 52|81 1155 | 52|56 1156 | 63|13 1157 | 63|81 1158 | 63|43 1159 | 63|94 1160 | 63|76 1161 | 63|25 1162 | 73|28 1163 | 73|24 1164 | 73|75 1165 | 73|56 1166 | 73|31 1167 | 19|43 1168 | 19|67 1169 | 19|45 1170 | 19|35 1171 | 99|25 1172 | 99|45 1173 | 99|32 1174 | 47|68 1175 | 47|45 1176 | 35|82 1177 | 1178 | 46,51,67,25,72,77,13,96,36,76,52,23,65,81,68,73,85,75,11,54,21,27,28 1179 | 68,73,85,75,11,54,21,28,31,19,57,69,56,48,92,83,99,24,61,18,39 1180 | 83,99,24,61,63,32,94,35,47,82,14,45,33,46,51,67,25,72,77,13,96 1181 | 19,81,75,36,27,96,11 1182 | 75,11,54,21,28,31,98,19,56,92,83,99,24,18,63,32,94 1183 | 62,23,85,75,27,31,19,48,83 1184 | 23,65,81,68,73,85,11,54,27,31,98,19,57,48,92,83,24 1185 | 61,39,63,32,43,35,47,45,33,46,67,72,77,96,36 1186 | 27,28,53,31,98,19,57,69,56,48,92,83,99,24,61,18,39,63,32,94,35,47,82 1187 | 57,54,31,27,28,21,68,48,23,53,19 1188 | 18,39,63,32,94,43,35,47,82,14,33,46,51,67,25,72,77,13,96,36,76,62,52 1189 | 28,69,76,56,23,21,98,68,96,65,75,11,36,54,27,53,19,85,73,57,62 1190 | 14,46,96,73,75 1191 | 96,36,76,62,23,81,68,73,85,75,11,54,27,53,31,98,57,69,56 1192 | 98,57,56,48,92,83,99,24,18,39,94,43,82,14,45,33,46 1193 | 57,83,39,53,99,85,19,18,56 1194 | 68,85,27,28,56,83,61,18,39 1195 | 31,98,19,57,69,56,48,92,83,99,24,61,18,39,32,94,43,35,47,82,14,45,33 1196 | 62,39,13,43,72,36,82,45,61 1197 | 81,68,73,85,75,11,54,21,27,28,53,31,98,19,69,56,48,92,83,99,24,61,18 1198 | 61,18,45,56,83,47,43,63,35,39,69,92,25 1199 | 73,53,81,28,19,52,31,57,62,83,68,92,85,23,48 1200 | 52,23,65,81,68,73,85,75,11,54,21,27,28,53,31,98,19,69,56,48,92,83,99 1201 | 62,68,36,72,54,11,75,67,65 1202 | 24,39,63,32,47,14,45,33,46,67,25,77,96,36,76 1203 | 27,57,28,19,61,56,83,54,63,69,39,53,32,31,11 1204 | 43,14,46,51,72,77,36,65,81,68,73 1205 | 51,85,81,46,35,47,68,33,82,76,25,62,67,52,23 1206 | 69,24,83,92,53,99,21,56,18,31,11,43,63,57,94,98,61,39,28,19,48,32,54 1207 | 75,27,31,98,19,56,48,92,94 1208 | 47,45,33,51,72,77,36,76,62,52,65,81,68 1209 | 32,35,47,82,14,51,67,25,72,13,96,62,52,23,81 1210 | 19,31,54,81,76,56,52,65,21,28,73,36,75,68,96,11,53,27,23,69,98,57,62 1211 | 65,81,68,73,85,54,21,27,28,31,98,19,57,69,56,48,92,83,99,24,61 1212 | 83,99,61,94,82,14,33,46,51,67,25 1213 | 36,76,65,68,54,21,53,19,48 1214 | 23,65,81,11,83 1215 | 33,67,96,36,68,85,54,21,27 1216 | 54,18,24,39,21,98,63,27,92,83,31,61,48,75,57,28,69,85,73,19,11 1217 | 54,21,28,57,69,56,92,99,24,61,18,39,32,43,35 1218 | 39,63,32,94,35,47,46,51,67,72,77,13,96,76,62,52,23 1219 | 68,65,31,54,25,36,73,85,27,28,67 1220 | 13,67,68,81,96 1221 | 81,73,75,11,54,27,53,31,98,19,57,56,48,92,24,61,18 1222 | 92,54,24,32,28,19,53,39,35 1223 | 63,92,13,99,83,45,51 1224 | 85,11,54,21,28,53,31,98,56,24,61,18,32 1225 | 19,56,48,83,63,46,51 1226 | 75,11,21,27,28,53,31,19,57,92,83,99,24,61,18,39,63,32,94 1227 | 46,65,82,94,68,23,36,72,45,47,52,33,51,62,13 1228 | 56,48,92,83,99,24,61,39,63,32,94,43,35,47,82,14,33,46,51,67,72 1229 | 67,25,72,77,13,96,36,76,52,23,65,81,68,73,85,75,11,54,21,27,28,53,31 1230 | 83,57,31,54,21,92,28,85,63,53,48,39,73 1231 | 85,82,62,52,45,46,68,25,33 1232 | 25,27,21,68,98,72,81,23,13 1233 | 13,96,62,23,65,81,85,75,11 1234 | 98,57,11,73,99,52,48,65,28,75,19,85,69,92,83,81,56,21,31,68,27 1235 | 27,28,53,19,57,69,56,99,61,18,39,32,82 1236 | 53,21,48,54,28,68,36,73,85,76,23,31,98,11,81,56,52,57,69 1237 | 54,21,27,28,98,57,69,48,92,83,99,24,61,18,63,43,35 1238 | 23,65,81,68,27,57,24 1239 | 85,75,11,54,21,27,28,53,31,98,19,57,69,56,48,92,83,24,61,18,39,63,32 1240 | 54,53,27,11,56,39,68 1241 | 63,53,61,19,57,82,27 1242 | 14,76,51,43,46,82,67,45,52,35,96,94,33,81,47,13,65,36,77,62,23 1243 | 62,23,51,82,94,52,45,33,36,63,77,32,13,35,47,65,72,46,14,25,67,43,96 1244 | 92,83,99,24,61,18,39,32,94,43,35,47,82,14,45,33,46,51,67,25,72 1245 | 68,85,11,54,21,27,19,57,69,56,99,24,18 1246 | 48,18,83,46,82,77,67,72,24 1247 | 32,43,82,33,46,67,96,36,76 1248 | 28,65,11,68,54,27,23,56,98,92,19 1249 | 48,45,18,19,61,43,31,35,98,47,63,53,83,82,39,14,24,69,32,57,99 1250 | 92,83,99,24,18,39,32,94,35,82,51,72,13 1251 | 98,11,36,56,53,57,52,96,69,65,68 1252 | 33,77,96,76,62,52,23,65,68,75,54,21,27 1253 | 92,83,99,24,61,18,39,63,32,94,35,47,82,14,45,33,46,51,67,25,72,77,13 1254 | 33,67,13,96,62,65,73,85,27 1255 | 76,98,28,85,21 1256 | 75,28,31,98,57,92,99 1257 | 85,75,11,54,21,27,53,31,98,19,57,69,56,48,92,83,99,24,61,18,39,63,32 1258 | 72,76,62,65,81,75,11,21,53 1259 | 85,81,31,69,13,53,75,54,27,98,19,57,65 1260 | 94,35,47,82,14,45,33,46,51,67,25,72,77,13,96,36,76,62,52,23,65,81,68 1261 | 53,19,13,73,28,72,54,36,65,98,75 1262 | 76,11,62,68,53,77,65,54,28,75,52,85,21 1263 | 83,24,57,54,43,69,11 1264 | 23,82,35,52,43,39,13,77,47,63,96 1265 | 43,35,82,14,45,33,46,51,67,25,72,77,13,96,36,76,62,52,23,65,81,68,73 1266 | 36,19,13,98,65,76,23,81,28,72,11 1267 | 31,48,24,27,57,98,28,56,54,35,19 1268 | 21,13,85,31,27,57,36,68,81,54,76,96,73,77,23,52,62,11,75,19,98,65,53 1269 | 21,27,98,69,83,24,18,63,32,94,43,35,47 1270 | 56,99,69,48,54 1271 | 11,23,36,77,81,65,28,62,68,52,27,75,96,46,67 1272 | 83,24,61,18,63,94,43,35,47,82,14,46,51,67,25,77,96 1273 | 94,39,82,69,99,47,63,57,92,32,98,56,18,35,14,48,43,19,28 1274 | 72,76,96,67,65,73,82,68,35,52,85 1275 | 63,14,33,46,51,67,72 1276 | 63,32,94,43,35,82,14,46,51,72,77,96,36,76,62,23,65 1277 | 57,69,48,92,83,99,24,18,39,63,32,94,35,14,45,51,67 1278 | 57,99,61,39,47,82,46,51,67 1279 | 76,62,52,23,65,81,68,73,85,75,54,27,28,53,31,98,19,57,69,48,92 1280 | 75,36,21,85,46,28,27 1281 | 45,33,35,96,51,72,36,23,52,47,25,94,81,82,62,13,32,76,14 1282 | 11,54,21,28,53,98,19,57,69,56,92,83,99,24,61,39,32,94,43 1283 | 25,33,24,77,13,61,51,47,39,82,46,14,18,96,35,67,94,63,36,45,43,99,32 1284 | 85,13,68,53,27,36,69,57,52,11,96 1285 | 77,13,96,36,76,52,23,65,81,73,85,75,11,54,98,19,57 1286 | 47,67,72,13,62,52,68 1287 | 45,33,77,76,73 1288 | 39,92,18,35,72,13,61,82,77,32,51,14,46,47,45,25,63 1289 | 98,52,11,21,54,75,31,53,36,85,77,27,68,72,73,19,23,81,65 1290 | 45,25,82,11,68,52,85,75,23,46,51,96,77,67,72 1291 | 76,47,72,63,67,33,62,46,32,61,25,77,18,14,96,94,36,35,39,43,13 1292 | 76,62,52,65,81,21,28 1293 | 69,56,48,92,83,99,24,61,39,32,94,43,35,47,82,45,33,46,51,67,25 1294 | 85,81,23,77,54,72,51,76,36,75,21,68,11,67,28,13,65 1295 | 73,21,68,45,11,85,23,33,81,36,46 1296 | 67,24,45,83,32,39,61 1297 | 28,51,67,46,76,96,11,21,73,27,62,25,65,85,52 1298 | 13,36,52,23,81,54,31,57,69 1299 | 21,27,28,53,98,19,69,56,48,92,24,18,94,35,47 1300 | 24,18,39,63,32,94,35,47,82,14,45,33,46,67,25,72,77,13,96,36,76 1301 | 51,36,76,62,11,27,53 1302 | 81,68,73,54,21,28,53,98,57,69,48,92,83,99,24,61,18 1303 | 46,33,98,19,69,61,14,45,47,24,48,82,99,57,63,94,39,83,56 1304 | 28,57,92,83,24,39,63,35,14 1305 | 65,73,85,75,11,54,28,24,61 1306 | 48,92,83,99,24,61,47,72,77 1307 | 82,25,83,61,77,39,63,45,99 1308 | 36,76,65,73,54,56,48 1309 | 19,83,24,18,39,63,32,94,43,35,82,14,33,46,51 1310 | 11,21,53,69,56,48,83,32,43 1311 | 32,45,25,94,99,63,47,48,82,77,14 1312 | 32,57,46,33,24,14,69,83,82,51,39,92,99,63,61,48,67,47,18 1313 | 48,57,11,92,65,53,61,75,21,56,83,73,54,68,27,69,31,24,98,28,19,81,99 1314 | 31,75,83,62,57,68,52,23,56,73,48 1315 | 45,92,94,61,32,13,18 1316 | 46,27,76,52,62,68,36,33,54,21,72,96,51 1317 | 19,57,69,56,48,92,99,24,61,18,39,63,32,94,43,35,47,82,14,45,33,46,51 1318 | 69,83,99,24,61,39,63,94,35,82,45,33,51,67,25 1319 | 53,31,69,63,83,54,85,21,18,28,92,27,57,98,48,24,56,75,32,39,99,61,19 1320 | 81,82,35,72,96,68,36,46,13,62,14,73,76,25,33,52,43,67,45 1321 | 69,56,48,61,35,82,14,45,25 1322 | 76,23,81,11,21,28,19,57,48 1323 | 73,75,11,21,27,53,98,19,57,69,56,83,99,24,61,18,39 1324 | 18,39,63,32,94,43,35,47,82,14,45,46,51,67,25,72,77,13,36,62,52 1325 | 94,69,99,56,43,46,61,63,67,82,35,47,32,83,18,39,48,92,51,24,45,33,25 1326 | 27,56,81,11,53,18,68,69,48 1327 | 61,35,13,94,77,47,51,99,63,18,36,67,24,45,46,43,72,32,33,96,14,39,25 1328 | 32,57,28,53,99,27,18,75,48,85,83 1329 | 32,43,47,14,51,67,25,13,36,76,52 1330 | 73,75,54,21,53,98,19,48,83,99,61 1331 | 76,52,81,68,28 1332 | 75,98,56,83,39 1333 | 43,33,36,67,62,72,18,94,77,45,35,82,32,61,76,96,14 1334 | 54,21,27,53,98,69,56,92,83,99,18,39,63,32,94,43,35 1335 | 53,75,56,21,99,85,83,19,92,73,48,28,31,23,11,57,81 1336 | 21,28,53,98,69,24,63 1337 | 48,99,43,94,92,53,82,69,27,56,39,32,35 1338 | 24,18,39,94,43,35,47,82,14,45,33,46,51,67,25,13,96,36,76 1339 | 65,14,25,77,54,33,23,52,96,13,11,68,73 1340 | 92,57,94,53,19,63,98,47,99,18,61,39,82,14,24,35,69,28,83,56,32,48,43 1341 | 94,39,48,83,99,53,69,31,14,28,98,82,32,18,24,35,63,56,47,61,92,19,57 1342 | 25,72,77,13,96,36,76,62,52,23,65,81,68,73,85,75,11,54,27,28,53,31,98 1343 | 36,76,62,52,23,65,81,73,75,11,54,53,98,19,57 1344 | 56,48,35,43,45,18,72,63,83 1345 | 68,62,31,67,73,72,23,13,81,76,36 1346 | 21,28,98,57,39,54,19,61,18,92,83,24,11,63,69,43,94 1347 | 25,13,96,76,62,52,81,73,85,75,11,54,27,31,98 1348 | 62,65,81,68,73,75,54,27,28,57,69,92,83 1349 | 45,47,62,35,46,32,82,14,96,52,39,67,94,33,25,77,36,72,13,51,43,18,63 1350 | 36,82,67,96,35,62,94,43,61,13,46,51,47,77,18,76,39,25,63,14,33,45,32 1351 | 19,57,69,56,48,83,99,24,61,18,39,63,94,43,47,82,14,45,33,46,51 1352 | 28,81,75,11,72,98,62,68,65,52,19 1353 | 82,33,65,76,51,45,72,36,96,77,63,32,13,94,47 1354 | 48,83,99,63,43,35,77 1355 | 21,27,28,53,31,19,57,69,56,48,92,83,99,24,61,18,39,63,32,94,43,35,47 1356 | 35,25,36,47,18,24,14,77,99,45,96 1357 | 96,11,23,13,85,76,73,33,65,21,67,52,36,81,25,27,62 1358 | 82,45,33,67,62,65,73 1359 | 14,36,61,94,43 1360 | 76,27,92,28,75,52,69 1361 | 31,56,28,68,73,69,57,53,21,23,11,65,76,62,48,75,54,19,98,92,27,52,85 1362 | 36,76,52,23,65,81,68,73,85,75,11,54,21,27,28,53,31,98,19,57,69,56,48 1363 | 99,61,18,43,53,45,47,83,24,94,63,92,56,57,82,69,14 1364 | 82,94,57,14,83,32,46,35,98,99,45 1365 | 53,98,19,57,69,56,48,92,24,39,63,32,94,43,35,47,82,14,45 1366 | 35,82,14,45,33,46,25,72,77,96,23,65,85 1367 | 98,92,81,53,85,76,48,27,62 1368 | 98,57,92,99,18,39,43,47,82,14,45,33,46 1369 | 28,53,31,98,57,69,48,83,99,24,61,18,39,63,32,43,35,47,82 1370 | 24,61,39,63,32,35,46,51,67,36,76 1371 | 99,98,33,18,82,48,24,45,35,32,19 1372 | 62,52,23,81,68,73,85,75,11,54,21,53,98,19,57,56,48,92,83 1373 | 73,28,53,19,56,99,24 1374 | 81,45,82,14,43,73,46,47,33,68,77,96,25,51,13,35,23,52,62 1375 | 65,28,61,83,99,92,98 1376 | 83,99,94,43,47,67,96 1377 | 82,14,46,51,67,77,96,76,23,85,75 1378 | 45,46,51,81,75 1379 | 94,43,35,47,82,14,45,46,67,72,13,96,36,52,65 1380 | 81,77,11,28,31,68,85,54,76,65,62,36,75,21,57,19,98,27,52,23,96 1381 | 83,54,21,18,39,68,53 1382 | 33,18,69,51,24,94,14,19,48 1383 | 32,36,94,13,67,51,35,46,62,96,63,77,72,52,76,82,23 1384 | 76,62,52,23,65,81,68,73,85,11,27,28,98,57,48 1385 | 69,56,48,92,24,18,39,94,43,35,82,45,33,67,25 1386 | 46,51,67,25,72,77,13,96,76,62,52,23,68,73,85,75,11,54,21,27,28 -------------------------------------------------------------------------------- /day2/input: -------------------------------------------------------------------------------- 1 | 85 86 87 88 85 2 | 30 32 35 36 36 3 | 75 77 79 81 84 87 91 4 | 9 11 13 15 16 18 21 27 5 | 72 73 76 75 77 80 81 6 | 7 9 8 11 12 10 7 | 95 97 98 95 95 8 | 64 67 68 69 70 67 68 72 9 | 5 7 5 8 14 10 | 33 35 35 38 39 41 43 11 | 88 89 92 93 96 96 98 96 12 | 62 65 67 70 72 72 72 13 | 83 86 89 92 93 93 95 99 14 | 27 28 30 31 31 38 15 | 31 33 34 38 40 42 16 | 32 34 36 40 38 17 | 12 13 14 16 20 22 22 18 | 31 32 34 38 39 43 19 | 44 47 48 50 53 57 60 65 20 | 22 25 26 33 35 21 | 6 8 15 18 15 22 | 49 52 55 62 62 23 | 39 41 42 48 50 51 53 57 24 | 41 42 44 47 53 54 59 25 | 48 47 50 51 52 54 57 58 26 | 24 22 23 24 26 23 27 | 33 30 32 33 33 28 | 49 47 50 53 55 59 29 | 15 12 14 16 23 30 | 87 85 82 83 85 87 31 | 48 47 49 46 47 45 32 | 13 11 8 10 10 33 | 50 47 44 47 51 34 | 78 77 79 81 83 86 84 91 35 | 41 39 41 41 44 36 | 15 12 15 15 16 17 15 37 | 60 57 60 60 63 63 38 | 22 20 21 21 24 28 39 | 87 86 88 88 90 93 98 40 | 13 12 14 18 20 41 | 72 70 74 75 78 79 77 42 | 51 50 53 54 58 58 43 | 69 67 68 71 72 75 79 83 44 | 7 5 7 9 13 15 18 24 45 | 34 32 34 40 41 46 | 6 4 7 9 11 18 16 47 | 31 29 32 35 40 42 42 48 | 64 63 65 71 73 76 79 83 49 | 63 60 63 65 70 76 50 | 22 22 23 26 29 31 34 51 | 34 34 35 37 34 52 | 66 66 68 70 71 71 53 | 16 16 18 21 24 26 30 54 | 55 55 56 58 59 60 67 55 | 76 76 77 78 77 80 56 | 19 19 16 18 17 57 | 37 37 40 43 44 47 46 46 58 | 17 17 16 18 20 22 26 59 | 10 10 12 9 12 18 60 | 3 3 3 6 9 61 | 34 34 36 39 40 40 39 62 | 19 19 20 23 23 26 26 63 | 28 28 31 31 35 64 | 36 36 37 37 39 44 65 | 75 75 78 79 80 82 86 89 66 | 23 23 24 28 29 31 30 67 | 30 30 34 36 37 38 41 41 68 | 10 10 12 13 17 18 22 69 | 25 25 27 31 33 34 40 70 | 1 1 8 10 11 12 71 | 11 11 14 15 20 19 72 | 76 76 79 86 86 73 | 79 79 86 88 92 74 | 64 64 67 68 70 73 80 87 75 | 4 8 10 11 12 76 | 46 50 52 54 55 57 59 58 77 | 46 50 51 52 55 58 60 60 78 | 22 26 29 32 36 79 | 62 66 67 68 71 73 79 80 | 56 60 63 64 63 66 67 81 | 49 53 55 58 57 56 82 | 27 31 34 31 31 83 | 73 77 75 78 81 85 84 | 10 14 16 17 16 23 85 | 64 68 71 71 72 75 77 78 86 | 38 42 43 43 42 87 | 12 16 16 19 20 20 88 | 65 69 71 73 76 77 77 81 89 | 47 51 52 53 53 56 58 64 90 | 25 29 31 34 36 39 43 44 91 | 13 17 18 22 23 25 22 92 | 30 34 38 39 41 41 93 | 28 32 36 39 42 43 47 94 | 32 36 39 41 45 46 53 95 | 77 81 88 91 94 96 | 63 67 68 69 76 74 97 | 25 29 34 37 39 39 98 | 74 78 79 84 85 86 90 99 | 14 18 23 24 26 31 100 | 35 41 44 47 48 50 51 101 | 47 53 56 57 59 61 64 62 102 | 13 19 22 25 28 31 34 34 103 | 56 63 64 66 70 104 | 65 70 71 74 79 105 | 41 46 44 45 46 48 106 | 13 19 16 18 16 107 | 74 80 77 78 78 108 | 41 46 47 46 48 52 109 | 31 37 36 39 44 110 | 42 48 48 51 53 111 | 7 14 15 15 17 15 112 | 60 67 67 69 69 113 | 21 28 28 29 33 114 | 59 65 68 70 73 73 79 115 | 40 45 49 50 53 56 58 59 116 | 83 88 92 95 93 117 | 35 40 42 43 46 48 52 52 118 | 72 79 80 84 85 89 119 | 37 44 47 51 53 54 57 63 120 | 37 42 43 44 51 54 121 | 75 82 83 89 90 92 90 122 | 48 53 60 62 65 68 71 71 123 | 4 11 14 19 23 124 | 72 79 80 85 86 88 89 96 125 | 65 62 61 60 63 126 | 55 54 53 50 49 48 48 127 | 14 11 10 8 4 128 | 24 22 20 19 18 16 15 9 129 | 78 75 77 75 73 70 69 68 130 | 74 73 70 73 72 74 131 | 23 21 18 19 19 132 | 80 77 79 77 76 72 133 | 78 75 76 74 71 68 63 134 | 88 85 83 83 81 135 | 44 42 42 39 38 41 136 | 34 31 31 29 29 137 | 76 73 72 72 69 65 138 | 78 77 74 72 72 67 139 | 76 74 70 69 66 140 | 84 82 79 76 72 70 69 71 141 | 21 18 14 13 11 11 142 | 67 66 62 61 58 55 53 49 143 | 66 64 61 57 54 51 46 144 | 77 74 73 71 69 67 61 60 145 | 28 25 19 17 15 13 12 14 146 | 16 14 8 6 6 147 | 90 88 85 84 78 74 148 | 79 77 72 69 66 65 62 57 149 | 83 86 85 82 80 150 | 31 34 31 30 31 151 | 9 11 8 7 5 5 152 | 65 68 65 63 59 153 | 74 77 75 74 71 70 63 154 | 32 33 30 28 27 29 26 155 | 9 11 9 7 4 7 5 6 156 | 92 95 94 93 90 91 91 157 | 26 28 31 28 25 24 20 158 | 18 19 18 15 17 11 159 | 18 21 21 19 16 15 160 | 10 11 8 7 6 6 4 6 161 | 51 53 53 50 49 49 162 | 72 73 72 71 71 70 67 63 163 | 91 93 90 88 87 87 86 81 164 | 58 60 56 53 51 165 | 12 13 9 8 10 166 | 5 6 2 1 1 167 | 47 49 47 45 44 43 39 35 168 | 52 53 52 51 50 46 41 169 | 88 89 87 80 79 170 | 17 19 18 11 13 171 | 57 58 55 50 47 46 46 172 | 30 31 29 27 25 23 16 12 173 | 56 59 58 56 50 43 174 | 29 29 26 24 23 22 20 175 | 64 64 62 61 60 58 60 176 | 62 62 60 57 57 177 | 63 63 62 60 57 55 52 48 178 | 19 19 18 17 15 14 9 179 | 25 25 28 26 24 21 18 16 180 | 41 41 39 38 37 39 41 181 | 68 68 71 70 69 68 67 67 182 | 68 68 65 68 65 61 183 | 51 51 52 50 44 184 | 92 92 89 89 86 185 | 48 48 46 46 47 186 | 92 92 91 88 88 88 187 | 10 10 10 8 7 3 188 | 50 50 48 47 45 45 43 37 189 | 85 85 84 82 81 80 76 75 190 | 60 60 58 54 51 48 50 191 | 83 83 79 76 76 192 | 62 62 61 57 53 193 | 75 75 72 69 65 59 194 | 96 96 93 92 90 89 83 82 195 | 94 94 91 90 85 84 83 85 196 | 44 44 37 34 31 31 197 | 28 28 26 25 22 21 14 10 198 | 71 71 69 66 61 55 199 | 82 78 75 73 70 200 | 60 56 54 52 51 50 51 201 | 69 65 62 60 58 55 52 52 202 | 23 19 16 14 11 10 6 203 | 81 77 75 73 71 66 204 | 10 6 8 7 5 205 | 65 61 59 60 63 206 | 76 72 70 68 69 68 65 65 207 | 57 53 50 52 48 208 | 87 83 82 79 81 78 73 209 | 39 35 33 32 32 29 27 24 210 | 98 94 93 92 92 89 87 90 211 | 63 59 58 58 58 212 | 30 26 26 23 19 213 | 42 38 37 36 34 34 33 27 214 | 44 40 39 35 34 215 | 16 12 8 7 4 1 2 216 | 93 89 85 82 81 80 77 77 217 | 43 39 37 33 31 27 218 | 52 48 44 42 35 219 | 21 17 16 10 7 4 2 1 220 | 71 67 62 61 58 57 54 57 221 | 21 17 15 10 8 8 222 | 54 50 47 44 39 35 223 | 62 58 53 51 44 224 | 66 59 56 53 52 225 | 41 35 32 31 30 29 31 226 | 44 37 35 34 32 31 30 30 227 | 30 24 21 20 17 13 228 | 35 30 27 26 20 229 | 33 27 25 27 25 230 | 55 48 45 42 45 47 231 | 8 3 1 4 1 1 232 | 82 77 74 75 71 233 | 93 86 85 87 86 85 83 78 234 | 80 74 72 71 71 69 68 65 235 | 51 44 43 43 44 236 | 73 68 65 64 62 62 59 59 237 | 77 70 69 68 65 65 64 60 238 | 91 85 82 82 79 72 239 | 37 30 27 23 22 19 17 240 | 91 85 83 80 76 75 74 76 241 | 58 51 47 44 44 242 | 45 39 37 35 31 28 24 243 | 42 35 32 29 25 18 244 | 67 61 59 54 53 52 245 | 23 17 16 9 6 8 246 | 39 34 29 26 24 23 21 21 247 | 24 17 15 14 9 5 248 | 97 92 90 87 81 79 78 71 249 | 52 52 52 54 55 57 59 64 250 | 83 87 88 89 93 93 251 | 79 85 88 87 84 252 | 41 41 43 43 41 253 | 77 75 74 73 74 74 254 | 12 19 19 22 24 24 255 | 33 33 40 42 46 256 | 92 86 82 80 74 257 | 17 18 16 13 12 10 7 2 258 | 63 68 71 72 70 71 72 72 259 | 78 83 90 93 93 260 | 27 28 28 29 31 33 35 38 261 | 48 47 50 51 55 262 | 53 53 51 48 45 263 | 25 21 18 15 14 11 11 7 264 | 28 33 36 38 41 39 43 265 | 40 46 53 56 61 266 | 70 69 70 75 73 267 | 38 42 43 45 47 48 53 268 | 35 38 37 34 33 30 28 269 | 73 72 77 80 81 270 | 92 88 85 82 82 81 78 76 271 | 44 48 50 51 52 52 55 52 272 | 59 64 64 67 71 273 | 29 34 36 42 44 47 46 274 | 53 52 53 60 63 70 275 | 51 53 56 58 58 58 276 | 83 80 76 74 71 65 277 | 58 62 63 65 67 70 278 | 87 87 84 77 77 279 | 25 29 32 32 39 280 | 68 70 73 75 75 78 79 78 281 | 53 48 44 41 39 35 282 | 73 72 75 72 79 283 | 62 63 65 68 71 74 79 284 | 35 39 46 48 50 52 53 57 285 | 48 46 49 51 52 52 50 286 | 50 50 51 53 56 56 56 287 | 96 93 91 90 84 288 | 27 23 20 13 11 6 289 | 77 82 83 81 84 290 | 91 91 87 84 86 291 | 77 77 79 79 83 292 | 18 18 19 23 24 28 293 | 65 65 63 62 60 53 294 | 85 87 88 87 86 85 84 80 295 | 35 31 29 25 22 15 296 | 6 7 4 1 2 297 | 77 82 85 88 89 92 93 97 298 | 35 36 35 34 31 24 18 299 | 48 50 53 56 62 64 300 | 75 71 70 73 72 71 68 66 301 | 56 55 58 59 62 63 67 71 302 | 22 22 26 27 29 31 32 32 303 | 70 74 75 73 75 76 77 77 304 | 29 30 32 35 33 36 37 43 305 | 71 67 64 64 59 306 | 95 97 96 95 95 93 91 87 307 | 88 91 93 94 91 90 308 | 92 88 87 83 81 80 76 309 | 4 7 9 10 11 13 10 310 | 19 18 21 25 27 30 30 311 | 32 31 28 23 22 20 13 312 | 31 35 38 41 45 48 49 313 | 72 71 72 71 65 314 | 72 72 70 65 67 315 | 33 30 28 24 27 316 | 73 70 67 64 63 61 61 317 | 58 58 59 58 56 58 318 | 71 77 78 81 83 86 86 319 | 64 66 63 63 61 320 | 47 51 51 53 54 55 55 321 | 46 42 39 36 35 33 35 31 322 | 84 86 85 79 79 323 | 66 63 61 59 55 51 324 | 67 69 72 74 75 81 88 325 | 44 47 48 51 52 56 57 61 326 | 94 94 96 94 89 327 | 46 46 46 43 37 328 | 73 72 74 77 79 82 84 89 329 | 61 56 50 49 48 47 47 330 | 31 27 25 24 22 23 22 22 331 | 48 43 41 39 32 332 | 40 33 30 28 25 25 21 333 | 44 50 54 57 58 61 67 334 | 49 51 45 44 41 44 335 | 26 26 22 19 16 14 13 336 | 46 52 52 54 56 53 337 | 59 61 58 56 56 53 51 45 338 | 27 28 33 36 39 43 339 | 73 71 72 74 76 81 84 88 340 | 48 43 42 40 40 38 341 | 17 23 25 25 27 32 342 | 96 91 88 90 88 84 343 | 20 25 26 31 34 344 | 19 16 16 18 21 23 26 32 345 | 65 69 72 74 75 79 346 | 57 53 53 51 48 49 347 | 29 29 28 28 27 26 24 25 348 | 91 92 89 86 82 76 349 | 22 21 22 24 25 26 27 350 | 91 92 94 96 97 97 351 | 43 47 50 55 61 352 | 22 15 13 10 6 4 5 353 | 37 36 33 30 28 24 21 354 | 19 19 16 14 11 11 7 355 | 45 45 48 49 50 48 48 356 | 28 28 27 25 25 357 | 60 62 60 59 56 52 49 49 358 | 14 14 17 15 16 17 22 359 | 14 17 14 11 10 6 360 | 9 9 11 10 14 361 | 27 23 21 18 15 15 362 | 54 56 63 65 67 70 70 363 | 15 15 17 18 20 23 27 364 | 37 36 37 41 44 45 365 | 55 62 64 66 69 70 72 73 366 | 72 67 65 58 56 50 367 | 5 11 13 16 20 19 368 | 66 73 75 75 76 79 80 82 369 | 18 21 25 27 28 370 | 55 55 59 62 63 62 371 | 48 48 42 41 39 32 372 | 67 69 66 64 63 56 54 373 | 42 42 43 46 45 44 374 | 43 47 49 53 54 55 57 63 375 | 14 13 7 5 1 376 | 59 56 57 55 56 56 377 | 97 97 98 99 97 378 | 33 33 31 28 26 23 19 379 | 25 25 27 29 30 380 | 85 81 84 82 84 381 | 81 80 81 84 87 89 91 90 382 | 77 78 79 82 82 84 87 91 383 | 34 30 29 27 25 22 24 384 | 24 24 25 26 27 30 37 385 | 77 81 85 87 84 386 | 28 25 26 28 26 24 387 | 96 90 86 85 83 82 80 388 | 9 8 5 5 5 389 | 55 52 53 53 54 54 390 | 73 72 73 74 81 81 391 | 96 93 95 93 89 392 | 48 47 46 43 37 37 393 | 53 57 59 60 62 60 62 61 394 | 68 70 68 66 62 61 59 61 395 | 82 81 81 83 87 396 | 17 17 14 10 9 2 397 | 73 78 80 84 86 398 | 20 13 14 11 11 399 | 75 79 80 77 80 84 400 | 94 91 92 95 97 97 401 | 89 89 88 85 84 85 82 82 402 | 79 78 80 77 79 83 403 | 7 8 9 13 14 17 16 404 | 70 73 74 71 69 68 405 | 69 63 60 59 56 58 55 57 406 | 35 31 30 23 20 17 13 407 | 45 40 36 35 35 408 | 32 28 26 21 19 17 17 409 | 56 53 50 44 43 46 410 | 60 59 58 56 52 411 | 74 74 80 82 83 86 412 | 84 84 87 90 93 95 95 413 | 25 30 33 35 36 39 41 48 414 | 12 10 13 13 14 16 19 415 | 72 66 64 62 59 55 416 | 90 91 89 91 92 93 97 417 | 71 70 70 68 64 418 | 36 32 25 24 27 419 | 36 36 34 30 29 26 22 420 | 26 19 18 17 14 11 421 | 28 21 19 17 17 422 | 20 20 18 16 14 13 16 423 | 81 78 79 81 85 91 424 | 38 34 31 28 27 26 25 20 425 | 71 71 64 61 59 57 426 | 20 20 22 20 19 427 | 57 55 52 55 53 52 428 | 71 72 70 71 73 76 78 78 429 | 1 3 6 8 9 13 13 430 | 19 18 16 12 12 431 | 48 50 53 53 58 432 | 90 91 88 84 83 82 80 78 433 | 45 49 51 52 53 55 54 434 | 15 13 10 10 9 7 435 | 29 33 34 36 37 38 39 39 436 | 15 21 24 25 26 30 30 437 | 49 48 46 44 41 40 38 36 438 | 82 85 88 91 93 95 96 97 439 | 70 73 75 78 81 84 87 88 440 | 71 72 73 75 78 80 441 | 65 62 61 60 58 57 54 53 442 | 89 91 94 95 98 443 | 83 85 86 87 89 90 444 | 13 11 10 9 6 445 | 69 70 71 73 76 446 | 86 87 90 91 93 94 447 | 81 78 75 72 70 448 | 75 78 79 82 84 449 | 88 85 84 81 79 76 450 | 65 62 60 59 56 55 52 51 451 | 90 88 87 85 82 452 | 36 35 33 30 28 25 23 453 | 70 69 66 63 62 454 | 4 5 7 8 11 455 | 44 43 42 41 39 456 | 6 7 8 11 14 16 457 | 27 28 30 31 32 33 458 | 84 82 81 80 78 77 74 459 | 74 71 70 67 65 62 59 58 460 | 53 56 59 61 63 65 461 | 85 86 87 89 92 93 95 96 462 | 49 50 53 56 58 59 61 63 463 | 72 69 66 65 63 464 | 57 55 54 51 50 48 465 | 55 57 58 61 63 64 66 68 466 | 19 21 24 26 27 467 | 60 59 58 55 53 50 48 47 468 | 77 76 74 71 70 68 66 63 469 | 3 4 7 10 11 14 15 17 470 | 58 57 54 52 49 471 | 77 75 74 72 70 472 | 80 77 74 72 70 68 67 473 | 33 30 27 24 21 20 17 474 | 44 45 46 48 50 52 54 57 475 | 72 73 76 78 81 82 85 476 | 88 91 92 93 94 97 98 99 477 | 23 20 19 18 15 12 11 478 | 39 40 43 44 45 48 479 | 84 87 88 91 94 95 480 | 38 35 32 30 27 26 23 22 481 | 34 35 36 38 41 42 43 482 | 61 63 66 68 69 483 | 51 54 56 57 59 60 484 | 63 66 67 70 71 74 77 485 | 17 16 13 12 9 8 486 | 63 61 59 57 55 52 50 487 | 61 64 65 67 70 72 74 76 488 | 74 72 69 68 65 64 489 | 12 15 16 18 20 490 | 97 95 94 91 88 491 | 67 68 69 70 73 76 78 492 | 51 54 57 58 61 63 65 493 | 45 44 41 38 36 35 32 494 | 70 73 76 78 79 81 82 495 | 18 15 14 13 11 9 6 496 | 44 41 40 39 36 35 497 | 33 34 37 38 40 498 | 30 29 26 24 21 19 499 | 29 30 31 32 33 36 38 500 | 48 46 45 43 41 40 501 | 83 84 87 88 90 502 | 48 49 51 52 53 54 57 503 | 68 71 73 74 76 78 81 83 504 | 79 81 84 86 87 90 505 | 63 64 67 68 71 73 506 | 47 49 50 51 52 53 54 56 507 | 95 93 90 89 88 85 83 81 508 | 46 44 42 41 40 38 35 34 509 | 87 86 84 81 78 75 73 510 | 84 87 90 91 92 94 511 | 87 86 83 81 80 512 | 11 9 6 5 3 2 513 | 10 8 5 4 3 514 | 49 46 44 43 40 38 515 | 34 37 38 39 41 43 44 46 516 | 47 50 52 54 57 517 | 87 86 84 81 78 75 518 | 81 84 85 87 88 91 92 94 519 | 32 35 38 39 42 45 48 50 520 | 74 73 71 70 69 68 521 | 41 40 37 36 34 32 29 27 522 | 13 15 16 19 21 23 523 | 17 16 14 12 10 7 4 524 | 66 69 72 73 74 75 77 525 | 13 11 8 7 6 3 1 526 | 13 16 17 20 21 23 527 | 32 30 28 25 23 21 528 | 75 73 70 67 64 529 | 22 23 26 27 30 530 | 67 70 72 74 75 76 79 531 | 52 51 50 49 46 44 41 38 532 | 64 62 59 57 55 54 52 533 | 34 37 38 39 40 42 45 534 | 14 11 10 7 5 535 | 1 4 6 9 11 536 | 75 72 70 69 67 65 64 537 | 22 19 16 15 14 538 | 86 85 84 83 82 79 77 539 | 88 85 84 81 78 77 76 73 540 | 15 14 12 10 8 7 4 541 | 53 54 57 60 63 64 66 542 | 72 70 67 66 63 61 543 | 21 24 27 29 30 32 34 544 | 21 19 18 17 15 14 545 | 16 13 11 9 6 546 | 49 52 53 56 58 61 64 67 547 | 57 56 54 51 48 46 43 41 548 | 90 91 94 95 96 97 98 549 | 59 62 64 65 67 550 | 33 30 27 24 21 18 551 | 25 23 22 20 19 17 552 | 3 4 5 7 9 11 553 | 57 54 52 50 47 44 43 41 554 | 86 88 91 93 94 555 | 54 55 58 59 62 63 556 | 91 94 95 96 99 557 | 86 89 92 94 96 558 | 69 70 73 74 76 77 559 | 3 6 7 8 10 13 560 | 65 63 60 57 56 55 53 561 | 13 15 18 20 22 562 | 14 13 11 10 7 6 3 563 | 5 6 9 11 14 15 564 | 59 62 63 65 66 565 | 62 65 67 69 70 71 74 75 566 | 70 69 67 64 61 59 567 | 70 68 66 64 61 58 55 52 568 | 3 6 7 8 9 569 | 11 13 15 16 18 20 23 570 | 95 93 91 89 86 83 81 79 571 | 25 23 22 21 18 17 572 | 63 64 67 70 71 73 573 | 94 93 90 88 86 83 574 | 86 84 83 80 78 575 | 17 16 13 11 8 5 2 1 576 | 78 79 82 84 86 88 91 577 | 69 68 67 65 63 578 | 77 78 79 81 83 85 87 90 579 | 77 75 72 71 69 66 580 | 76 77 80 81 83 85 581 | 82 81 79 76 74 72 582 | 63 61 58 56 53 52 583 | 65 66 69 71 74 77 78 584 | 37 40 41 44 47 585 | 90 89 87 84 82 586 | 69 72 73 76 78 81 587 | 10 11 13 14 16 19 22 588 | 52 51 48 47 44 589 | 75 76 79 81 84 590 | 82 80 77 76 75 74 591 | 78 77 75 74 72 70 68 592 | 12 13 15 16 17 20 22 25 593 | 12 9 7 5 3 2 594 | 44 42 40 37 36 595 | 65 67 69 70 73 75 78 596 | 92 91 89 86 83 82 597 | 98 96 93 92 90 88 598 | 77 74 72 71 70 69 68 599 | 74 73 71 69 68 600 | 85 88 91 93 95 601 | 12 10 9 6 5 3 1 602 | 88 87 84 82 81 80 603 | 5 6 9 10 11 14 604 | 20 19 17 16 14 12 605 | 50 47 45 43 40 39 606 | 57 54 52 49 48 46 607 | 79 80 81 82 85 608 | 93 90 89 88 86 609 | 6 9 10 11 12 14 17 19 610 | 4 7 9 10 12 611 | 45 44 42 40 39 612 | 1 3 6 7 9 10 13 613 | 37 36 33 31 28 26 25 22 614 | 25 24 23 21 19 615 | 78 81 84 86 89 616 | 23 21 19 16 13 10 9 7 617 | 82 81 78 75 74 72 71 69 618 | 94 93 90 87 84 81 619 | 90 89 87 84 82 81 78 76 620 | 86 83 82 80 79 76 75 72 621 | 65 62 59 57 55 53 622 | 41 44 47 50 53 623 | 99 96 93 91 88 85 83 81 624 | 94 91 90 87 85 82 81 79 625 | 50 47 45 44 42 40 39 626 | 79 82 84 85 86 89 91 627 | 28 26 24 21 20 19 628 | 22 23 25 26 27 29 30 629 | 42 45 48 49 50 51 630 | 90 88 87 86 84 83 631 | 14 15 16 18 21 24 632 | 91 89 88 87 84 83 633 | 7 10 11 14 15 16 17 634 | 60 58 56 55 52 51 48 47 635 | 88 91 93 94 96 636 | 91 88 85 83 81 78 76 74 637 | 54 51 50 48 45 42 41 40 638 | 84 86 89 90 92 94 96 639 | 16 13 12 10 7 640 | 47 49 51 53 54 55 641 | 43 45 47 49 50 53 642 | 97 94 92 89 86 83 81 643 | 85 88 89 90 92 93 94 644 | 51 53 55 58 60 61 63 65 645 | 61 63 64 66 69 71 73 646 | 60 58 57 56 54 647 | 56 54 53 52 50 648 | 89 87 84 81 78 76 73 70 649 | 15 16 17 20 21 650 | 34 36 37 38 41 44 651 | 41 40 39 36 33 32 30 27 652 | 91 92 94 96 97 98 99 653 | 12 14 17 20 21 654 | 40 43 44 47 50 52 54 55 655 | 49 52 53 54 56 59 61 656 | 91 89 86 84 82 79 78 75 657 | 43 45 47 50 51 54 57 658 | 51 48 45 42 41 659 | 34 33 32 30 29 660 | 55 57 58 60 61 64 661 | 62 59 58 55 54 662 | 61 63 66 69 72 74 663 | 55 53 52 49 48 47 664 | 20 22 25 27 30 32 34 35 665 | 71 73 76 78 79 81 666 | 35 36 38 39 41 44 47 48 667 | 60 63 66 69 71 73 76 79 668 | 90 89 86 84 82 80 669 | 71 73 76 77 80 82 84 87 670 | 81 82 83 86 87 89 671 | 42 40 38 37 34 672 | 97 96 93 91 89 86 673 | 11 12 15 16 18 674 | 1 2 5 8 10 12 675 | 8 7 6 3 2 1 676 | 71 70 67 65 64 677 | 91 89 88 85 82 79 678 | 69 67 65 63 61 60 58 679 | 53 52 50 49 46 44 42 41 680 | 21 19 18 17 14 13 11 681 | 93 92 91 90 87 84 682 | 34 31 29 27 26 24 23 20 683 | 86 84 82 81 78 77 684 | 71 73 74 75 76 79 81 82 685 | 28 31 32 33 34 36 39 686 | 53 56 58 60 62 65 68 69 687 | 50 51 54 55 58 688 | 59 61 64 65 66 689 | 81 83 86 87 89 690 | 65 64 62 61 60 691 | 75 74 72 71 68 67 64 63 692 | 29 31 34 37 39 41 43 46 693 | 51 48 46 43 42 39 36 694 | 34 35 38 39 42 45 48 695 | 34 32 31 29 27 24 22 20 696 | 28 27 26 24 21 20 17 15 697 | 27 30 31 33 35 37 39 698 | 47 44 41 39 36 35 699 | 60 62 63 65 67 68 70 71 700 | 28 31 32 34 37 701 | 38 41 42 43 45 702 | 65 64 61 60 59 703 | 78 81 84 86 87 90 91 93 704 | 45 42 41 38 37 36 705 | 72 75 76 79 81 82 84 86 706 | 81 78 77 74 73 72 69 66 707 | 70 71 74 76 77 80 82 83 708 | 17 15 12 9 8 7 6 709 | 42 44 45 48 51 53 55 710 | 60 58 57 55 54 711 | 36 33 32 31 29 712 | 49 50 53 54 56 58 60 713 | 71 72 75 76 78 80 82 85 714 | 38 35 32 29 26 715 | 30 33 36 37 40 716 | 65 62 61 58 56 54 52 717 | 28 31 33 36 38 41 43 45 718 | 85 83 81 80 79 77 74 71 719 | 72 69 68 66 64 61 720 | 48 50 52 53 54 56 58 721 | 78 80 81 83 86 88 722 | 57 55 52 50 49 46 45 42 723 | 85 88 90 91 93 94 724 | 91 89 87 86 83 82 80 77 725 | 77 78 81 84 87 88 90 93 726 | 67 68 69 71 74 77 78 727 | 65 64 61 59 58 57 728 | 24 26 29 32 35 38 729 | 64 67 68 69 72 74 76 730 | 82 80 77 75 73 70 731 | 12 15 16 19 21 23 26 28 732 | 90 88 85 84 81 80 78 75 733 | 18 20 22 23 25 28 734 | 79 78 77 75 73 735 | 69 68 67 64 61 736 | 58 60 62 64 66 737 | 35 36 38 41 44 45 738 | 81 84 86 87 90 91 93 96 739 | 78 75 72 70 67 64 61 60 740 | 5 6 9 11 13 15 17 741 | 51 53 54 55 57 60 61 742 | 41 38 36 34 31 29 28 743 | 47 50 52 53 56 59 60 744 | 27 25 22 20 18 16 13 10 745 | 46 48 50 51 52 746 | 93 92 90 89 88 747 | 63 62 60 57 54 53 50 48 748 | 82 84 86 87 90 91 749 | 26 29 30 31 34 35 38 40 750 | 79 77 76 74 72 70 751 | 25 27 28 30 31 752 | 84 85 86 88 90 92 753 | 26 29 30 31 33 36 38 754 | 59 62 65 66 69 70 71 755 | 4 5 7 9 12 756 | 10 12 14 15 16 19 22 757 | 44 47 50 53 56 59 62 63 758 | 85 87 89 90 91 93 759 | 31 34 37 39 42 45 46 760 | 32 33 34 35 36 37 39 40 761 | 78 77 76 74 72 762 | 37 40 42 44 47 49 52 763 | 11 9 8 6 4 3 2 764 | 24 22 19 18 16 13 765 | 36 34 32 29 28 25 23 21 766 | 87 84 81 79 76 75 73 767 | 83 85 87 88 91 94 97 99 768 | 36 33 32 30 29 27 24 769 | 86 85 83 82 79 77 74 770 | 59 56 54 52 49 48 47 771 | 78 79 82 83 85 87 88 772 | 36 39 42 45 47 50 773 | 87 89 90 93 94 96 99 774 | 93 94 95 97 98 775 | 20 17 15 14 11 9 6 3 776 | 73 70 67 66 64 777 | 84 85 87 90 92 94 97 778 | 49 46 45 43 40 779 | 4 7 8 9 12 780 | 28 26 24 21 18 16 781 | 15 16 19 20 23 782 | 14 15 16 17 20 22 783 | 45 46 49 50 53 54 56 58 784 | 58 57 55 54 51 49 785 | 52 55 58 61 62 65 67 70 786 | 28 30 31 34 35 38 787 | 40 38 35 32 30 29 26 24 788 | 91 88 85 84 82 79 77 789 | 35 34 32 29 27 26 25 790 | 60 57 55 52 51 791 | 85 88 90 91 94 97 792 | 13 16 18 19 22 24 25 793 | 41 42 43 44 45 48 49 794 | 32 34 36 38 41 42 795 | 13 14 17 20 22 25 796 | 51 48 46 44 43 797 | 60 63 65 66 68 71 72 74 798 | 17 20 22 25 27 30 799 | 75 77 80 82 85 87 800 | 73 74 77 80 82 85 801 | 78 77 74 72 69 67 802 | 21 19 17 15 13 11 803 | 43 46 47 50 52 804 | 79 80 82 85 86 805 | 74 76 78 80 82 84 87 90 806 | 92 90 88 86 84 82 79 807 | 12 10 9 7 6 3 808 | 11 9 8 7 6 809 | 29 28 27 24 22 20 810 | 75 76 78 80 82 811 | 66 64 62 60 57 56 55 812 | 58 56 54 53 52 50 47 45 813 | 13 14 17 19 21 24 25 26 814 | 14 17 19 22 25 27 30 32 815 | 90 89 86 84 83 81 80 816 | 52 49 46 45 42 41 817 | 39 40 41 43 46 818 | 53 56 58 61 62 819 | 83 81 79 77 75 72 70 820 | 59 60 62 65 66 821 | 34 35 36 39 40 41 43 45 822 | 80 81 82 83 86 89 90 92 823 | 17 16 14 11 10 8 5 824 | 20 18 16 14 12 11 8 5 825 | 54 51 50 47 45 42 40 39 826 | 96 93 92 90 89 87 85 827 | 85 87 90 91 93 95 96 99 828 | 49 50 53 55 57 829 | 16 19 21 24 25 830 | 64 65 68 69 71 73 831 | 23 26 29 32 34 37 38 41 832 | 79 82 85 87 90 833 | 88 89 92 94 95 98 834 | 22 20 19 17 14 11 835 | 74 72 71 69 66 64 61 836 | 29 26 25 24 22 19 837 | 56 54 53 52 49 48 45 838 | 28 31 34 36 37 38 40 839 | 23 22 21 18 16 15 12 840 | 43 44 47 50 52 53 55 58 841 | 92 91 88 85 82 80 842 | 41 43 44 47 48 51 53 843 | 18 16 13 11 9 7 6 4 844 | 84 85 88 90 91 92 93 96 845 | 57 58 61 62 64 67 70 73 846 | 57 58 59 62 63 847 | 26 24 23 21 18 17 848 | 95 93 92 91 88 85 82 849 | 63 65 67 68 71 72 75 850 | 85 86 89 92 95 97 99 851 | 29 27 26 25 22 21 18 852 | 40 42 45 46 47 49 853 | 43 45 47 49 50 53 55 854 | 94 92 89 88 86 83 82 80 855 | 28 27 26 23 21 856 | 85 88 90 92 94 96 97 857 | 58 56 54 52 49 46 45 42 858 | 64 67 69 72 74 75 76 78 859 | 8 10 11 13 16 19 20 860 | 97 96 94 92 90 861 | 59 61 62 64 66 69 71 862 | 74 73 70 68 66 863 | 20 23 25 27 28 30 32 864 | 34 31 30 29 27 25 22 19 865 | 44 42 40 39 38 36 34 866 | 93 90 88 85 82 79 76 73 867 | 69 68 66 64 63 60 58 56 868 | 13 12 10 8 7 6 5 3 869 | 68 71 74 75 76 870 | 40 39 36 34 31 28 27 25 871 | 48 45 44 42 39 38 37 872 | 68 70 72 75 78 80 83 873 | 84 87 88 91 93 96 99 874 | 45 44 41 39 37 35 875 | 16 14 11 9 8 6 3 2 876 | 77 80 81 83 86 87 877 | 18 21 23 26 27 28 30 31 878 | 12 15 16 19 21 24 879 | 27 29 31 32 33 35 880 | 77 76 74 73 70 67 64 63 881 | 28 30 33 35 36 37 38 882 | 49 48 46 43 40 37 34 32 883 | 75 77 80 82 83 85 88 91 884 | 20 17 14 13 12 10 9 6 885 | 63 60 57 55 54 886 | 18 21 24 25 26 887 | 63 65 68 70 73 888 | 88 87 85 84 83 80 889 | 61 64 67 68 70 890 | 21 22 24 27 29 32 34 891 | 52 51 49 48 46 43 892 | 82 81 78 76 74 73 71 893 | 24 21 20 19 17 894 | 66 63 62 61 58 57 54 51 895 | 69 66 64 62 61 59 57 56 896 | 14 17 19 20 21 24 897 | 3 4 5 8 9 11 13 15 898 | 81 79 78 75 74 73 899 | 30 31 33 34 36 37 40 900 | 66 63 62 60 58 56 55 52 901 | 15 16 18 20 21 902 | 77 79 81 82 83 84 87 903 | 7 8 9 11 12 15 17 904 | 19 16 14 12 10 8 7 6 905 | 42 45 47 49 52 906 | 42 39 36 33 30 28 26 907 | 32 30 28 25 22 21 20 908 | 73 70 69 67 65 64 909 | 10 12 13 14 15 18 910 | 72 69 66 64 63 911 | 75 76 79 81 82 85 87 912 | 63 66 69 71 74 913 | 17 14 13 10 8 7 5 2 914 | 52 55 57 58 60 62 915 | 41 42 45 48 50 51 916 | 61 60 58 56 55 54 51 917 | 56 57 59 60 63 64 66 918 | 79 78 77 76 75 73 70 68 919 | 93 91 89 87 85 84 920 | 39 38 37 36 33 31 29 28 921 | 32 35 38 39 42 44 45 922 | 12 15 18 19 22 25 923 | 88 90 91 92 95 96 98 924 | 45 43 41 38 35 33 925 | 22 20 17 16 14 926 | 52 50 49 47 45 42 927 | 98 95 94 93 91 928 | 6 7 9 10 11 12 15 18 929 | 55 58 61 62 64 66 68 930 | 67 69 72 75 76 78 931 | 96 93 90 87 84 932 | 58 60 63 66 69 933 | 51 52 53 56 57 58 59 934 | 24 26 29 32 35 36 935 | 35 32 29 27 25 22 19 16 936 | 34 33 31 28 27 26 937 | 45 44 41 38 37 34 938 | 32 31 30 29 27 24 23 939 | 59 60 63 65 66 69 940 | 61 59 58 55 53 51 48 941 | 80 81 84 87 90 92 942 | 67 64 63 61 58 56 943 | 58 61 64 65 67 68 69 944 | 52 55 56 58 59 60 945 | 76 75 72 69 67 64 62 946 | 78 81 82 83 85 88 947 | 48 46 44 42 41 39 36 33 948 | 65 64 63 60 59 57 54 51 949 | 56 58 59 60 61 63 950 | 64 66 69 72 74 77 79 81 951 | 36 34 32 30 28 26 23 952 | 82 80 79 77 76 74 72 953 | 22 24 27 28 31 954 | 67 66 63 61 59 58 55 955 | 55 57 59 62 63 64 956 | 4 5 7 9 10 12 14 957 | 57 58 59 62 64 65 67 68 958 | 21 19 16 14 11 10 8 5 959 | 33 31 29 26 24 22 19 960 | 66 63 60 59 57 961 | 54 51 50 47 46 44 43 962 | 97 94 93 92 89 86 963 | 16 19 22 23 25 27 964 | 46 44 43 41 40 39 965 | 74 72 70 68 66 65 63 60 966 | 55 54 51 50 48 45 967 | 17 18 21 22 23 26 28 30 968 | 61 62 65 66 67 969 | 77 75 73 70 67 64 61 60 970 | 48 50 53 56 59 61 64 65 971 | 75 78 79 81 83 86 972 | 52 54 56 59 61 63 66 68 973 | 45 42 40 39 36 35 32 31 974 | 77 75 73 71 70 975 | 60 57 55 52 51 50 48 47 976 | 70 73 75 77 79 82 84 85 977 | 75 77 79 81 84 86 88 978 | 49 52 53 55 57 60 979 | 80 81 83 84 85 87 90 93 980 | 16 17 19 21 22 24 981 | 61 58 55 53 51 48 47 46 982 | 70 68 65 63 61 58 55 54 983 | 3 6 8 10 11 984 | 89 87 86 84 82 81 79 985 | 27 29 32 33 36 38 41 43 986 | 47 49 50 51 52 55 56 987 | 28 29 31 32 35 38 988 | 90 89 88 87 85 84 989 | 38 37 34 33 32 29 26 23 990 | 67 66 65 62 59 991 | 66 63 61 60 59 58 57 992 | 21 20 19 17 15 12 9 8 993 | 18 21 23 24 27 994 | 8 10 13 15 16 995 | 29 28 25 23 20 996 | 63 61 58 57 55 54 997 | 53 54 55 58 60 63 64 998 | 13 12 10 7 6 4 999 | 35 33 32 30 27 24 21 18 1000 | 69 67 64 63 61 60 58 55 --------------------------------------------------------------------------------