@@ 0,0 1,78 @@
+import algorithm, sequtils
+
+proc readLines(name: string): seq[string] =
+ let f = open(name)
+ defer: f.close()
+
+ var ret: seq[string] = @[]
+
+ for line in f.lines:
+ ret.add(line)
+
+ ret
+
+type
+ Direction = enum
+ Front, Back, Left, Right
+
+proc charToDirection(c: char): Direction =
+ case c:
+ of 'F': Front
+ of 'B': Back
+ of 'L': Left
+ of 'R': Right
+ else: raise newException(ValueError, "Unrecognized direction")
+
+proc toDirectionSeq(str: string): seq[Direction] =
+ var ret = newSeq[Direction]()
+ for c in str:
+ try:
+ ret.add(charToDirection(c))
+ except ValueError:
+ echo repr(getCurrentException())
+ ret
+
+proc findSeat(str: string): int =
+ let dirs = toDirectionSeq(str)
+
+ var minRow, minCol = 0
+ var maxRow = 127
+ var maxCol = 7
+
+ for dir in dirs:
+ case dir:
+ of Front:
+ maxRow = maxRow - ((maxRow - minRow) div 2 + 1)
+ of Back:
+ minRow = ((maxRow - minRow) div 2 + 1) + minRow
+ of Left:
+ maxCol = maxCol - ((maxCol - minCol) div 2 + 1)
+ of Right:
+ minCol = ((maxCol - minCol) div 2 + 1) + minCol
+
+ # Reuslts are now in the max vars
+ # Multiply row by 8, add colum
+ maxRow * 8 + maxCol
+
+
+proc getAllIds(): seq[int] =
+ let allPasses = readLines("puzzle")
+ map(allPasses, proc(s: string): int = findSeat(s))
+
+proc findHighest(allIds: openArray[int]): int =
+ allIds.max
+
+proc findMissing(allIds: seq[int]): int =
+ var a = allIds
+ a.sort()
+ for idx, n in a:
+ if a[idx + 1] != n + 1: return n + 1
+
+var allIds = getAllIds()
+echo findHighest(allIds)
+echo findMissing(allIds)
+
+# echo findSeat("FBFBBFFRLR") # (44, 5) - 357
+# echo findSeat("BFFFBBFRRR") # (70, 7) - 567
+# echo findSeat("FFFBBBFRRR") # (14, 7) - 119
+# echo findSeat("BBFFBBFRLL") # (102, 4) - 820<
\ No newline at end of file
@@ 0,0 1,888 @@
+BFBFBFFRRL
+FFFFBBBLLL
+FFFBBFBRRR
+FFFFBBBRLR
+FFBFFBBRRL
+BFBBBBBRRR
+BBFFFFFRLR
+FFFFBBFRLR
+BBFFFBBLLL
+FBBBBFBLRL
+FFBBFFBRLR
+BBFFBBFRLL
+BBFFFFFLRL
+BBFFFFBRLR
+BFFFFBFLLL
+FFFBFFFRRL
+FBBBBBBLLR
+FFBFBBFRLL
+FBBFFBFLRL
+BFBFFBBRLR
+BFFBFBBLRR
+FFFBFFBRRL
+FFBFFBFRLL
+FBBBBBFLRL
+FFBBFFFRRL
+FFBFBFBLRR
+BFFFFFBRRL
+FFBFBBBRLR
+FFFBFFFLRR
+BBFFBFFLRR
+BFFFBBBRLL
+FFBBFFBLRL
+BFBBFBFRRR
+BFFBBBBLRL
+FFBFBFBRLL
+FBFFBBBRRR
+FBFBBBFLLL
+FBBFFBFRLR
+FBBFBBFLRR
+BFFBFFBLLR
+FFFBBBFLLL
+FBBFBBFLLR
+BFBFFFBRRL
+FFFFBFBRLL
+BBFFBFFRRR
+BFBBFBFLRL
+FFBBFFBRRL
+FFFBBBFLRR
+BFFBFFBLLL
+BFFBBFBRLL
+FBFBBFBRRL
+FFFFFFBRLR
+BBFBFFFRRR
+BBFFBBFLLL
+BFFBFFFLLR
+BFBFFBFLRL
+FFBBFFFLLR
+BFFFFBBRRL
+FFBBFFBRRR
+FFFFBFFLLR
+BFBBFFFLRR
+BBFFFBBLRL
+BFFFBBBLLR
+FFFBBFFRLR
+FFBBBBBRLL
+BBFFFBFRLR
+BBFBFFBRRR
+FBBBFFFRLL
+FBBBBBBRLR
+BFBBFFBRRR
+FBFBFFBRRL
+FFFBFBBRRL
+FFBFFFFLLL
+FBFFBFBLRR
+BFFBBFFLLR
+FFBBBFBRLL
+BFFBFFBRRR
+FBBFFBFRRR
+FBFFBBFRLR
+FBBBFFBLRL
+BFBBBFBLRL
+FFFFBFFRRR
+FBBFFFFLLR
+FFBFBBFRRR
+FBFBBBFLRL
+BFFFFFFRLL
+FFFFFBFRRR
+BFBFFBBRLL
+FFBFFFFRLL
+FFBFFBFLLL
+FFBFFBBRLL
+BFBFFBFLLL
+BFFBFBBLRL
+BFFFBFFRLL
+BFFBFBBLLL
+BFFFFFFLLR
+FBBFBBFRRR
+FFBBBBBRLR
+BFFBBBBRRR
+FFBBFBFRRL
+BBFBFBFRRR
+FBFFBFFLRR
+FBFFBFBLLL
+FFFBFBBLRR
+BBFBFFFLLL
+FFFBBFBLRR
+FFBBFFBLLR
+BFBBFFFRLL
+BFBBFBFLLR
+FBFFFFBLLL
+BFBBBBFRRR
+BBFFFBFRLL
+FBBFBFBLRL
+FBBBFFFRRR
+BBFBBBBLRL
+BBFFBFBRRL
+BFFFBBBRRL
+FBFBBBFRLL
+BFBBBFBLLL
+BFFBFFFLRL
+FFFBBBBRRL
+BBFFBFBLRL
+FBBFFFFLLL
+FBFFBBBLRL
+BBFBFBBRLL
+FBBBFBFLRL
+FBFFBFBLRL
+BFBBFFBRRL
+FBBFFFFLRR
+FFBBBBFRRL
+FFBFBFBLLR
+FBFFBFFRLR
+FFFBBBFRRR
+BFFFBFBLLR
+FBBBFBFLLL
+FBBBBBFRLL
+FFBFFFBRLR
+FBFFFBBRRL
+BBFFBBBLRR
+FBFBFFFLRR
+BFFFFFFLRL
+BBFBFBBLLL
+FBFBBFFLLL
+FBFFFBBLLL
+BFFBBFBLLL
+BBFFBBFLRR
+BBFFFFFRLL
+FFBFFFBLRR
+FFBFFFFRRR
+FBFFFBFLLL
+BFFFBFFRRR
+FBBFFFBLRR
+FBBBFBBRLR
+FFFFFFBRLL
+BFBFFBFLLR
+BFFFBBFLRR
+FBFFBBBLLR
+BBFFFFFRRR
+FBFBFBBLRL
+FBBFBFFLLL
+BFFBFBBRLL
+BFFBBBFLRR
+BFBBFBFRLR
+FBBFBFBRRL
+FFFFFBBLLR
+FFBFFBBRRR
+BFFBFBFLLL
+BFBBBBBLLL
+BBFBBBFRLR
+FFBFFBBLLL
+BBFFFFBLLR
+BBFFFFBLLL
+FFBFBFFLLL
+BFBFBBBRRR
+BBFBBBFLRL
+BFBBFFFRRR
+FFBFBBFLRL
+BBFBBBBLLR
+FBFFBFFLLR
+FBBFFFFLRL
+FFBBFBBLRR
+BBFFFFFRRL
+BFBFBFBLRR
+FFFBBFFLLR
+FFFFFBFRLR
+BFBFBBFRRL
+FFFFFBBRLR
+FFFFBFBLLR
+FFFFBBFRRR
+FFBFBFBLLL
+BBFBFBFLLR
+BFBFBFFLLL
+BFFBBBFRLL
+FFBBBBFRLR
+BFBBFFFRRL
+FFFFFFFRRL
+FFFBFBBRLL
+FBFFFFFRLR
+BBFFBBFRRR
+FBBFFBBLLL
+BFFFBBFRLR
+BFBBFFFLRL
+BFFBBFFLLL
+BFFFBFFLRL
+FBFBBFFRRR
+FFFBBBFRRL
+FFFFBBFLLL
+FBBFBBBRLL
+BFBBFBFRLL
+FBBBBFBRRL
+FFBFFFBLRL
+BFBBFBBRRL
+BFBBFFFLLR
+FBBBBFBRLR
+BBFBFFFRLR
+FBBFBFFLRL
+FFBFBFFRRR
+FFBFBFBLRL
+BBFBFBBLRR
+BBFBBFBRLR
+BFBBBFBLRR
+FFBBBFBLRR
+BBFFFBFLRR
+FFFBBFFRRL
+BBFFBBBRLR
+FFFBFBFLLL
+BFBFBBBLRL
+FBFBFFBRLL
+FBFFBBBRRL
+FFFFBBFLRR
+FBFFBBFLLR
+FFBFFBFLLR
+BFBFFBBRRR
+BFBBFFBLLR
+BBFBBBBRRL
+FFBFBFFRLL
+FBBFFFBLLR
+FFBBBBFLLR
+FBFBFBFLRL
+BFFBBFBLRL
+BFBFFBFRLR
+FFFFFFFRRR
+BFBBBFFRRR
+FFBBFFFRLR
+FBFBBFBLRR
+BFBBBBFRRL
+FFFFBBFRLL
+FBBBBFFRLL
+FBFFFFFRRL
+FBFFBFFRRL
+BBFBBFBLLL
+BFFFBFBRLR
+FBFBFBBRRL
+FFFBFFBRLR
+BBFFBFFLRL
+FFBFFBFLRR
+FFBBBBFRLL
+BFBBFBFLRR
+FFBFFFBLLL
+BBFBBFFLLL
+FFFBFBBLRL
+BFFFBFFRLR
+FFFBFFFRRR
+FBBFFBBRRL
+BFFBFFBRLL
+BFFBBBFLLL
+FBFBBBBRLR
+FBFFBFBRLL
+FBFBBBFLLR
+FFFBFFFLLL
+FFFBFFBLLR
+FBBFFBBLLR
+FBBFBBBLLL
+BFBBBFFLRR
+BFBFFBBLLL
+FFBFBFBRRL
+FFBFBFFLLR
+FBFBFFFRRL
+FFBBFBBRLL
+BBFFFBBLRR
+FBFBFBBLRR
+BFFFBFBLRR
+BFBFFFFRRL
+BFFFBBBLRL
+FFFFFBBRRR
+BBFBBFBRRR
+FFBFBFBRRR
+FFFFBFFLLL
+BFBFFBBLLR
+FBBBFBBRRL
+FBBBFFFRLR
+FFFBBFBLRL
+FFBBBFFRLL
+FFFFFBBLRL
+BFBFFBFRRL
+FBBFFBFLRR
+BFFBFFFLLL
+FBBFBFBLLL
+BFBBFFBLRL
+FFBBBBBLLL
+FBFBFBFRLR
+BBFBBFBLRR
+BFBBBBBLRR
+FBFBBFFLLR
+FFBFBBFRRL
+FFFBBFBRRL
+BFFFFFFLLL
+BBFBBBFLLR
+FBFFBBFLLL
+FBFBBFBLLR
+BFBBBFBRLR
+BFBFFFFRLR
+FBBFBFFRLR
+BBFFFFFLRR
+BBFBFBBLRL
+BBFBFBBRRR
+FFBBFBFLLL
+FBFBBFFLRL
+BFBFBBFLLR
+BBFBBBBLLL
+FFBBFFBRLL
+FFFFBBFLRL
+FFBBFBFLLR
+BFBBBFBRLL
+FFFBFFBRRR
+FBBBBFFLRL
+FBFFBBBLRR
+FBBBFBBLRR
+FBBBFFBRRL
+BFFBFBFRRR
+BBFBFBBRRL
+FBBFBBBLLR
+FBBFBFBLRR
+FBFFFFBLRR
+FBFBFBBRLL
+FBFFFBFLRR
+BBFBBBFLRR
+BFBFBBBLLL
+FFBFFBFRRR
+BBFFFBBRLR
+BFFBBFBLLR
+FBFBBFBRLL
+FFBFBBBRRR
+FBFFFFBRLL
+FBBBFFFLRL
+BFBFBFBRLR
+FBBBFBBLRL
+FBFFBBBLLL
+FFFBBBFLLR
+BFFFBBFRLL
+FBFFFBFRLR
+BFFFBBFRRL
+BFFFFBFRRL
+BBFFBBBLLR
+FBBFFFFRLR
+FFBFBFFRLR
+BFBFBBBLRR
+FFFFBBBLRR
+FFBFFFBRLL
+FFFFBBBLRL
+FFBBBBFLRL
+BBFFFFBRRL
+FFFFFBFLRR
+BFFFBFBRRR
+BBFBBFFLRR
+FFBFBBFLRR
+FFFFFBBRRL
+BFBFFFFLRL
+BFFBBFBRLR
+FBFFFFBRRL
+BFBBFBBLLL
+BFBBBFBRRL
+BFBBBBBRLL
+FFFBBBBLRR
+FBBFBBFLLL
+BFFFFBBLLR
+FFBFFFBLLR
+FBBFFBFRRL
+FFBBBFFLRR
+BFFFBBBRRR
+FFFFBBBRRR
+FFFBFFBLLL
+BFFFFBBRLL
+FBBBFBFRRL
+FFBBBBFLLL
+BBFBFBBRLR
+FBFFBBFLRL
+FBBFBFFRRR
+BBFFFFBLRR
+FBBBFBBLLR
+FFFBFFBLRL
+BFFBFBFRLL
+FBFFFFBRLR
+FFFFBFFRLR
+BFBFBFBRRL
+FBBFBBFRRL
+BBFFBFBLLR
+FFBFFFFLRR
+BFFFFFBRLL
+FFFFBBFRRL
+FBFFFBFLRL
+FFBBFBBLRL
+BFFBBFBRRR
+BBFBBBFLLL
+FBBFBBBRRR
+BFFBFBBRLR
+FBBBFFBRLL
+FBBFBFFLLR
+BFFBFBBLLR
+FFBFFFFLRL
+BFFBFBFLLR
+BBFBBBBRLR
+FFBBBFFLRL
+FBBFFFBRLR
+BFFFFFBRLR
+FBFFFFFLLR
+FBFFFBFRRR
+FFBBFBFRLL
+FBFBFFFRLR
+BFBFBBFRRR
+BBFFFBBRRR
+FBBFBFBLLR
+BFFBFBFLRL
+FFFBFFFRLR
+FBBBFBFLLR
+FFBBBFBRRR
+BFBFFBBLRL
+FBBBFFBLRR
+BFFFFFFRRR
+FFBBFFFLRR
+BFBFFFBRLR
+BFBFBFBRRR
+BBFBFBFLLL
+FBFFBFBRRL
+BBFBBFFLRL
+FBBBBBBLLL
+FBFFBBFRRR
+FFFFBFFRRL
+FFFBBFBLLL
+FBFFFBBLLR
+FFBBBBBLRR
+FBFBFFFRLL
+BFFBBBBRRL
+FFFBFBBLLL
+FFFFFFBLLR
+BBFFBFBRLL
+FBBBBBFRRR
+BBFBFFFRLL
+FFFFBFBLRR
+BFBFFFFRLL
+BFBBBBFRLR
+FBFBFBFRRL
+FBFBFFFRRR
+FBBFFFBRRR
+FBBFBFFRLL
+FFFBFFFLLR
+FBFBBBFRLR
+FFBFFFBRRL
+FBBBBBFRRL
+FBBFFBFLLR
+FBFBBFBRRR
+FBFFFFFLLL
+FBFBBBFLRR
+FFFBBBBLLR
+FBBBFBBRRR
+BBFBBFFRLL
+FFFFBFBLLL
+BBFBBFBRLL
+BFFBBBBLLL
+BBFBBFBLLR
+BBFFFBBRRL
+FFBBBFFRRR
+BBFFBFFRLL
+FBBBBBFLLR
+FBBFFFFRRL
+FBBFFBFRLL
+FBFBFBFLLR
+BBFBBBFRRR
+FFFBBFBRLL
+BFBBBBFLRR
+BFBFFBFRRR
+FFBBBFBRRL
+BFBFFBBRRL
+BBFFBFBRRR
+FFBFBBBLLR
+FBBFFBBRLR
+BFBBBFFRLL
+FFFBBBFRLL
+FBFBFBFLLL
+FFFBBFBRLR
+BFBBFFBLLL
+FFBBBFFRLR
+BFBBFBBRLL
+BFFBFFBRRL
+BFFFFFBLRL
+FBBFFBBLRR
+BBFFFFBRLL
+FBFFBFFLLL
+BBFFBBBRRL
+BBFBFBFRLL
+BBFBFFFLLR
+BFBBFBFLLL
+FFBBFFBLRR
+BBFBFFBRLL
+FBFFFBBRLR
+FFFFFBFRLL
+BFFBBFBRRL
+BFFBBBFRRL
+FBFBFFBLLL
+BFBFBBFLRR
+FFBFBBFLLR
+FFBFBBBRLL
+FBFFBFFLRL
+FBBBBBBRRL
+FFFBFBFRRL
+FFBFBFFRRL
+BFFFBBFRRR
+BFBFBBBRLR
+BFFBBBFLRL
+FFFBBBBLRL
+BFFBBFFRRL
+FBFFBBBRLL
+BFFBBBFLLR
+BBFFBFFLLL
+BBFFBBFLRL
+BFFFFBFRRR
+FFFFFBBRLL
+FBFFBBFRRL
+FBFBBBBRRR
+BBFBBFFRRL
+FFBBFBFRRR
+FFBFBBBLRL
+BFBBFBBRRR
+FBFFFFBRRR
+FFFBFBBRRR
+FFFBBBFRLR
+BFBFBFBLLR
+BFBFBBFLLL
+BFBBFBBRLR
+BFBFFFBLRR
+FBFBBFFRLR
+BFBBFFFRLR
+BBFFFBFRRR
+FBBFFFFRRR
+BFFFBBFLLL
+BBFFFFBLRL
+FBBFBBBLRR
+BFBBFFBRLR
+FFBFFFFRRL
+BBFFBFFRLR
+FBFBFBBLLL
+BFFBBFFRLL
+FBBFBFBRLR
+FBBBBFFLLR
+FBFFFBBLRR
+FBBBBFBRRR
+BBFBBFBLRL
+FFFBBBBRLR
+BBFFBBBRLL
+FBFBFBFLRR
+FBBFBFFRRL
+FBFBBFBLLL
+FBFBFBBLLR
+BBFFBFFRRL
+FBFFBBBRLR
+FFBBFBBRRL
+FBBFFFBLLL
+FFFBBBFLRL
+FBBBFBFRLL
+FFBFBFFLRR
+FFBBFBBLLR
+FBBFBBFRLL
+FFFBBFBLLR
+FFBBBBBRRL
+FBFFBFFRLL
+FBFBFBBRRR
+BFFBBFFRLR
+FBFFFBBRRR
+FFBBBFFLLR
+FFFBBFFRLL
+BBFFBBBLRL
+FBBFBBBLRL
+BFFFFBBLLL
+FFFBBFFRRR
+FFFFBBBRRL
+BFBBBFFLLL
+FFFBBBBRRR
+BFFFBBBRLR
+FFFBBFFLRL
+BFFBBBBRLR
+BFBBBFFRRL
+BBFFFBFLLR
+BFFFFBBRRR
+FFBBFFFLRL
+FFFBFFFRLL
+FFBBFBBRRR
+BFBFBFFRLL
+FBBFBBBRLR
+BFBBBBBLLR
+FFBBBFFLLL
+BFBFBBBLLR
+FBBBBFBRLL
+BFBBFBFRRL
+FFBFFBBLRR
+BFBBFFBRLL
+FFBBBFBLLR
+BFFFBFFLRR
+FFFBBBBRLL
+FFBBBBFLRR
+FFFBFBFLRL
+FBBBFFFLLR
+BFFFFFBLLL
+FBBFBBBRRL
+FFFFBFBRLR
+BFBBBBFLLR
+FFFFBBBLLR
+FBFFFBBLRL
+BFBBBFFLRL
+FBFFBFFRRR
+BFBBBBBLRL
+FBBBFFFLLL
+BFFFFFBLLR
+BFBFBFBRLL
+BFBBFBBLRR
+BFBFBFBLRL
+FBFFBFBRRR
+FBFFFFFLRL
+BFFFFBFLRR
+BFFFBFBRRL
+BBFBFFFLRR
+BFBBFFFLLL
+BBFFBBFRLR
+FBFBBBBLLL
+FBFBBBBLLR
+FFFFFBFRRL
+BFFBBFFLRR
+FBFBFFBLLR
+FBBBFFBRRR
+FFFFBFBLRL
+BFBFBBFLRL
+BFFBFFBLRR
+FBBBBBFLLL
+BBFFBFBLLL
+BBFBFFBLLR
+FFBFFBBRLR
+BFFFFBBLRR
+FBFFFBBRLL
+BBFBFBFLRL
+BFFBBBFRLR
+BFBBFBBLRL
+FFFFBFFLRR
+FFFBBFFLRR
+FFFFBBFLLR
+FFFFBFBRRL
+BFBFBFFLLR
+FFFFFFBLRR
+FBBBFFBRLR
+FBBBFFBLLR
+BFFBBFBLRR
+FBFBBFFRLL
+FBFBBFBRLR
+BFBFBFBLLL
+FFFBBFFLLL
+FBFBBBFRRR
+FFFBFBFRRR
+FFBFBBFRLR
+FBFFBFBRLR
+FFFFFFBRRL
+FBBFBFBRRR
+BFBFFFBLLR
+FBBFFBBLRL
+FFFBFBFRLR
+BFFFFFBRRR
+FFBBBFBRLR
+FFFFFFBLRL
+BFBBFFBLRR
+BBFFFFFLLR
+BFBBBBFLLL
+FBBBFFFRRL
+FFBBFBFLRR
+BBFBBFFRLR
+BFFFBFFRRL
+BBFBFFBLLL
+BBFBFFFLRL
+BFFFFBFRLL
+BFFFFBFRLR
+BFFBFBFLRR
+BFFBBBFRRR
+FBFBBBBLRR
+BBFBFFBRLR
+BBFBFFBLRL
+BFFFFFFLRR
+BFBFBFFRRR
+FFBFFFFLLR
+FFBFBBFLLL
+BFBFFBFLRR
+FBBFFBBRLL
+BFFFFBFLLR
+FBBFFBFLLL
+FBBFFFBRRL
+FBFBBFBLRL
+BBFFBBFRRL
+BBFFFFBRRR
+BFBFBFFRLR
+FBFBFFBLRL
+FBFBFFBRRR
+BBFFFBFRRL
+FBFBFBFRRR
+BBFBFFBLRR
+FBFBBFFRRL
+BBFFBBBLLL
+FBFBFFFLLR
+BBFBBBBLRR
+FBFBBBBRRL
+BFFFBBBLRR
+BBFFBBFLLR
+FBBBBBBRRR
+FFFBFFFLRL
+FFFFBFFLRL
+BFFFBBFLRL
+FFBFFBFRRL
+FFBBFBFRLR
+FBBBBBBRLL
+FBBFFFBRLL
+BBFBFFBRRL
+FFFBFFBLRR
+FFBFBFFLRL
+FBBFFBBRRR
+BFBFFFBRRR
+FBBBBFBLRR
+FBBBFBBLLL
+BFBBBBFRLL
+BFBBBBFLRL
+FFBBBBBLRL
+FFBBBBFRRR
+FFBFFBFLRL
+FFBFFBBLLR
+FFBBFFFLLL
+BFBBBFBRRR
+BFFFFFFRLR
+FFBFBFBRLR
+FFBFBBBLRR
+BBFFBFBLRR
+FBFFBBFLRR
+BFBFFFBLRL
+FBFBFBFRLL
+FFBBBFFRRL
+BFFBFFBRLR
+BFFFFFFRRL
+BFBFBBBRLL
+BBFBFFFRRL
+BFFFFBBLRL
+FBBBFBFLRR
+BFBFBFFLRR
+FFFFFBFLLR
+FBBBBBFRLR
+FBFFFBFLLR
+BBFBFBBLLR
+FBFBFFBLRR
+BBFFFBBLLR
+BFBFBBBRRL
+BFFFFFBLRR
+BFFBFFFRLL
+BFFFBFBRLL
+FBBFBBFLRL
+FBBBFBFRRR
+FFBBBBBRRR
+BBFBBFFLLR
+BFFBBFFLRL
+BFBBFBBLLR
+FFBBFFBLLL
+BBFBFBFRRL
+BFFBFBBRRR
+BFFBBBBLRR
+FFBFFBFRLR
+FBFBFFFLRL
+FFFFBBBRLL
+BFFBFFFRLR
+FFBFFFFRLR
+FFBBFBFLRL
+BFFBFBFRRL
+FBFBFFBRLR
+FBBFBFFLRR
+BFBFFFFLLR
+BFFFBFBLLL
+FFFFBFFRLL
+FBFBFBBRLR
+FBBBBFFRRR
+BFFFBBFLLR
+BBFFFFFLLL
+BFFBFFFRRR
+FBBBBFFRLR
+BBFFFBBRLL
+FFBFBBBLLL
+FFFBFBFRLL
+BFBFFFBRLL
+FFFFFBBLLL
+BFFBBFFRRR
+BBFBBBFRRL
+BFBFFBBLRR
+FFFFFBFLRL
+BFFBFBFRLR
+BFFBFFBLRL
+BBFFFBFLRL
+FBBBBFBLLL
+BFBFBFFLRL
+FFFBFBFLLR
+BFBFBBFRLL
+BBFFBFBRLR
+BFBFFBFRLL
+FFFFFBBLRR
+FBFFBFBLLR
+BFBFFFBLLL
+FBFFBBFRLL
+FBBBBFFLLL
+FBFFFFFRLL
+BFFBFFFRRL
+FBBBBBBLRL
+BFFBFBBRRL
+BBFBFBFRLR
+FBFBBBBRLL
+BBFFBBBRRR
+BFFFFBBRLR
+BFBBBBBRRL
+FFBBFBBRLR
+FFFBFBFLRR
+FFFFFFBLLL
+FBFBBBBLRL
+FBFFFFFLRR
+FBBBFFBLLL
+BBFBBFFRRR
+FFFBFFBRLL
+FBFFFBFRRL
+FBFBBBFRRL
+BFBFFFFRRR
+BFBBBFFLLR
+FBBBBFFLRR
+FFFFBFBRRR
+FBBBBBFLRR
+FFBFFBBLRL
+FFFBFBBLLR
+BFFFBFFLLR
+FBBBBFFRRL
+BBFFBFFLLR
+BFBFFFFLLL
+FBFFFBFRLL
+BFBFFFFLRR
+BFFFBFFLLL
+FBBFBFBRLL
+BFFFFBFLRL
+BFFBBBBLLR
+BFFBBBBRLL
+FBBBBFBLLR
+FBFBFFFLLL
+FFBBFFFRRR
+BFBBBBBRLR
+FFBBFBBLLL
+FBFBBFFLRR
+FFBBFFFRLL
+FBFFFFFRRR
+BBFBBBFRLL
+FBBFBBFRLR
+FFBFFFBRRR
+FBBFFFBLRL
+FFFBFBBRLR
+FBFFFFBLRL
+BFBFBBFRLR
+FBBBFBFRLR
+BFFFBFBLRL
+FFFBBBBLLL
+BBFBFBFLRR
+FBFFFFBLLR
+BBFBBBBRLL
+FFBBBBBLLR
+BBFBBFBRRL
+FBBFFFFRLL
+FFBBBFBLRL
+BFFFBBBLLL
+FFFFFBFLLL
+BFBBBFBLLR
+FFBBBFBLLL
+FFFFFFBRRR
+BFBBBFFRLR
+FBBBFBBRLL
+FFBFBBBRRL
+FBBBFFFLRR
+BBFFFBFLLL
+FBBBBBBLRR