aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2020-12-05 05:34:09 +0000
committerAkshay <[email protected]>2020-12-05 05:34:09 +0000
commitb2a0507e6418c7853651e4aa0759752eb67808f2 (patch)
treecb28a4905e83fef2ae5b343c7b1ddea6a4230710
parent33549e923debfa5c586e2b27938ff9574c9de5bf (diff)
add initial day5 solution
-rw-r--r--aoc.cabal6
-rw-r--r--execs/Day05.hs33
-rw-r--r--input/05968
3 files changed, 1007 insertions, 0 deletions
diff --git a/aoc.cabal b/aoc.cabal
index 4b92bb7..7b25a88 100644
--- a/aoc.cabal
+++ b/aoc.cabal
@@ -39,3 +39,9 @@ executable Day04
39 build-depends: base, parsec, containers 39 build-depends: base, parsec, containers
40 default-language: Haskell2010 40 default-language: Haskell2010
41 hs-source-dirs: execs 41 hs-source-dirs: execs
42
43executable Day05
44 main-is: Day05.hs
45 build-depends: base, parsec
46 default-language: Haskell2010
47 hs-source-dirs: execs
diff --git a/execs/Day05.hs b/execs/Day05.hs
new file mode 100644
index 0000000..4251cd6
--- /dev/null
+++ b/execs/Day05.hs
@@ -0,0 +1,33 @@
1module Main where
2
3import Text.ParserCombinators.Parsec
4import Data.List (sort)
5import Control.Monad
6
7data Direction = Upper | Lower
8
9doHalving :: [Direction] -> (Int, Int) -> (Int, Int)
10doHalving [] p = p
11doHalving (Lower:rest) (l, u) = doHalving rest (l, (u+l) `div` 2)
12doHalving (Upper:rest) (l, u) = doHalving rest ((u+l) `div` 2 + 1, u)
13
14findId :: (Int, Int) -> Int
15findId (row, col) = row * 8 + col
16
17doValidate :: String -> Int
18doValidate s = findId (row, col)
19 where row = fst $ flip doHalving (0, 127) $ map readDir (take 7 s)
20 col = fst $ flip doHalving (0, 7) $ map readDir (drop 7 s)
21
22readDir :: Char -> Direction
23readDir c
24 | c `elem` "FL" = Lower
25 | otherwise = Upper
26
27main :: IO ()
28main = do
29 n <- lines <$> readFile "input/05"
30 let valids = map doValidate n
31 ans1 = maximum valids
32 print ans1
33 print $ sum [minimum valids .. ans1] - sum valids
diff --git a/input/05 b/input/05
new file mode 100644
index 0000000..812a71d
--- /dev/null
+++ b/input/05
@@ -0,0 +1,968 @@
1BFFFFFFRLL
2FFBFBBBRLL
3FBBFBFBRLR
4BBFBBBBLLL
5BBFBBBBLLR
6BBBFBBBLLR
7FFBBBFBRLR
8BBFBFBFLRL
9FBBFFBBLRL
10BBBFBBFRRL
11BBFBBFFRRL
12BFBBFBFLRL
13BBFFFBBRLL
14FBFFFBBLLR
15FBFBFBFLRR
16FBBFBFFRLL
17FFBBFFFRRR
18BFBFBFBRLL
19FBBFFBBRLL
20BBBFFBBRLL
21BFBFFFFLLR
22FBBBBFBRRR
23BBFBBFFLRR
24BFFBFBFRRR
25FBFBBBBRLR
26BFBFBFFRLL
27BFFFFFBRLL
28FBBBFBFLLR
29BFFBFBBRRR
30BFFBBFBLLR
31FBBBFFBLLL
32BFFFBFBLRR
33FFFFBFFLRR
34BBFFFBFLLR
35FBFBFFFLLR
36FBFFFFFLLL
37FFFFFFBRLL
38BFFBFBBLRR
39BFBFFBBLRR
40BFFBFFBRLR
41FFBFBBBLLR
42FBFFFBFRRR
43BFBFBFFRLR
44BBBBFFBRRR
45FBBFBBBLLL
46FBBBBFBLRR
47BFBBFFFRRL
48FBBBBBBLRL
49FBBFFFFLLL
50FFBBBFFLLR
51FBBBBBBRRR
52BBBBFFBRLR
53BBBFBFBLRL
54FFBFFBFLLL
55FBBBBBFLLL
56FFBBBBBRLR
57FBBFFFFLRL
58BBFBBFBLLR
59FFFBBFFRLR
60FFFBBBFLLL
61BFFFFFFLRL
62BFFFBFFLRL
63FBBFFFFRLR
64FBFFFBBLLL
65FFFFFBFRLR
66BBBBFBFLLL
67FBFBFFBLLR
68FFBFBFBRLR
69FBBBFBBLLR
70FFBBBBFRLR
71FBBBFBBRLL
72FFFBFBFLLL
73FFFFFBFRRL
74FFFBFFBLRR
75BFBFBBFRLL
76BFBFFFBLLL
77FFFBFBFRLL
78FBFBBBFRLL
79FFFBFBFLLR
80BFBBFBFRRL
81BBFFBFFRLR
82FFFBBFFRLL
83BBBBFFFLRL
84BFFBFBBLLL
85BBFFFFFLRL
86BBFFBBBRLL
87FFBFFFFLRR
88FFBBFFFRLR
89BBFFBBBRLR
90FBFBFFBRRL
91FFFFBBBLRL
92BBFBFFFRRL
93BFBBBFBRRL
94FFBFBFBLRR
95BBBFBFFRLR
96BFBBBBBRRL
97FBFFFFFLRR
98BFFFFFBLRR
99FFBBBFBLLL
100FBBBFFFLRL
101BBFFBBFRRL
102FBFFFFBRRR
103BFBFBBBRRL
104BBFFBBBLRL
105FBBFBFBRLL
106FBFBBBFLLL
107FFFFBBBLRR
108FBBFBBFLLR
109FBFFBBFLRL
110FFBBFBFRRR
111BFFBBBFLRL
112FFFBBBFRRL
113FFBBBFFLRL
114BFBBFFBRLL
115BFFBFFFLLL
116FBFFFFBLRR
117BFBFFBFLRL
118FBBFFBFLLR
119FBBFBBBRRL
120BBFBFFFLLL
121FBBBBFFLRR
122FBBBFBBRRR
123FFFBFFFLLR
124BBFFBBFLRL
125FFFFBFFRLL
126BFBBBFFRRR
127BFFFFBFRRL
128BBFFBBBLLR
129BFBBBBFRRR
130BFBBBFFLLL
131BBFBFFFLRL
132BBBFFFBRRL
133BBBBFFBRLL
134FBFFFFFLRL
135BFFFBBFLLR
136FFFFBBFRRL
137BBFFBFBLLR
138BFFBBFFRRL
139BBBFFBBLLL
140BFFBFBFLLL
141BFBFBFBRRL
142BBFFFFBRRL
143FBBBFBFRRR
144FFBFBBFRLR
145FFFBBBBLRR
146FFBBFBBRRL
147BBFBBFBRLL
148FFBBBBBRLL
149BFBBBBFLRR
150FBFBBFBLLL
151FBBFFFFRLL
152BFFBFFFLRL
153BBBFBBFLLL
154BFBFBBBRRR
155FBFBBFFLRL
156FBBBFFFLLR
157FBBBFFBLLR
158BBFFBBFRLL
159FBBFFBFLRL
160BFFBBBFRRR
161BFBBBBBRLL
162FFBBBBFRLL
163BBBFFFFLLL
164BBFBFFBRRR
165FBBBBFFLLL
166BBBFFFFRRR
167FBBFBFBLLL
168BBBFBBFLRR
169FFBFFBBRLL
170FFBBFBFLLL
171FBFFFFFRLL
172FBFBFFBLRR
173BBFFBBBRRL
174BFFBBBFRRL
175FFBBBFBRLL
176FBBBBFBRRL
177BBFBBBBRLR
178BFFBFFBRRL
179BBFBFBBRRL
180FFFBFBFRLR
181FFBBFBFRLR
182FFFBBFBRLL
183BFFFFBBRLL
184FBFBBFBLLR
185FBFFBBFLLL
186BBFBFBBRLR
187BBFBFBBLLL
188FBBBFBBRRL
189BFFFBBBRLR
190BBFFBBBRRR
191BFFBFFBLRL
192BBFBFFBLLR
193FFFFFFBRRL
194BFBFBFFLLR
195BBBBFFBLLL
196FBBBFBFRRL
197FBBFFBFLLL
198FFBFBFFRLL
199BFBBFFFLLL
200FBFFFBBLRL
201FFFBFFBLRL
202BFFFBBBLRR
203BBBFFBFRRL
204FBBBFFFRLR
205FFBBFFBRRR
206FBBBBBBLLL
207BFFBBFFLLR
208FFFFFBBLLR
209FBBFBFBRRR
210BBBFBFFLLL
211FFFFBBFRRR
212FBFFFFBRLL
213FFBBFFFLRR
214FFFFFBBLRL
215BBBBFFFLLL
216FFFFBFBLLR
217BBBBFFFRRR
218FBBFBBFRRR
219BFFBFFFRLR
220FBFFBBFLRR
221BFBBFBBRLR
222BFFBBBFLLL
223BFBFBBBLLL
224BBFBBBFRRL
225FBBFBBFRRL
226FFFBFFFLRL
227FBFFBFBLRR
228FFBFFFFRLL
229FFFFBBFLRR
230BFBFFBFLRR
231FBBFBBBRLR
232BFBBBFFLRL
233BBFBFBFRLR
234FFFFFBBRRL
235BBFFBFFLRR
236FBBBFFBRLR
237BBBFFBBRRL
238FFFFFBBRLR
239FFFBBFFRRL
240FFBFFFFRLR
241BFFBFBBLLR
242BFBFBFFLLL
243FFBFBBBLRL
244BBFBBBBLRR
245BFFFFFBRLR
246BBFBFBBLLR
247FBBBBFBRLL
248BBFFBFBLRR
249BBFBFBBRRR
250BBBFBBBLLL
251FBFBBBBRLL
252BFFBFBBRLL
253BFBBBBBRLR
254BBFFFFBRLL
255FBFBBBBRRR
256FBBFFFBRRL
257BFFBBFFLLL
258BBFBBFBLRL
259FBBFBBBLRR
260FBBFBBFLLL
261FFFFBBFLRL
262BFFFBBBRLL
263FFFBBBFLRL
264BFFFBBFRLR
265FFFFBBBLLR
266FFFFBFFRLR
267FFFFBBBRRR
268BFBFBFBRRR
269BBFFBBFRRR
270FBBFBFFLLR
271BFBBBFBRLL
272BFBFFFFRLR
273BFBFFFBLLR
274BFBBBFBRRR
275BFFBBBFRLL
276FBFFBBFRLR
277FBFBBFFLLL
278FBFBFFFRLR
279FFFBFBBLRR
280FFBBBFFRRL
281BBFBFFBLRL
282FBBBBBFRLR
283BBBFBFBLLR
284FFFBBFFLRL
285BFFBBFFLRR
286BBFBFFFLRR
287FFBFFFBRRR
288BFFBBFBLRL
289FFBBFFBRLL
290BFBFFBFRLL
291FFBFBFFRLR
292FBFFFBFRLR
293BFBBFBFRLL
294BFFBFBFRRL
295FFBBFFBRRL
296FBFFFFBLLL
297BFFFBBBLLL
298FBBFBFFRRL
299BFBFBBBRLL
300FFFBFFFLLL
301BFFFBFFRRL
302FBBBBBFRLL
303FFBFBBFRRR
304FBFBFFFLLL
305FFFBFBBRRR
306BFBBFFFLRR
307FFFFFBFLRR
308FBFBFFBRLR
309FBFFBBFLLR
310BBBFFFBLLR
311FBFFFBBRLL
312BFFBFBBLRL
313FFFFFFBRRR
314FFBFBFBRLL
315BBFBBFFLLR
316BBBFFFFRLR
317BFBFBFBLRL
318FBFFBFBRLR
319FBBFFFBRRR
320BBFFFFFLRR
321BFBFBFBLRR
322BFBBBBBLLR
323FFBFFBFRRR
324FFFFBBBRLL
325FBBBBBFLRR
326FFBBFBFRLL
327FBFBBFFLRR
328FFBFBBBLLL
329FBFFBFFRRL
330BBBFFBBLRR
331BFFFFFFRRL
332FBFFBFFRLL
333FBBBBFBRLR
334FBBBFBFLRL
335FBBBFFBLRL
336FFBBFBBLLR
337BBFFFBBRLR
338BBBBFFBLLR
339BFFFFBFLRR
340BBFFBFFRLL
341FFBFBFFRRR
342BFFFFFFRLR
343FFFFBFFLRL
344BFBBFFFRLR
345BBFFBFFLLL
346FFFFFBFRRR
347FFFBFBBLRL
348BFFBBBBRRL
349FBFBBFFLLR
350FFFBBFFLLL
351FFFFBFBLRL
352BBFBFBBLRR
353BBFFBFFLRL
354BBBFFFBLRL
355BFFBFBFRLL
356FFFBFFFLRR
357FBFFFBBRLR
358BFFFBBFRRR
359FBBBBBFLRL
360BFFFBBBLLR
361BFFFBBFLRL
362BFFFFBFLLR
363FBFFFBBLRR
364FBBFFFBRLR
365BBFFBFBLRL
366BBFBFBFLLR
367FBBBFBFRLR
368FBFFFBFRRL
369BFFFBFFLRR
370FFFFBFBLRR
371FBFFBFFLLL
372FFBFFBBRLR
373BBFBBBFLLL
374FBFFBFBRRL
375BFFBFFBRLL
376BFBFFFFLRR
377FFBFBBBRLR
378BFFBFBBRRL
379FBFBBBBLRR
380BFFFFFBLLL
381FBFFBFBRRR
382FBFBBFFRLR
383BFBFBBFLLL
384BFBBBFFRRL
385FFBBBFBLLR
386FBBFFFBLRL
387BFFFFFFLLR
388FBFFFFBLRL
389FFBBFFFLRL
390FFBBBFBLRL
391BFFFBFBLLR
392BFFBBBFLRR
393FBFFFBBRRR
394FFBFFFBRLL
395FBFBFBBLLR
396BFBBBBFRLL
397FBBBBFFRLL
398BFBFFBFRRL
399FBBBBFFRLR
400FFBFFFFRRR
401BFFFBBFLRR
402BBFBFBFRLL
403BFFBFFBRRR
404FFFFFBFLLL
405BFBFFFBRRL
406BFFBBFBRRL
407BFBBFFBRRL
408FFFBBBBRLR
409FFFBBBBLRL
410BFBBBFFLLR
411BFBFFFFRRR
412BBBFBFFRRR
413FFFBFFFRRR
414FFFBFBBLLR
415BBBFBFFRRL
416BBFFBFFLLR
417FFFBBFFLLR
418FFFBFBBLLL
419FBFBFBFLRL
420FFFFFBBLLL
421FBBBBBBRLR
422FFBBFBFLRL
423BFFFFBBRLR
424BFFFBFBLLL
425BBFBBBFRRR
426FBBBFFBRRL
427FFBFFBFLRL
428FFBFFFFLRL
429BBFFFFBLLL
430BFBBFBBRLL
431FFFFBFFRRR
432BFFBFBBRLR
433BFFBFBFLRR
434BFFBBFBRLL
435FBBBFBBLRR
436FBFBFFFRLL
437BFBFFFBRLL
438FBBBBBFRRL
439FBFBFBBRLL
440FBBFFBBRRR
441BFFFBBFRRL
442BBFFFFFRRR
443BFFBFBFLRL
444BBBFFBBLRL
445FFBFBBFLRR
446BBFFFBFRLR
447FBFBBBFRRR
448BBFBBBBRLL
449FBFFBFFRLR
450BFBBBFFRLR
451FBFFBBBLRR
452BFBFFBFRRR
453FFBFFBFRRL
454FFBBBBBLLL
455BBFBBBFRLL
456BFBBFBBLLL
457BFBBBFBLRL
458FBBBFBFLLL
459FBBFBFFLRL
460FBFBFBFLLL
461BBFFBBFRLR
462FBFBBBFLRL
463BBFBBFBLRR
464FFFFBFFLLL
465FFFBBBBRRL
466BBBFBBBRLL
467BBFFFFFLLR
468FBBFFBBRLR
469FBBFBBFRLR
470BFFFBFBLRL
471BFFFFBBRRR
472FBFFFFFLLR
473FBBFBBFLRL
474BBFFFBFRRR
475BBBFFBFLLR
476BFFBBFBRLR
477BBFBFFFRLL
478FFFBBFBLRR
479BBBFBFFLLR
480FBFFBFBLRL
481FBBFBFFLRR
482FBBBFFFLRR
483FBBFBBBRRR
484BBFFFBFRLL
485FFBFBBFLRL
486FBBFFFBLLR
487BFFFFBFRRR
488BBFBBFFRLL
489FFBFBBBLRR
490BFBFFFBLRL
491FBBFFBFRRL
492FFFFBBBRRL
493FFFBBFBRRR
494FFFBBBFRLL
495BBFFBBFLLR
496FFBFBFFRRL
497BFBFFFBRLR
498FFBBBFFRLL
499FFFFBBFLLL
500BFFFFFBLLR
501FBBFFFFRRR
502FFFFFFBLRL
503BBFBFFFLLR
504BBBFBFFLRL
505BBBFFFFRLL
506BBFFFFBRLR
507FBFBBFFRRL
508FFFFFBFLLR
509BFFFBFBRLR
510BFFFFFFRRR
511FBFBFBBRLR
512BBBBFFFRLR
513FBBFBFBLRL
514BBFFBFFRRR
515BFFBBBBRLR
516BBBBFFBLRR
517BFBBFBBRRL
518BFFFFBBLLL
519BFFFBFBRLL
520FBBFFFFLLR
521BFBBFFFRLL
522BBFBBBFRLR
523FBFBFBFRRR
524BFBFBFFLRR
525BBFBBBBRRL
526BFFFBFFRLR
527BBBFBFBLLL
528FBFBFFFRRL
529FBBBFFFRLL
530FBFBBFBRRR
531FBFFFFFRRR
532FBBBBBBRRL
533BBBBFFFLLR
534BFFFBFFLLR
535BFBBFBBLRL
536BBBFFFBRLR
537FFFBBFBLRL
538BFBFBFFRRR
539BBFFFBBLLR
540FBFBBFFRLL
541FFFBBBFRLR
542BFFFFBFRLL
543FFBBFBBRLL
544FFFBFFBRRL
545BBBBFFFRLL
546FBFFBBBRLL
547FFBFBFFLLL
548BBBFBBFLRL
549FBFBBFBLRL
550FFBFBFFLRR
551FFFBFFBLLR
552FBBFBFFRRR
553FFBFBFBLLR
554FFFFFFBLLR
555BBBFFFFLRR
556BBFBBFFRLR
557FFFFBBBLLL
558FBBFFFBLRR
559BFFFFBFLLL
560BFBBBFBLRR
561FBFFFBFLLR
562FBFBBFBRRL
563BFBFBBFRRR
564FBFBFFFLRR
565FFBFFBFLLR
566FBFBFBFRRL
567FFFBBBFLRR
568FFFBBBBLLR
569BBBFBBFRRR
570BFFBBBBLRR
571BBBFFBFLRR
572FFBBBFFRRR
573FBFFBFFRRR
574BFFFFBBLRR
575BFFBFFFRLL
576BFFBFFBLRR
577FBBBFBBRLR
578BFBFFBBRLR
579FBFFBBFRRR
580FFBBBFFRLR
581BBFFFFFRRL
582BFFBBBBLRL
583FBBFFFFLRR
584FFBFBBFLLL
585BFFFBBBRRR
586BBFFFFBLRR
587FFFFBFBLLL
588FBFFBFFLRR
589BFBFBFFLRL
590BBFFFFFRLR
591BBBFFBBRLR
592BBFFBFBRRR
593FBFFBBBLLR
594BBFBFBFRRR
595BFBBFBFRRR
596BFFFBBBLRL
597BFBBFBBLRR
598BBBFBBBRRR
599FFFBBFBRRL
600FFBFFFBRRL
601FFBFBFBLRL
602BFFFFFBRRR
603BFBFBBBLLR
604BFFFBFFRRR
605FBFBFFFLRL
606BFBBBBBRRR
607FFFBFBFLRL
608FFFFBFFRRL
609FBFBFBBLLL
610FFFFBBBRLR
611FBBFBBBLRL
612BFBBFBBRRR
613FFFBFBFLRR
614BBBBFFBRRL
615FFBBFBFLLR
616FFFBFBBRLR
617BBFFFBFLRL
618FFBBBFBRRL
619FFBFBBBRRR
620BFBBBBFLLR
621BBFBBBFLRL
622BFBBFBBLLR
623BBFFFBBLRR
624FFBBFFBLRL
625BBBFFFFRRL
626BFFFBFFRLL
627BBBBFFFLRR
628FFBBBBFLRR
629FBBFFBFLRR
630BBBFFFFLLR
631BFFBFFFRRL
632FBFBFBBLRL
633BFBFFBFLLR
634BFFBFBFLLR
635BFBFFFBRRR
636FFBBFFFRRL
637BBFBBFBLLL
638FBBBFBFRLL
639BBFBBBFLRR
640BBBFFFBLRR
641BBFFFFBLLR
642FBBFBFFRLR
643FBFBFFBLLL
644BFFBBBFRLR
645BFFFFBBRRL
646BBBFFBFLLL
647FFFBFBFRRR
648FBFFBFFLRL
649FFBBBBBLLR
650BFFBBFBRRR
651FBBBBFBLRL
652BFBFBBBRLR
653BBFBBFFLLL
654BFFFFFBLRL
655FBBFBFBRRL
656FBBBFFFLLL
657BFFFBFBRRR
658FFBFBFFLRL
659FFBFBFBRRL
660FFBBBBBRRR
661FFFFBFBRLR
662BFBBFFBLLL
663BFFBBBFLLR
664FBBBFFBRLL
665FBFFBBBLRL
666BFFBBBBRRR
667FFBFFBBRRL
668BFBFFBBRLL
669FFFFFBFLRL
670FFBBBBFRRR
671FFBFFFFLLR
672BBBFBBBRRL
673FFFFFBBRLL
674FBFBBBBRRL
675FBBBFBFLRR
676FFFBBFFLRR
677FBFFFBFLRL
678FFBFFBFRLL
679FFFBFFFRRL
680FFFFBFBRLL
681BBFBFBBRLL
682FFBBBBFLLR
683FBFFFBBRRL
684BFBBBBBLLL
685BFBFFBBLLL
686FFFFBFBRRL
687FFBBFFBLRR
688BFBBFFFRRR
689FFBFFBFRLR
690BBFBBBBLRL
691FBBFBBBLLR
692BFFFBBFLLL
693FFFFBFFLLR
694BFFFFBFRLR
695FBBFBFBLRR
696BBBFFFFLRL
697BBFFFBBLRL
698BBFBFFBRLL
699FBBBBFBLLR
700FBFFBBFRLL
701BBFFBFBLLL
702FBBFFFBRLL
703BBBFBFBRRL
704FBFBBFBRLR
705BFBBBBFLLL
706FBFBFBFRLL
707FBFBBBFLLR
708BBFBFBFLLL
709BBFFFBFLLL
710BBBFFFBLLL
711BFBBBFBLLL
712FFBBBFFLLL
713FFBFFFFRRL
714FBBBBBFLLR
715FBBFFBBLRR
716BBFFFFFRLL
717FFFFFBBLRR
718BFBBFFBLRL
719BFFFFFBRRL
720BFBBFFFLLR
721FFFBFBBRRL
722FFBFFBBLRL
723BFFFFBBLRL
724FBFBBBBLRL
725FBBBFFBRRR
726FFBBFBBRLR
727BFBBFFBLRR
728FBBBFFBLRR
729FBFBFFBRLL
730FBFBFBFLLR
731BBFFFBBRRL
732BBBFBFBRLL
733BBFBBFFRRR
734BFBBFFFLRL
735BFBFBFFRRL
736BBFBBFFLRL
737BBFBFBFLRR
738BBFBFFFRRR
739BBBFFBFRLR
740BFFBBFFLRL
741FBBBBBBRLL
742BBFFFBBLLL
743FFFBBBBLLL
744BBFFFFBLRL
745FFBBFFBRLR
746BFBBBBBLRR
747BBFBBFBRRR
748FFFFFFBRLR
749FFFFBBFRLL
750FFFFBBFRLR
751FBFBBFFRRR
752FFFFBFBRRR
753FBFBFBBRRR
754FFFFFBBRRR
755BFBBBBBLRL
756BBBFBBFLLR
757BFBFFBBRRL
758BBBFFFBRLL
759BBFBBBBRRR
760FBFBBBFRRL
761BFBBFBFLLL
762FFFBBFBLLL
763BBFFBFBRRL
764FFBFFBBLLR
765FFBFBBFLLR
766BBBFBBFRLL
767FBBFFFFRRL
768FBBFFBFRRR
769BFFBFFBLLL
770FBFBFFBLRL
771BBBFBBFRLR
772FFBFBBBRRL
773FFBBBBFLLL
774FBFBBBFLRR
775FFBBFBFLRR
776FBFFBBFRRL
777FFBBFFFLLR
778FBFBFBBLRR
779BBBFBBBRLR
780BFFBFFFLLR
781BFFFBFBRRL
782FFBBBFBRRR
783BFFBFFFRRR
784BBBFBFFLRR
785FFFFFFBLRR
786BFBFBBFRRL
787FBFBBFBRLL
788FBBBBFFLLR
789BFBBBBFLRL
790FBBBBFBLLL
791FFBBFFBLLR
792BBBFFBBRRR
793BFBFFFFRRL
794FFBFFBBRRR
795BFFBBFFRRR
796FBFFBFFLLR
797BBFFFFFLLL
798BBBBFFBLRL
799BFBBBBFRRL
800FBBFBFFLLL
801FFFFFBFRLL
802FBBBBBFRRR
803BBBFBFFRLL
804BFBBBFFRLL
805FFBBBFFLRR
806BBFFFBFLRR
807BBFFFBFRRL
808BBFBFFBRLR
809FFBFFFBLRR
810FBFBFBBRRL
811FFFBBFFRRR
812FBBBBBBLLR
813FBBFFBBLLL
814FBBBBFFRRL
815BFBFFFFLRL
816BFBBBFBLLR
817FFFBFFBRLL
818FBFBBFBLRR
819FFBBFBBLRR
820BBBFBBBLRR
821BBFBBBFLLR
822BFBFBBBLRR
823BFBFBBFLRL
824FFFBBBBRRR
825BFBFFBBRRR
826FBBBBFFRRR
827FFFBBFBRLR
828FBFFFBFRLL
829BFBFFBBLRL
830FFBFBBFRRL
831BFFFFFFLLL
832BFBFFFFLLL
833BBFFBFFRRL
834BFFBBFFRLR
835FFFBFFBLLL
836BBFBFFBLLL
837FBFFBBBRLR
838FBBBBFFLRL
839FBFFBBBRRR
840BFFBBFBLLL
841BFBFBFBLLR
842FBFFFFBRLR
843BBFFFBBRRR
844BFBBFFBLLR
845FFFBFBBRLL
846BBFFFFBRRR
847BFFBBFBLRR
848FBFBFBFRLR
849FBFFFBFLRR
850FFBBBBBRRL
851FBFFBBBRRL
852BBBFFFBRRR
853FBFFFFBLLR
854BBFBFBFRRL
855BBFBFFFRLR
856BFFFFBFLRL
857BBBBFFFRRL
858FBBFBBFRLL
859BFBFBFBLLL
860FBBBBBBLRR
861FFBBBBBLRR
862BFFBBFFRLL
863FFFFBBFLLR
864FFBBFFBLLL
865FFBFBBFRLL
866BBBFBFBRRR
867BFBBFBFRLR
868FFBBFFFRLL
869FBFFFBFLLL
870FFBFFBBLRR
871BFBFBBFLRR
872FBBFFBFRLR
873BBBFBFBLRR
874BBFFBBBLLL
875FFFBBBFRRR
876BFFBBBBLLL
877FFFBBFBLLR
878BFBBBBFRLR
879FBFFBFBRLL
880FFBFFBFLRR
881FFFBFFBRLR
882BFBFFBFRLR
883BFBBBFFLRR
884BFBBFBFLLR
885BBFBBFBRRL
886FBFBFFBRRR
887BFBBFFBRRR
888BBFBFFBLRR
889FBFFFFBRRL
890FFFBBBBRLL
891FFBBFFFLLL
892BFBFBBFLLR
893FBBBFBBLLL
894BBFFBBFLRR
895FBFFFFFRRL
896BFBFFBBLLR
897FBBFFBBLLR
898BBBFBFBRLR
899BFFFFFFLRR
900BBFFBFBRLR
901FBBFFBBRRL
902BFFFFBBLLR
903BBFBBFBRLR
904FFBBBBFRRL
905BFFBBBBLLR
906FFBBFBBLRL
907BFBFFFFRLL
908BFFFBBFRLL
909BFBFBBFRLR
910BBFFBBFLLL
911FFBBBFBLRR
912FBFFBBBLLL
913FFBFFFBLLL
914FBBFFFBLLL
915FFBBBBBLRL
916FBBFFBFRLL
917FFFBBBFLLR
918BBBFBBBLRL
919BFFBFFBLLR
920BFBFBBBLRL
921FFBFFFBRLR
922BBBFFBFRRR
923BFFBFBFRLR
924FFBBBBFLRL
925FBBFBBFLRR
926FBBBFFFRRR
927FBFBFFFRRR
928FFFBFFFRLR
929BFBBFBFLRR
930FFBFFBBLLL
931FFBFFFFLLL
932FBFFBFBLLL
933BFBFFFBLRR
934FBFFFFFRLR
935BBFBFBBLRL
936FFBFBFBRRR
937FFBFFFBLRL
938FFBBFBBRRR
939BBFFBFBRLL
940FFFBFBFRRL
941FFBFFFBLLR
942FFFBFFFRLL
943FFBFBFBLLL
944FFFBFFBRRR
945BBBFFBFRLL
946FFBFBFFLLR
947BBBFFBFLRL
948FBFBBBBLLR
949FBBFBFBLLR
950FFBBFBBLLL
951BFFBFFFLRR
952BBFFBBBLRR
953FBBFBBBRLL
954FBFBBBFRLR
955BFFFBBBRRL
956BFBBFFBRLR
957FBBBFFFRRL
958BFBFFBFLLL
959FBBBFBBLRL
960FBFBBBBLLL
961FBFFBFBLLR
962FFBBFBFRRL
963BFFBBBBRLL
964BBBFFBBLLR
965BBFBFFBRRL
966FFFFFFBLLL
967BFBBBFBRLR
968BFFFBFFLLL