Day 5
authorGreg Burri <greg.burri@gmail.com>
Mon, 7 Dec 2020 08:59:39 +0000 (09:59 +0100)
committerGreg Burri <greg.burri@gmail.com>
Mon, 7 Dec 2020 08:59:39 +0000 (09:59 +0100)
advent_of_code_2020.jl
data/day05.txt [new file with mode: 0644]

index 8b616ef..26704c2 100644 (file)
@@ -290,6 +290,47 @@ md"
 **Result for part 2**: $(count_nb_valid_passport(input_day4, true))
 "
 
+# ╔═╡ 11d48ec0-3864-11eb-2dcf-3302fbb74b2d
+md"## Day 5"
+
+# ╔═╡ 18269980-3864-11eb-19d6-71f75b104ae5
+function parse_day5(lines)
+       map(lines) do line              
+               row = parse(Int, join(replace(split(line[1:7], ""), "F" => "0", "B" => "1")); base = 2)
+               col = parse(Int, join(replace(split(line[8:10], ""), "L" => "0", "R" => "1")); base = 2)
+               row * 8 + col
+       end
+end
+
+# ╔═╡ 9d237b60-3866-11eb-2dd8-c19a6cbded5b
+let
+       test = [ "FBFBBFFRLR" ]
+       result = parse_day5(test)
+       md"
+Test 1, part 1: $(result[1] == 357)
+       "
+end
+
+# ╔═╡ e881a6d0-3867-11eb-3261-0d86b4370065
+function find_missing_id(ids)
+       sorted_ids = sort(ids)
+       for i ∈ 1:length(sorted_ids)-1
+               if sorted_ids[i] + 1 ≠ sorted_ids[i + 1]
+                       return sorted_ids[i] + 1
+               end
+       end
+end
+
+# ╔═╡ cb986040-3867-11eb-0d78-594ac9d9a547
+input_day5 = parse_day5(readlines("data/day05.txt"))
+
+# ╔═╡ bdc1be30-3867-11eb-1939-1f0a42a4ac92
+md"
+**Result for part 1**: $(input_day5 |> maximum)
+
+**Result for part 2**: $(find_missing_id(input_day5))
+"
+
 # ╔═╡ Cell order:
 # ╟─661be9a0-353b-11eb-3598-a5b5245368cb
 # ╟─f0dd4400-3313-11eb-3295-af913c2212fb
@@ -321,3 +362,9 @@ md"
 # ╟─b8d2afc0-35ff-11eb-2fb1-7dba5d323768
 # ╟─6c01cf90-3600-11eb-0762-ad046d0d0775
 # ╟─953ee8c2-3600-11eb-1684-79ff44185b5f
