summaryrefslogtreecommitdiff
path: root/2020
diff options
context:
space:
mode:
authorTom Smeding <tom.smeding@gmail.com>2020-12-05 15:34:00 +0100
committerTom Smeding <tom.smeding@gmail.com>2020-12-05 15:34:00 +0100
commitd4d60939353e01ee79d042a6ae1df5ebee904d80 (patch)
treeb4c416c8dddbe2ba0129b822ebf1bc49de0db677 /2020
parent99a1e56c593774805ed62d3811c963bfca5fbf32 (diff)
Day 5
Diffstat (limited to '2020')
-rw-r--r--2020/5.hs17
-rw-r--r--2020/5.in908
2 files changed, 925 insertions, 0 deletions
diff --git a/2020/5.hs b/2020/5.hs
new file mode 100644
index 0000000..51c9bca
--- /dev/null
+++ b/2020/5.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE LambdaCase #-}
+module Main (main) where
+
+import Data.List (sort)
+import Numeric (readInt)
+
+import Input
+
+
+parse :: String -> Int
+parse = fst . head . readInt 2 (`elem` "FBLR") (\case 'F' -> 0 ; 'B' -> 1 ; 'L' -> 0 ; 'R' -> 1 ; _ -> undefined)
+
+main :: IO ()
+main = do
+ input <- map parse <$> getInput 5
+ print (maximum input)
+ print (fst (head (filter ((== 2) . snd) (zipWith (\a b -> (a+1, b-a)) (sort input) (tail (sort input))))))
diff --git a/2020/5.in b/2020/5.in
new file mode 100644
index 0000000..bf62729
--- /dev/null
+++ b/2020/5.in
@@ -0,0 +1,908 @@
+FBFBFBFRRR
+BBFBFBFRRR
+BFFFFFBRRR
+BFFFFBBLRR
+BBFFBBFLRR
+BBFFFFBRLL
+BBFBFFBLLL
+FBFFBFBRLR
+FBFFBFBLLR
+FBFBBFFLLR
+BFBFBBFLLL
+FFFBFFBRLR
+FFFBBBFRRR
+BBFFFFFLRL
+FFFFBBFRLR
+BBBFFFFRLL
+BBFFBFFRLL
+BFBFFFBLRR
+FFBBBFFRRL
+FBFFFFFLRL
+FBFFBBBRRR
+BFFFBFFLRR
+FFFBBBBLLR
+BFFBFFFLLL
+BFFBBBFLRR
+FBFBBFFRRR
+BBBFFBFRRL
+BFBBBFFRRR
+FFFBFBBLRL
+BBFFFBBRRR
+FFFBBFFRLR
+BFFFFFBRRL
+BFFFBBFRLR
+FBBBBBBLLR
+BFFBBBBLLL
+FFFFBBFLRL
+FBFBBFBLRR
+FBBBBFBLRL
+FBBBFFFRLL
+BBFBFBBLRL
+FBFFBFFRLL
+FFBFBFFLRL
+BFBFBBBLRR
+FFBFFBFLRR
+BFBFFBFLRR
+BFFBFFFLLR
+BBBFFFBLRR
+FBFBBBFRRL
+FBBFFFFLRR
+FFBBBBFLRL
+FFFFBBBLRL
+FBBFFFBRRR
+FBBBFFFRRR
+FBFBBFFRLL
+FFBBBBFLLR
+FBBFFBBRRL
+BBFBFFBLLR
+FFBBBBFRLR
+BBFBFFFLRR
+FFFBFBFRLR
+BFBBFBFLLR
+BFBBBFFRRL
+FFBBBFBRLR
+BFBFFFFLRL
+FBBFBFFRRR
+BBFBFBBLLR
+BFFBFBBRRL
+FFFBFFFRRL
+BFFFBFFRRR
+FFBBFBBLLL
+FBBFFBFLLR
+BFBBBBFLRL
+BFBFFFFRRL
+BBBFBFFRRL
+FFBFBFBLLL
+FBBBBFBRRR
+BFFFBBBLRR
+FBFFFBFRLR
+BFFBFFFRLL
+BBBFBBFLLR
+BFBBBFBLLL
+BFBFFBFRLR
+BBFFFFFRRR
+FBBBBFBLLR
+BFBFFBBLLR
+FBFBFFFLLR
+BBFFFBBRRL
+BBFBFBFLLL
+BFFFBBBLLR
+BFBBFFBRLL
+FBFBBBFLRR
+FBFBBFFLRR
+FBBFBFBRRL
+BFFBBBFLRL
+BFFFBFBRRR
+FBFBFFBLLR
+BFBFFBFLLR
+FFFBFBBRLL
+BBFFFFFRRL
+FBBFBBBRRR
+FBBBFFFLLL
+FFFBBBFLRL
+BBBFFBBLLR
+BFFFFBBRLR
+FFFBFBBLLL
+BBFFFFBLLR
+BBFBFFFRLR
+BBFBFFFRLL
+FBBFBBFLLR
+BBBFBFFLLL
+FBFFFBBRLL
+BFBBFFBLRR
+FFBBFFBLRL
+FFFBBFBLRL
+BFBFFFFLLL
+BBFBFBFRRL
+BFBFBBBLLR
+BBFFFBFRRL
+FBBBFFFRLR
+FFFBFFBLLR
+BFFBBBBLRL
+BFBBFFBLRL
+FFBBFFBRLL
+BBFBBFBRRL
+FFBFFBBRRL
+FBBBBFBLLL
+BBBFFBFLRR
+FFBBFFBLLR
+BFBFBFFLRL
+BBFFFBFLRL
+FBFFBFFRRL
+FBBBBBFRLR
+FFFBFBBLLR
+FBBFBFFRRL
+BBFFBBBLLR
+BFFBBFFRLR
+BFBFBFFLLL
+FBFFBBBRLR
+FFBFFBFRLR
+BFBFBBBRRL
+FFBFBFFLLL
+BBFFFBBLLL
+FFFFBFBRRR
+BFFBFFBLRL
+BBFBBBFLRL
+FFBFFBFLLR
+FFBBFBBLLR
+FBBFBFBRLL
+BFBBFFFRLL
+BFBBBFBLLR
+BFBFFFBLLL
+FFFFBBBLLR
+FBFFBBFRLL
+FFFBBFBRLL
+BFFBBFFLRL
+BFFBBFFLLL
+FFBFBBFRRR
+BFBFFBBLRL
+FBBBBFFRLL
+BBFFFFBLRR
+FBFFBBBRRL
+FBBFBFBRRR
+FBBFBBBRRL
+BFFBFFFRRL
+BBBFFBBRRR
+BFFFFFBLRR
+FBBBFBBLLR
+BFFFBFFRRL
+FFFFBBBRRL
+FFFBFFBLRL
+BFFFFFFRRR
+FBBFFFFLRL
+BFFFFBBLLL
+FBFFFFFLRR
+BFBBFBBLLR
+FBFFFFFRLL
+FBBBBFBRRL
+BBFFFFFLRR
+BFFBFBFLLR
+BFBFBFBRLR
+FBFBBFBRLR
+BBFFBFFRRL
+FFBFBBBLLR
+FFBFBFBLRL
+BFBBFBFLLL
+BFBBBBFRLL
+FFFBBFBLLR
+FFBBBFBRRL
+BFBFBBBRRR
+FBFBFFFRLL
+FBFFBFFLLL
+FBFFFFFLLL
+FBFBFBFLLL
+BFFBFFBRLL
+FBBFBBFRRR
+FBFFBFBRRL
+BFFBFFBLRR
+FBFBBBFLLR
+BFBFBBFLRR
+FBBFBBBLLR
+BBFBBFBLLL
+BBFBBBFLLL
+BFBFFFBLLR
+BFFFFBFLRR
+BFFFBBBLLL
+FFFBFBBRRR
+FFBFFFFRRL
+BBFBBBFRRL
+BBBFFBBLRR
+BFBBBFFLLL
+FFBBFFBLRR
+FBFFBBBRLL
+BFBFFFFRLL
+BBFBBBBLLL
+BBFFBBBLRR
+FFFBBFBRRR
+FFFBFBBRRL
+FBFFFBBLLL
+FFBFFFBRLR
+BFFBBBFRLL
+FFBBBBBLLR
+FBBBFBBRLL
+BFBBFFFLLR
+FFFBFBFLRL
+BFBFBBBRLR
+BBFFFFBRRL
+FBFFBFFRLR
+FBFBFBFRRL
+BFBBFBBRRL
+FBBFFFFLLR
+FBFFBBFRRR
+FBBFBFFLLR
+FFBFFFFRLR
+BFFFBBBLRL
+BFFFFBFRRL
+FBBFBFBLLR
+FBFBBBFRRR
+FFBFBBFLLR
+FFBBBBFLLL
+FBFBBBBRLL
+FFBBBBFLRR
+FBBBFFFLRL
+BBBFBBFLRL
+FBBFBBFRRL
+FBBFFBBRLR
+BBBFFFFLLR
+BFFBBFFRLL
+FFBBBFFRRR
+FBBBFBBLRL
+FBBBBFFLLL
+BBBFFBFRLR
+FBFFBBFLLR
+FBBFBBFRLR
+FBFBFFBLRR
+BBBFFFBRRL
+BBFBFFBRRL
+FFFBBBBRRL
+FFBBFBFLRL
+BFBBFBBRLR
+FFBFBFFRLR
+FBFBFBBLLL
+BBFFFBFLLL
+BBFBFBBRLR
+FBBBFFBRRR
+FBFBBBBLRR
+FBFBBBBLRL
+BBFFFFBRLR
+BFBFBFFRLR
+BFBBBBBLRR
+BFBBFBBRLL
+FBFFBBBLLL
+FBBFFBFRRL
+FFFBFBFRRL
+FBFBBBBLLR
+BBFBBFFRLL
+BBBFFFFLLL
+FBBFBFFLRL
+BBBFFFFRLR
+FFBBBBBLLL
+FBFFFBBRLR
+FFFBBBBLRR
+FBFBBBFRLL
+BFBBFBFLRL
+BFFFFBFLLR
+BBFFBBFLLL
+FFBBFBBRLR
+BFFBBFBLLL
+FFBFBFFRRR
+BBFBFBBRLL
+FFFBBFBRRL
+FFBFFFBLRR
+FFBFFBBLRR
+FFFBFFFRRR
+FFFBFFFLLR
+FFBBBBBRRL
+FFBBFBBLRR
+BBFBBBFLLR
+FBFBFBFRLR
+FBBBFFBLRL
+BBFFBFBRRL
+BFBBBFFLRR
+FFFFBBFLLR
+BFBFFFFRRR
+FBFFFBBRRR
+BBFBFFFLLR
+BBFBBFBRLR
+FBBFBBFRLL
+BBFFFFBLRL
+BFBFBFBLRR
+FBFFBBFLRR
+BBFBFFBRLL
+BFBFBBFRLR
+FBFBBFBRLL
+FFFBFFFRLL
+FBBBFBFLLL
+BBBFBFFLRL
+BFFBBBFRRL
+FFBBFFBRLR
+FBFFFFBLLL
+BBBFBBFLLL
+BFFFBBBRRL
+BFFBBFBLRL
+BBBFFBFRRR
+BFBBBBFRLR
+BFFBBFBRRR
+FBFFBBFLLL
+BBBFFFFRRL
+BFFFBFBRLL
+FFBBFFFLLL
+FBBBBBFLRR
+FFFBBFFLRR
+BBBFBBFRLL
+FFBBBFFLRR
+BBFBFFFRRR
+BFBFBFFLLR
+BFBFBFFRRR
+FBBBFBFLLR
+BBFFBFBLLR
+BBBFBFBLRR
+BFBFBFFRRL
+FBBBFBFLRL
+FBBBBBFLRL
+FBFFFFBRLL
+FBFBBFFLLL
+FFBBBFFRLL
+FFBBFFBRRR
+FFFBBFBLLL
+BBFFFBBLRL
+FBFFFFFLLR
+BFBFFBBRRL
+FFFBFBFRRR
+BFBFFBFRLL
+BFFBBBBLRR
+FBBFBBBLRL
+FBBFFBFRRR
+FFBFFFFRLL
+BBFFBFBLRR
+BFBFFBBRLR
+BBFBBBBLLR
+BFBFFBBRRR
+BFFBFBBLLR
+FBBFBFBLRL
+BBFFFBFRLL
+BBBFFFBRLR
+FFFBBBFRLR
+FBFFFFFRLR
+FBBBFBFRLR
+BBFBFFBLRR
+FBFFBBBLLR
+BBBFBBBLLR
+BBBFFFFLRR
+BFFBBFFRRL
+FBFFFFBRRR
+FBBBFFFLRR
+FBBFBBBLRR
+FBFFBFBLRR
+FBFBBBFLLL
+BFBBFFBRRR
+BFBBBBBLLL
+FBFBBBBRRL
+BFFBFBFRRR
+FFBBBFBLLR
+FFBFBBBLRR
+FFBFBBBLLL
+FBBFBBFLLL
+BFFFFBFRRR
+FBFBBFFRRL
+BBFFFFBRRR
+BFBBBFBRRL
+FBBFFBBLLR
+BBBFBFBLLR
+BFBBFBFRRL
+FFBBFFBRRL
+FBFBBBBRRR
+BFFBBFBLLR
+FFBFFBBRRR
+FBBBBBFLLR
+BFBBBFBRLR
+FBFFBFFLRR
+BFBBBFBLRR
+FFBFFBFRRR
+BFBBBFFRLR
+FFBBFFFLRL
+FBBBBBBLRR
+BBFFBBBRRL
+FBBBBBBRRR
+BFBBFBBRRR
+BBBFFFBLLL
+BBFFBFBLLL
+FBFFBBFLRL
+FBFFBBBLRR
+BBFFFBFRRR
+BBFBBBFLRR
+FFFBBBFLLR
+BFFFBFBLRL
+BFBBFFBLLR
+BFBBBBBRRL
+BBBFFBFRLL
+BFBBFBBLRL
+BFFFBFFLRL
+FFBBFBBRRR
+FBFBBFFRLR
+FBFBFFFRRR
+FBFBBFBRRL
+BFBBBBBRLL
+FBBBFBFRRR
+FBFBFFFRRL
+BBBFBFFLLR
+FFBBBFBLLL
+BBFFBFFRLR
+FBBFBFBLLL
+BFFFFBBRRR
+FFFBBBBRRR
+FBBFBFBLRR
+FBBFFFFRRR
+BBFFBFFLRL
+BFBBFFFRRR
+FFBBFBFLRR
+FFFBBBBLRL
+FBFFBFBLRL
+FBFFFBFRLL
+BBFBFBFRLL
+FFBFFFFLRL
+BBFBBBBRRR
+FFBFBFFRLL
+FFBFBFBLLR
+FFFBBFFRLL
+FBFBBFBRRR
+FBBFFBFLRR
+FBBFBFFLLL
+BFFBBBBRRL
+FBFFBFFLLR
+FBBFFFBRLL
+BFFFFBBRLL
+FFBBFBFRRR
+BFBBBBFLLR
+FBBFBFFRLR
+BBFBFFFRRL
+BFBBFFBRRL
+BBFFBBBLRL
+BFFBFBBRLL
+BFFFBFFRLL
+FFBFBFFLLR
+BBFBBFBLRR
+FFBFFBFRRL
+FBBFFFFRLR
+FBBFFFBLLR
+BFBFFFFLRR
+BFFBFBFRLL
+FBFFFBFRRL
+FFFBBFFLRL
+BFFBFBBRLR
+FBBBFFBRRL
+FFFBFFBRRL
+FFFBFFFLRL
+FBFBFBFLLR
+FFFBFFBLLL
+FFBBBBFRRR
+FBBBBFFLRL
+FBBBFBFLRR
+FBBBBFFLRR
+FFBFBFFLRR
+BBFBFFBLRL
+FBBBFFFRRL
+FBFBFFFLLL
+FFFBFFFRLR
+BBFFBFFLLR
+FBFFBBFRLR
+BFFBBBBRLL
+FFFFBBFRRL
+FFBBBFFRLR
+FBFFFFFRRR
+BBFBBBBLRL
+BFFBBFBLRR
+BFFBFFFRLR
+FFBBFBBLRL
+FFBFFFFLLL
+BBBFBFFRRR
+BFFBBFBRRL
+FBBFBBBRLL
+FFBFBBFRLR
+BFFFFFBRLL
+BBFFFFFLLL
+BFBFBBFLLR
+BBFBBFFRRL
+BBBFBFFLRR
+FBFBFBBLRL
+FBFBFBBRRR
+BBFFFFFLLR
+BBFBBBFRLL
+BFBFBBFLRL
+BFBBBFBRLL
+BBFBBBFRRR
+BFBFFFBRRR
+BFFFFBBRRL
+FFBBFBBRLL
+BFFBBFFLLR
+BFFFBBFLLR
+BBFBBBBRLL
+BBFFFFFRLR
+BBFFBBBRRR
+BFFFFBFRLL
+FBFFBFFRRR
+FFBBBFFLLR
+FBBBBFFRRR
+BFBFBFFRLL
+BFBFFBFRRR
+BBBFBBFLRR
+BBFBFFBRLR
+FFFBFFFLRR
+FFBBBBBRLR
+BFBFBFBRRR
+BFBBFFFLLL
+FFBBBBBRRR
+FBFBFBBRLR
+FBBBBBBRLR
+BFBFFFFRLR
+FBFBBBFLRL
+FFBBFFFRRR
+BFBFBFBLLR
+BBFFBBBLLL
+BFBBFFFRLR
+BFFFFFFLLL
+FBBBBFBLRR
+BFBFBFFLRR
+FFBBBFBRRR
+BBBFBFBRRR
+BFFFBFBLLR
+FFFFBBBRLL
+BBFBFBBLRR
+FFBBBFBRLL
+BBFBBBFRLR
+BFFFBFBRRL
+BBBFBFFRLR
+FFBFFFBRLL
+BBBFBBBLLL
+FBFBFFBRLL
+BFFBFFFLRR
+BBFFFFBLLL
+BBBFFFBRRR
+BFFFBBFRRL
+FBFBBBBRLR
+BFFBFBBLRR
+FFFBFFFLLL
+BFBFBBFRLL
+BBBFBBFRRL
+FFBBFBFLLL
+FBBFFBBRLL
+FBBFFFFRRL
+FBBFFFBLRR
+FBFBFFFLRL
+FFFBBBFRRL
+FFBBFBFRRL
+BFBBBBFRRR
+FFBBBBFRRL
+BFFFBBBRRR
+FBBFBBBLLL
+BFBBBFFLLR
+BFFBFFBLLR
+BFFBBBBRRR
+FFBBBBBLRR
+FBFBBBBLLL
+BBBFFBBLRL
+BFFFFFBRLR
+FBFBFBFLRR
+FBBBFBFRRL
+BFFBBFBRLL
+FBFBFFBRRR
+BFFFBBFLLL
+BFBFBFBRLL
+FFFBFFBRRR
+FBBBBBFLLL
+BFBFFFBRLR
+FBFBFBBRLL
+BBBFBFBRRL
+FBFFBFFLRL
+FBFFFBFRRR
+FFFFBBBRRR
+FFFBBBFLLL
+FFBFFFBRRL
+BFBFBBFRRR
+FFBBBBBLRL
+BFBBBFBRRR
+BFFFFFFLRR
+FBBBFFBRLR
+BFFFBBFLRL
+BFBBFFFLRR
+BFBFBFBLLL
+BFFBBFFLRR
+BFBFFFFLLR
+BBFFFBFLRR
+BFFFBFFLLL
+BFBBBBFLLL
+BBFFBFFRRR
+BFFBFFBRRL
+FBFBFFBRLR
+FFBBBFBLRR
+FFFBBBBRLL
+FFBBFFBLLL
+FBFFFFBLRR
+FFBFBBFRRL
+BFFBFFBRLR
+BFBBBBBLLR
+BFFFFBFLRL
+FFFBFBFRLL
+FBFFFBFLLR
+FBFFFBBRRL
+BBBFBFBRLL
+BBBFBFBRLR
+BFFFFFFLLR
+FFBFBBFLRR
+FBBBBBBLRL
+FFFFBBBRLR
+FFBFFBFRLL
+BFBBFBBLLL
+BBBFFFFLRL
+FFBBFFFRLL
+FBFFFBFLRR
+BFBFBBBRLL
+BFBBFBBLRR
+BFBBFFFRRL
+BBFBFFFLLL
+FBBFBBBRLR
+FBFBFBFLRL
+BBFFBBBRLL
+FFBBFFFRLR
+BBFFFBBLRR
+FFFBFBFLRR
+FFFBBFFLLR
+FFBFFBBLRL
+FBFFBBFRRL
+FFFFBBFRRR
+FFBBFFFLLR
+FFBFBFBRRR
+BFBFBFBRRL
+FFBFBBFLLL
+BFBBBFFRLL
+FBBBBBBRRL
+FBBFFFFLLL
+BFFFFFFRLL
+FBFBFBBRRL
+BFFBBBFRRR
+FBFBBBFRLR
+FBFBFFBLRL
+BFBBBBFRRL
+FFFFBBFLLL
+BBFFBBFRRR
+BFFBFBFRLR
+BFFBFBFLLL
+FBBFFBBLRL
+FFFBFFBRLL
+BBFFBFBRRR
+FFFFBBFLRR
+FFBFBBBRLR
+BFBFBFBLRL
+FFBFFFFRRR
+BFFFBBBRLR
+BFFFBBFLRR
+BFBBFFFLRL
+BFFBBBFRLR
+FBFBFBBLRR
+FFBFBFBRLL
+BBFFFBFRLR
+BFBFFBFLLL
+BBFBBFFRLR
+FFBFFBBRLR
+BFFFFBBLRL
+BFFBBFBRLR
+BBFBBFBLLR
+FFBBBBFRLL
+FFBBBFFLLL
+BFFBFFBLLL
+BFBFFFBRRL
+FBBBFFFLLR
+FBFFFBBLRR
+BFBFFBFLRL
+FBBFFFBLRL
+FBFBBFBLLR
+FBBBFFBLRR
+FBBBBBBLLL
+FFBBFBFRLL
+BBFFFBBRLL
+BFFBFBBLLL
+FFFBBBBLLL
+BBFFBBFLLR
+FFBFFFFLRR
+BFBFFBBLLL
+FFFBBFFRRL
+FBFFBFBRLL
+FFBFFFBRRR
+BBFBFFFLRL
+FBFBBFBLLL
+FFBFBBFLRL
+BFFFFFBLLL
+BBBFBFBLRL
+BBFFFBBLLR
+FBBFFBBRRR
+FBBFFBFLRL
+FFFBFBBLRR
+BFBBBFBLRL
+BBFFBFBLRL
+FFBFFFBLRL
+FBFFFFBRLR
+BBFBFBFLRL
+BBFBBBBLRR
+FFBFFBFLLL
+FBBFFBFRLR
+BBFFBBFRLR
+FBBBFBBRRR
+FBBBFFBRLL
+FBBFFFBLLL
+BBFBFBFLLR
+FBFFFBBLLR
+BFFBFFBRRR
+BBFFFBFLLR
+BBBFFBBRRL
+BFBBFBFRLL
+BBFBBFFLLR
+FBBBBFFRLR
+BBFBFBFRLR
+BBFBBFFLRR
+BBFFBBBRLR
+FFFBBBFLRR
+BBFFBFBRLR
+BFFFFBFRLR
+BBFFBBFLRL
+FBBFBFFRLL
+BFBFFBBLRR
+FBFBFBFRLL
+BBBFFBFLRL
+FFBBFBFRLR
+BFFFFFFLRL
+BBFBFBBRRR
+BFBBFFBLLL
+FFBFBFFRRL
+BFFFFFBLRL
+FFBBFFFRRL
+BBFBBFBRLL
+FBBBFBBLLL
+FBBBFBFRLL
+FFFBFBFLLR
+BFBBFBFLRR
+FFBFBBFRLL
+BFFFFFFRLR
+FFFBFFBLRR
+BFBFFFBLRL
+FBFFBFBRRR
+BFFFBFBLLL
+FFFBBFFRRR
+FBBBFFBLLR
+FBBBBBFRRR
+FBFFFFFRRL
+FFBFBBBLRL
+FBFFBBBLRL
+FFBFFBBRLL
+FBBBBFBRLL
+BFFBBBBLLR
+FBFBFFBLLL
+FBFBBFBLRL
+FBBBFFBLLL
+BFFBBBBRLR
+FBBBBFFRRL
+BBBFFFBLLR
+FBBFBBFLRR
+BFFBFFFLRL
+FFFBFBFLLL
+BBFFFFFRLL
+BFFFBFFLLR
+FBFBFFBRRL
+BBBFFFBRLL
+BFFBFBBLRL
+FFFBBBFRLL
+BFFBFFFRRR
+FFBFFFBLLR
+BFBBBBBRLR
+FBFFFFBLLR
+FFBFBBBRRR
+BBFBBFBLRL
+BFFFBBFRLL
+BFFBFBFRRL
+BFBFFFBRLL
+BFFFFFBLLR
+FBFFFFBLRL
+BBFBBFFLRL
+BBBFFFBLRL
+FBBBBBBRLL
+BBFBBFBRRR
+FBBFFBFLLL
+FFFBBFBLRR
+FFBFBFBRRL
+FFBFBFBRLR
+FFBFBBBRRL
+FBBFFFBRLR
+BBFBFBBRRL
+BFBFFBBRLL
+FFBBFFFLRR
+FBBBFBBRRL
+BBBFFBBLLL
+FFFBBBBRLR
+BFBBFBFRLR
+BBFFFBBRLR
+BBFBFFBRRR
+BBFFBFBRLL
+BBBFBBFRLR
+BFBBFFBRLR
+FFFFBBFRLL
+FBBFBFBRLR
+BBBFFFFRRR
+FFBFFFBLLL
+FFBBFBFLLR
+BFBFBBFRRL
+BBFBFBBLLL
+FFBBBBBRLL
+BBFFBFFLRR
+BBBFBBFRRR
+FBBBFBBRLR
+FFFFBFBRLR
+FFFFBBBLRR
+FBFBFFFRLR
+BBFFBBFRRL
+BFFFBBFRRR
+FFBBFBBRRL
+FFFBBFFLLL
+BBBFFBBRLL
+FBBBBBFRLL
+BFFBFBFLRL
+BBFBBBBRLR
+FFFBBFBRLR
+FBFBFFFLRR
+BFFFFBBLLR
+BBBFFBFLLR
+BBFBBFFRRR
+BFFBFBFLRR
+FBFFFBFLLL
+BFFFFBFLLL
+BBBFBFFRLL
+BBFFBFFLLL
+BBFBBFFLLL
+BFFFBFFRLR
+BFFBBBFLLR
+FFFFBBBLLL
+BFFFBFBLRR
+BBBFBFBLLL
+FBFFBFBLLL
+FBBFBBFLRL
+FBBBBFBRLR
+BBFBBBBRRL
+BFBBBFFLRL
+FFBFFBFLRL
+FFBFFBBLLL
+BFBFBBBLLL
+FBBFFFBRRL
+BFFBFBBRRR
+BFFFFFFRRL
+FBBFFBBLLL
+BBFBFBFLRR
+FFBFFFFLLR
+FBFBBFFLRL
+FBBFFFFRLL
+FBBBBFFLLR
+BBBFFBBRLR
+FBFFFFBRRL
+FFFFBFBRRL
+BFFFBFBRLR
+BFBBBBFLRR
+BBBFFBFLLL
+FBFBFBBLLR
+FFBFBFBLRR
+BBFFBBFRLL
+BFBFBBBLRL
+BFFFBBBRLL
+FFBBBFBLRL
+FBFFFBBLRL
+FBBFFBFRLL
+FFFBFBBRLR
+FBBBFBBLRR
+FBBFFBBLRR
+BFBBBBBRRR
+BFBBFBFRRR
+BFBFFBFRRL
+FFBFBBBRLL
+BFBBBBBLRL
+BFFBBBFLLL
+FFBBBFFLRL
+FFBFFBBLLR
+FBFFFBFLRL
+FBBFBFFLRR
+FBBBBBFRRL