+# ╟─11d48ec0-3864-11eb-2dcf-3302fbb74b2d
+# ╠═18269980-3864-11eb-19d6-71f75b104ae5
+# ╠═9d237b60-3866-11eb-2dd8-c19a6cbded5b
+# ╠═e881a6d0-3867-11eb-3261-0d86b4370065
+# ╟─cb986040-3867-11eb-0d78-594ac9d9a547
+# ╟─bdc1be30-3867-11eb-1939-1f0a42a4ac92
diff --git a/data/day05.txt b/data/day05.txt
new file mode 100644 (file)
index 0000000..6cd6f33
--- /dev/null
@@ -0,0 +1,839 @@
+BFFBFBFLRL
+BFBFBBBLRR
+BFBFBFBLRR
+BFBFFFFRLR
+BBFFBBFRRR
+FBBBFFFRLL
+FFBFBFFLLL
+BBFBFFFRLL
+FBBBFFBLRR
+FFFFBFFRRL
+BFBFBFBRLL
+FFBFFBBLLL
+BFFBBFFRLR
+FBBFFFFLRR
+FBFBFFBRRR
+FFBFFBBRRR
+FBBBFFFRRL
+FFBBBBFRRL
+BFFBBBBLLL
+BFBBFBBLLR
+FBBFBFFLLR
+FBBFBFFLRR
+BFFFFBFLLL
+FBBBBBBRRR
+FBFFBBFLLR
+BBFBFFBRLR
+FFFFFBBLLR
+FBBFBBBRLL
+FFFFBBFRRR
+FFFFBFBLRL
+FFFBFBFLLR
+FFBFBBBLRR
+BFFBBBFRLR
+FFFBFBBLLL
+FBFBBBFLRR
+BBFFFBFLLL
+FFFFFBBLRR
+FFBFBFFRLL
+BFFFBBFRLR
+BFBBBFBLLR
+FFFBBFFLRL
+BFBBBFBLLL
+FBFBBFBRLR
+BBFFBFFRRR
+BFFFFBBLRR
+FBBBBBFLRL
+FBFBBBBRRR
+FBFBBFFLLL
+BFBBBFBRLL
+FFBBFBBLRR
+FFBFBBBRRR
+FFFFFBFLRL
+BFFBBBFLRR
+BFBBFBFLLR
+FFBFBBBLRL
+FBBBBFBLLL
+BFBBBFFLRR
+FBBFFBBLRR
+BFFBBFBLRR
+FBBBBBFLLL
+FFFFBBBRLR
+FBFBBBFLLR
+BFBFFBFRLR
+BFFBFFBRRR
+FBBFFFFLRL
+BFBFBBFLRL
+BBFBFFFRLR
+FBFFFFBLRR
+BFFFBFFRLL
+FBFFBFBLLR
+FFFBFFFRLR
+FFFBFFFRLL
+BFFBFBBLLL
+FFBBFBBLRL
+BFBBBBFLRL
+BFBBBBFLRR
+BFBFFFFRRL
+BFBBBFBRLR
+BBFFBBBLLR
+FBBFBBFRLR
+FBFBFBFLLR
+BFBFFBBRRR
+FFFFBBFLLR
+FBFFBFFLLL
+BFFFFFBRLR
+FBFBBBFLRL
+BFFFBBFLLR
+FBFBFBBRRR
+FBFFBFBLRL
+BBFFFBBLLL
+FBFFFBFRRL
+BBFFFFBRLR
+BBFFBFBRRL
+BFFBBBBRLR
+FBFFFBBLRL
+FBBFBBFLLR
+FFBBBBBLLL
+FBBBBBFLLR
+FFBFFBFRLR
+BFFBBFBLRL
+FFBBBBFRLR
+BFFBFBBRRL
+FBFBBBFLLL
+BBFBFFBRRR
+FBFBBFFLLR
+BFFFFFBRLL
+FBBBBFBLLR
+FFBBBFBLRR
+FBBBBFBRLR
+FBBBBBBRRL
+FBBFFFBRRL
+FBFBFFFLRR
+FBBFFFBRLR
+BFFBFBFRRL
+FFBFBBFRLL
+FBFBFFFRRR
+BFFFFBFRRR
+FFFFFBFRRL
+BBFFBFFLRL
+FBBBBBBLLR
+BFFFBFFRRR
+FFFFFBFRLL
+FBBFBFBLLL
+FFFFBBFLRR
+BFBBFFFRLR
+FFBFFBBLRR
+FBFFBFBLRR
+FFBBBFBLRL
+FFFBBFBRLR
+BFBFFBBLLR
+FFFBBFBLLL
+BBFFFBBLRL
+FBFBFFFRLR
+BBFFBFFRLR
+FFFBFBFRLR
+FFBBBBFLLR
+BBFFBFFLRR
+FFFFFBFRLR
+BFBFBBFRRR
+BBFFFBFRRL
+BFFBFBFLLR
+FFFBBBBLLL
+BFFFBBFLLL
+BBFFFBBRRL
+BFFFFBFRLL
+BFBFBBBLLR
+BBFBFFBRRL
+FBFFBBFLLL
+FBFBFFFRRL
+FBBFBBBLRR
+BFBBFFBRLL
+FBFBBBBRLR
+FFFBBFFLRR
+FBBFFBFRRL
+BFFBBBBLRR
+FFFFBBFRLR
+FBFBBBFRRR
+BFFBFFFRLL
+BFFFFFFRRL
+FBFFFFBRLR
+BFFFFBBRRL
+FBBBBBFRLR
+FBBBBFBLRR
+FFFBBFBRLL
+FBBFBBFRRL
+FFFBBBBRRL
+FBBFFBBRRL
+BFFBBFFLLR
+FFFBFFBRRL
+FBFFBFFLLR
+FFFFFFBRLL
+FFBBFBBRLR
+FFBBFBFLRR
+FFFBFFBRRR
+FFBFFBBLLR
+BFBFBFBLLR
+FFBBBBFRRR
+BFBBBFBLRL
+BFFFBBFRRL
+FBFBBBFRLL
+BBFFFFBRRR
+FBBFBFBRLR
+BFBBBFFRRL
+FBBBBFBRRL
+FBBBFFBLRL
+FBFFFBBRRL
+BFBBFFBRRL
+FBFBBFFLRL
+FBFBBBBLRL
+FFBBBFBRRL
+FBBBBBBLRL
+FFFFBBFRLL
+FBFBBFBRLL
+BFBFBBFLLR
+FBFFFBBRLR
+BFBFBBBRRR
+FBBBBBBLRR
+BFFBFFBRRL
+FFBBBBBRLR
+BFFFBBFLRL
+FBFBBBBRLL
+FFFFFBFRRR
+BFBBBBFRLR
+FFBFFBFRRL
+FBBBBBBRLR
+FBFFFBBLRR
+FFFBFFBRLR
+BFBFFBFLLR
+FFFFFBBRRL
+FBBBBBFRRL
+FFFFBBBRRR
+BFBBFFFRLL
+BBFFBFBLLR
+FFFFBFFLRR
+FBFFFBFLLL
+FBBFFBFRLR
+BBFBFFBLLR
+BBFBFFFLRL
+BFFFBBBRLR
+BFFBFFBLRL
+BFBFBFFLRL
+FBBFFBBRLR
+FBFBFBBRLL
+FFBFFFFLLL
+FFFFBFBLLL
+FBBFFBBLLR
+FFFFBBBLRR
+FFFFFBBRRR
+BBFFFFFRLL
+FBFBBFBRRR
+FBBFFFFRRR
+FFFFBFBRLR
+BFFFFBBLLR
+FFFBBBFRLL
+BFFBBBBRRR
+FBFFBBFRLL
+BFBBFBFLRL
+FBFBFBBLLL
+FFBFFFFRRL
+FBFBBBFRRL
+FBBBBBBRLL
+BFFFBFBRRR
+BFBFBFBRRR
+FBFFFBBRLL
+BFFFFBBLLL
+FFFBFFFRRL
+FBBBBFFRRL
+BFFFFFFLRR
+BFBFBFFLRR
+BFFFFBBRLL
+FBBFFFFRRL
+BFBBFBBRRR
+FFFBFFBLLR
+BFFBFFFRLR
+FFBFFFBLLR
+BFBFBFBLLL
+BFFBFFFLRR
+FFBBFFBLRR
+FBBFFBFRLL
+FFBFBFBRRL
+FBFFFFFLLR
+FBFFBBFRLR
+FBFBBBFRLR
+FFBBFFFLRR
+FBBFFFFLLL
+FFFBFFFLRL
+BFFBBFBLLR
+BFFFFFBLLL
+BBFBFFBLLL
+BFFBFBBLRR
+BBFFFFBRLL
+FBFFBFFLRL
+FBBFFFFLLR
+FFFBBFFRLR
+FFFBBFBLRL
+BFFBBBBLLR
+BFBBBFBRRL
+FFBBBFFLRR
+FBBFFBBRLL
+FFFBFBBRRR
+BFFBFFFLRL
+BFFFBFFLLR
+FFFBFBFLLL
+FFBFBFFRRL
+FFFBFFFRRR
+BFBFFFFLRL
+BFFFFFBRRL
+FFFBFBBLRL
+FBFFBFFRRL
+FFFFBFFLLR
+FFBBBBFRLL
+FBBBBFFLRR
+FFFFBFFLLL
+BFBBBBFRRL
+FBFBBFFLRR
+FFBBFBFRLL
+FFFBFBBRLL
+BFFFFFFLRL
+BBFFFFBLRL
+BFFFFFFRLR
+FBFFFBFRLR
+FBFFFFFLRL
+BFBFBFFRLL
+FFBBFBFLRL
+FFFBBBFLLR
+FBBFFFBRRR
+FFFFFBFLRR
+FBFFFBBLLR
+FFFFBFBLRR
+FBBFBBBLLR
+FBBBFFBLLL
+BBFFBFFRRL
+BFBBFBBLLL
+FBFFBFFRRR
+FBFFFFBRLL
+FFBBBFBRRR
+FBBFFBBLLL
+BBFFBBBRLL
+FBFFFBFLRR
+FBBBFFBRLR
+FFBBBBBLLR
+FBFFFFBLRL
+BFFFBFBRLL
+FFFFFBBLRL
+BFBBFFBLLL
+BBFFBBFLRR
+BBFFBFFLLL
+FBFBFFBRRL
+BFFBBFFRRL
+BFFBBFBRRR
+FFBBBFBRLL
+FBBFBFBRRL
+FBFBBFBLLL
+BFFFBBBLLL
+FFFBBBFLRL
+BFBBFFFLRL
+FFFBFFBLLL
+FFBBFBBRRR
+FBBBBFFLLL
+BBFBFFFRRR
+FFBFFBFLRR
+BFFBBFBLLL
+BFFFBFBLLR
+FFBBFBFRRR
+BBFFFBBLRR
+FFFFBFFRLL
+BFBBBFFRLL
+BFBFBFFRRL
+BFBFFBBLRR
+FBBFFFFRLL
+FFFBFBBLLR
+BBFFBBBLRR
+FFBFBFBRLR
+BBFFBBFLRL
+BBFFFBBLLR
+BFFFBBFLRR
+FBBBBFFRLL
+FBBFFFBLRR
+BFBFBFBRLR
+FBFBBFFRLR
+FFFFBFFLRL
+FBBBFBBLLR
+FBFFFFFRLR
+FBBFBBFLRR
+BFBFBFFRLR
+FFBFFBFLLR
+FFFFBBBRLL
+FBBBFBBRLL
+FFFBFBFLRL
+BFBBFFFLLR
+BFFBFFBLRR
+BFFFBFFRLR
+FBBFFBFLLL
+FBFBBBBRRL
+FBBBBBFRLL
+FBFFBBBRLR
+FFBFFFBRRL
+FFBFFBFLLL
+BFBFBBFRLR
+BFFFBFFLRL
+FFBBBBBRRL
+FBBFFBBLRL
+FBFFFBBRRR
+FBBFBFFLRL
+BFFBFBFLRR
+FFBBBFFRRR
+BFBFFBBRLR
+FBFBFBFRRL
+FFBFBBBLLL
+FBBFFFBLLL
+FFFBBFBRRL
+FFFFBBBRRL
+FBBBFBFLLR
+FBBBBBFRRR
+FBFBBBBLLL
+FFFBFBBLRR
+FFBBFBBLLL
+FBBFBBFLLL
+FBFFFFBRRR
+FBBBFFFLRR
+FFFBFBBRLR
+FBFFFFFRRR
+BFBBFBFLLL
+BFFFBBFRRR
+BFFFBFBLRR
+FBFFBFBRLR
+BFBFFFBRLR
+BFBBBBBLRL
+BBFFBFBRRR
+FFBFFFFRLL
+FFFFFBFLLR
+FBBBFBFRRR
+BFBFFFBRRR
+FBFBFFBLRL
+FBFFBFBLLL
+FBBFFFBLRL
+BFFBFBBRLL
+FFFBFFBLRR
+BFBBFBFLRR
+FBBFBBFRLL
+FFBFBFFLLR
+FFBBFBFRLR
+FBFBFBBLRR
+FFFBFBBRRL
+FBFBFFFLLR
+BFFBBFFLRR
+FFBFFBBLRL
+FFFFBFBRLL
+BFBBBFFRRR
+BFBFFFFRRR
+FBFBBFBRRL
+BFBBFFFLRR
+BFBBFFBLRR
+BFBFFFFLRR
+FBFBFFFLLL
+FFFBBBBRRR
+FBBBBFFLRL
+FBFBFFBLLL
+BBFBFFBLRL
+FFBFFBBRRL
+BBFFFFBRRL
+FBFFBBBLRR
+FBFBFFFRLL
+BFBBBFFLLL
+FBBBFFBRRL
+BBFFBFFLLR
+FBFFFFFRRL
+BFFBFFBRLR
+BFBFBBFLRR
+FFBFFFBLRL
+FFBFBBBLLR
+FFFBBBBLLR
+FFBBFBFRRL
+FFBFFFFRLR
+FFBFFFBRRR
+FBBFFBFLRR
+BBFBFFFLRR
+FFBFBFBLLL
+BFBBFFFRRR
+FBBBFFFLLR
+FBFFBFFLRR
+BBFFFFBLLR
+FBFFFBFLRL
+FFFBBFBLRR
+FBBBBFBLRL
+FFFFFFBRRR
+BFBBFBFRLR
+FFFBFBFRRL
+FFBBFFFLRL
+FFFFBBBLLL
+FBBFBFFRRR
+BFFBFBFLLL
+BFFFFFFRLL
+BFBBBBBRLR
+FBBBFBFLRR
+BFBBBFFLLR
+BFBBBBBRRL
+FFBBBFFLLL
+BFBFBFFLLR
+FBFBFBFRLR
+FBBFBBFRRR
+BFFBBFFRRR
+FFFFFFBRLR
+FBBFBFBLRL
+FFBFFBFRRR
+FFBFFFBLLL
+FBBFBBBRLR
+BFBFBBBRLR
+BBFBFFBLRR
+FBFFBFBRRL
+FBFBFBBLRL
+FFBBBFBRLR
+BFBFFBBRRL
+FFBBFFBRRL
+FBFFFFFRLL
+BFBBBBFRLL
+BBFFFFBLRR
+FBBBFBFRRL
+FBFBFFBRLR
+FFFFBFBRRR
+FBFFBBFLRR
+BFFFBFBRLR
+BFBBFBFRLL
+FBBBFFFRRR
+FFBFBBFRRL
+FBBBFFFLLL
+FBBFBFBLLR
+FFFFBFFRRR
+FFFFBBFLLL
+BFFBFBFRLL
+FFBFBFBLLR
+BFFBFFFRRR
+BBFBFFFLLL
+FBFFFFFLLL
+FFFBBBBRLL
+FFBBFBBLLR
+FBFFFFBLLL
+BFBBBBFLLR
+FFFBBFBRRR
+BBFBFBFLLL
+BFBBFFFRRL
+BFBFFBBLRL
+FBFBBFFRRL
+FFFBBBBRLR
+FBFFFFBLLR
+FFFBBBFLLL
+BFBBFFBRLR
+FFBFBBFLLR
+BBFBFFBRLL
+FBFBBFBLLR
+BFBFFFBLRL
+FFFFBBFLRL
+BBFFFBFRLL
+FBBBFFBRLL
+BFFFBFFRRL
+BFBFBBFRRL
+FBFBFBBRLR
+FFFFFBBRLL
+BFBFFFBRRL
+BFFFFBBRLR
+FBFFBBBRLL
+FFBFFBBRLR
+BFFBFBBRRR
+BBFFFBFLRL
+FBFFFBFLLR
+FBBFFFFRLR
+BFFFBFBLRL
+FFBFBBFLLL
+BFFFFFBLLR
+FFBBFBBRRL
+FBFBBBBLLR
+BFFBBFBRLL
+BBFFBBFLLL
+FFBFFBBRLL
+FFBBBFBLLR
+BBFBFBFLRL
+BFFFBBBLRL
+FBBFBBBLRL
+FBBFBFFRRL
+BFBFFBBRLL
+FFBBBBBLRL
+FFBBBBFLLL
+BFBBBFBLRR
+FFFBFBFRRR
+BFBBBBBLLR
+FFBBFFBLLL
+BFBBBBFLLL
+FBBBFBFRLR
+FFBFFFFLLR
+BBFFBBBRRL
+BFFBBFFRLL
+BFFBBBBLRL
+BFBFBFFRRR
+FFBFBBFRLR
+BBFFBBFRLR
+BFFFBBBLLR
+BFBFFBFRRL
+FFFFFBFLLL
+FBFFBBBRRL
+BFBFBBFLLL
+BFFFFFBLRL
+FBBBFBBLLL
+FFBBFFBRRR
+FFFBBFFLLR
+BFBFFBFLRL
+FFBFFFBRLR
+FBFFFBFRLL
+BFFFFFFLLR
+BFFBBBFRRR
+FFBFBFFRLR
+BBFFBFBRLL
+FFFBFBFRLL
+BBFFFBFRLR
+BFFBFFBLLL
+FFBFBBFRRR
+BFBFFBFRLL
+FBBBBFFRLR
+FFBFBFBRLL
+BFFBFBBLLR
+FBFFBFFRLL
+FFBFBBBRRL
+FBFBBFBLRR
+FBBFFBFRRR
+FFBFBFFRRR
+BBFFFFFLRL
+FBBBFFBLLR
+FBFBFBFRLL
+BBFFFFFRLR
+FBBBBFBRRR
+BBFFFFFRRR
+FFFBFFFLLR
+BFBFBBBLRL
+FBFBBBBLRR
+BBFFFBFLLR
+BFBBFBBLRL
+BFFBFBFRLR
+BFFBBFBRRL
+BFFBFFBRLL
+FFBFFFBRLL
+FFBBFFFRLL
+FBFBFFFLRL
+FBBFBBBLLL
+BFFBFFFLLL
+FBFFFFFLRR
+BFBFBBBRLL
+FBFFBBBLLL
+FFFBBFFRLL
+FFBFFFFRRR
+FFBBBBFLRL
+FFBFFBFRLL
+FFBBFFFRRR
+BFBBBBBLLL
+FFFBBFFLLL
+BFBBBFFRLR
+FBFFBBBLRL
+BFBBFFBLRL
+FBBFBFFLLL
+FFFBFFFLLL
+FBBBFBBRRL
+FFFBFBFLRR
+BFBBFFBLLR
+FFBFBFBRRR
+BFBFBBBLLL
+FBFBFBBRRL
+BFFFBBBRLL
+FBFBFFBRLL
+FBFFBBFRRL
+BFFFBBBRRR
+FFFFBFFRLR
+BFBBFBFRRR
+BFBBBBBRLL
+FBBBFBBRLR
+FFBFFFBLRR
+BBFFFFFLLL
+FFBFBFFLRL
+BFBFFBFRRR
+BBFFBBFRLL
+FFBBBFBLLL
+BFFFFFBLRR
+FBBBBBBLLL
+BFFBFFFLLR
+FFBFBFFLRR
+BFBBBBBLRR
+FBBFBFBRLL
+BFBBBBFRRR
+BBFFFFBLLL
+BFFBFFBLLR
+FBFBFBBLLR
+BFFFFFBRRR
+FBBFBFFRLR
+FBFFBBFLRL
+FBFFBBBLLR
+FFBBFFBRLR
+FFBFFFFLRL
+FBBBFBBRRR
+FFBFBBBRLL
+BFBFFFBLLR
+BFBFFBFLLL
+FFFBBFFRRL
+FBBFFBBRRR
+FFFFBBBLLR
+BFBFFFBRLL
+BFBFFFFLLL
+BFFBFFFRRL
+FBBFFBFLLR
+FBFFBBBRRR
+FFFFBFBRRL
+BFFFFBFLLR
+FFFBFFFLRR
+BFBBFBFRRL
+FFFFBFBLLR
+FBBFBFBLRR
+FFFBBBFRRR
+FFFBBBBLRL
+FBFFFFBRRL
+BFBBFFBRRR
+FFBFFFFLRR
+FFBBFFFRLR
+BFBFFFBLRR
+FFBBFBFLLR
+FFBBFFFLLL
+BFFFBFBRRL
+FFBBBFFRLR
+FBFBFBFRRR
+FFFFFBBLLL
+BBFFBBFLLR
+FBFBFBFLRR
+BBFFFFFRRL
+BFBBFBBLRR
+FBBBBBFLRR
+BFFBBFFLRL
+BBFBFFFRRL
+FBFFBFFRLR
+FBFBFFBLRR
+FBBBFBFLRL
+FFFBBBBLRR
+BBFFFBBRRR
+FFBBBBFLRR
+BBFFBBBRRR
+FBFBFBFLRL
+BBFFBBBLRL
+BFBBFBBRLR
+FBBBFBFLLL
+BFFBFBBLRL
+BFFFFFFRRR
+BFFBBBFLLL
+FFBFBBFLRR
+FFFBFFBRLL
+FBBFFFBLLR
+FFBBBFFLRL
+BFBFBFBLRL
+BFBFFFBLLL
+FFBBBFFRRL
+BBFFBBBRLR
+BFBFFFFLLR
+BFFFBBBRRL
+BBFFBFBRLR
+BFFFBFBLLL
+BFFFBFFLLL
+BFBFFBFLRR
+BFFBBFBRLR
+BBFFBBFRRL
+BFBBFBBRLL
+FFBBBBBRRR
+BFBBBFBRRR
+FBFFBBFRRR
+BBFFBFBLLL
+BFFFFBBRRR
+FBBFBBBRRL
+BFFBBBFLLR
+BFBFBFBRRL
+FFBBFFFRRL
+BFFBBFFLLL
+FBBBBFFRRR
+BBFFFBFLRR
+BBFFFFFLRR
+FBFFFBBLLL
+FBBBFFFRLR
+FBBBFFFLRL
+BFFBBBFLRL
+FFBFBBBRLR
+FFBFFBFLRL
+FBFBFBFLLL
+FBBBBFFLLR
+BFFFFFFLLL
+FFFBBBFLRR
+FBBBFBBLRL
+FBBBBFBRLL
+BFBBBFFLRL
+BBFFBFFRLL
+BBFFFFFLLR
+FBBFBFBRRR
+FBFBBFFRRR
+BFFBBBFRLL
+BFFFFBFRLR
+FFBFBFBLRL
+FFFFBBFRRL
+FFFFFFBRRL
+FFFBFFBLRL
+BFFBBBBRLL
+FBFBBFBLRL
+BBFFFBBRLL
+FBFFBFBRLL
+FFBBBBBRLL
+FFBFBBFLRL
+FFFFFBBRLR
+FFBBFBFLLL
+FFFFFFBLRR
+BBFFFBFRRR
+FBBFFFBRLL
+FFFFBBBLRL
+BFFFFBFLRR
+BBFBFBFLLR
+BFFFFBFRRL
+BFBBFFFLLL
+FBFFBFBRRR
+BFFFBBFRLL
+BFFFFBBLRL
+FFFBBBFRRL
+FBFFFBFRRR
+FFBBBFFRLL
+BFBFFBBLLL
+BFBFBBBRRL
+BFFFFBFLRL
+FBBFBBBRRR
+FBBFBBFLRL
+FBBBFBBLRR
+FBBBFFBRRR
+BBFFBFBLRR
+FFBBBFFLLR
+BFBFBFFLLL
+FFBBFFBLLR
+FBFBBFFRLL
+FBBFFBFLRL
+FFBFBFBLRR
+FFFBBFBLLR
+FFBBFFBLRL
+BFBBBBBRRR
+BFBFBBFRLL
+FFBBFFFLLR
+FFBBFFBRLL
+FFFBBBFRLR
+BFFFBFFLRR
+BFFBFBBRLR
+BBFFBBBLLL
+FBFBFFBLLR
+FFFBBFFRRR
+BBFBFFFLLR
+FBBFBFFRLL
+FFBBFBBRLL
+FBBBFBFRLL
+BFBBFBBRRL
+BFBFFFFRLL
+BFFFBBBLRR
+FFBBBBBLRR
+BBFFFBBRLR
+BFFBBBFRRL
+BBFFBFBLRL
+BFFBBBBRRL