aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHJ <thechairman@thechairman.info>2021-12-11 23:24:13 -0500
committerHJ <thechairman@thechairman.info>2021-12-11 23:24:13 -0500
commit14c955cb4c0e581455aa6bd9d882b94f8b35487d (patch)
treeb6a4847a954559766b4d1dc111049e128f03acf1
parent1855292990b1d423aae36bcf501bc20ddcf6ae82 (diff)
downloadgleam_aoc-14c955cb4c0e581455aa6bd9d882b94f8b35487d.tar.gz
gleam_aoc-14c955cb4c0e581455aa6bd9d882b94f8b35487d.zip
day 11
-rw-r--r--2021/day-11/day-11.rkt79
-rw-r--r--cache/0f85e5f0/2020/day/4/input1100
-rw-r--r--cache/0f85e5f0/2020/day/5/input876
3 files changed, 79 insertions, 1976 deletions
diff --git a/2021/day-11/day-11.rkt b/2021/day-11/day-11.rkt
new file mode 100644
index 0000000..0a3d485
--- /dev/null
+++ b/2021/day-11/day-11.rkt
@@ -0,0 +1,79 @@
+#lang racket
+(require "../../jj-aoc.rkt"
+ threading)
+
+(define coords
+ (~>> (for/list ([r (in-range 10)])
+ (for/list ([c (in-range 10)])
+ (cons r c)))
+ (apply append)))
+
+(define octopus-data
+ (~>> (for/list ([l (in-lines (open-day 11 2021))]
+ #:unless (equal? l ""))
+ (~>> l
+ string->list
+ (map (λ~>> ~a string->number))))
+ (apply append)
+ (map cons coords)
+ make-hash))
+
+(define total-length (hash-count octopus-data))
+(define row-length (sqrt total-length))
+
+(define (adjacent-to coord)
+ (match-define (cons r c) coord)
+ (for*/list ([row (in-list '(-1 0 1))]
+ [col (in-list '(-1 0 1))]
+ #:unless (= 0 row col))
+ (cons (+ r row) (+ c col))))
+
+(define (simulate-octopi-step data)
+ (define flashed-this-step (mutable-set))
+
+ (let look-for-more-flashes
+ ([octopi (for/hash ([(k v) data])
+ (values k (add1 v)))]
+ [flashes-so-far 0])
+ (define-values (next-octopus-update
+ flashes-this-update)
+ (for*/fold ([octopi octopi] [flashes 0])
+ ([(p x) (in-hash octopi)]
+ #:when (> x 9)
+ #:unless (set-member? flashed-this-step p))
+ (set-add! flashed-this-step p)
+ (define flashed-octopi
+ (for*/fold ([o (hash-set octopi p 0)])
+ ([adj (in-list (adjacent-to p))]
+ #:when (hash-has-key? o adj)
+ #:unless (set-member? flashed-this-step adj))
+ (hash-update o adj add1)))
+ (values flashed-octopi
+ (add1 flashes))))
+ (if (> flashes-this-update 0)
+ (look-for-more-flashes next-octopus-update
+ (+ flashes-so-far
+ flashes-this-update))
+ (values next-octopus-update
+ flashes-so-far))))
+
+;; part 1
+(for/fold ([octopi octopus-data]
+ [total-flashes 0] #:result total-flashes)
+ ([step (in-range 100)])
+ (define-values [next-state
+ flashes-from-this-state]
+ (simulate-octopi-step octopi))
+ (values next-state
+ (+ total-flashes flashes-from-this-state)))
+
+;; part 2
+(for/fold ([octopi octopus-data]
+ [synchro-step #f] #:result synchro-step)
+ ([step (in-naturals 1)])
+ (define-values [next-state
+ flashes-from-this-state]
+ (simulate-octopi-step octopi))
+ #:final (= flashes-from-this-state 100)
+ (values next-state
+ step))
diff --git a/cache/0f85e5f0/2020/day/4/input b/cache/0f85e5f0/2020/day/4/input
deleted file mode 100644
index 46fe04a..0000000
--- a/cache/0f85e5f0/2020/day/4/input
+++ /dev/null
@@ -1,1100 +0,0 @@
-ecl:grn
-cid:315 iyr:2012 hgt:192cm eyr:2023 pid:873355140 byr:1925 hcl:#cb2c03
-
-byr:2027 hcl:ec0cfd ecl:blu cid:120
-eyr:1937 pid:106018766 iyr:2010 hgt:154cm
-
-byr:1965 eyr:2028 hgt:157cm
-cid:236 iyr:2018 ecl:brn
-hcl:#cfa07d pid:584111467
-
-eyr:2029 ecl:hzl
-iyr:1972 byr:1966
-pid:2898897192
-hgt:59cm hcl:z
-
-pid:231652013 hcl:#602927 hgt:166
-ecl:grn eyr:2025
-byr:2008 iyr:1986
-
-byr:1928 hgt:167cm
-hcl:#18171d iyr:2012
-ecl:oth pid:237657808 eyr:1944
-
-hgt:73in ecl:grn byr:1931 pid:358388825 iyr:2020
-hcl:#602927 eyr:2020
-
-hcl:#efcc98 eyr:2024 ecl:hzl
-byr:2030 hgt:192cm
-iyr:2013 pid:7479289410
-
-pid:053467220 iyr:2012 hgt:169cm
-cid:149 hcl:#866857
-eyr:2030
-byr:1995 ecl:oth
-
-hgt:162cm hcl:#efcc98 ecl:grn byr:1985 pid:419840766
-eyr:2022
-iyr:2020
-
-pid:22086957 hcl:c69235 ecl:#c458c5 eyr:1986 byr:2014 hgt:72cm iyr:1934
-
-hcl:#866857
-ecl:brn eyr:2024
-iyr:2017
-pid:505225484 cid:144
-byr:1980
-hgt:170cm
-
-hcl:#866857 ecl:gry
-byr:1972 iyr:2019 eyr:2023
-cid:234 pid:721290041 hgt:191cm
-
-pid:346301363
-eyr:2020
-hcl:#733820 iyr:2019 hgt:177cm
-byr:1998
-
-hgt:157cm byr:1963
-pid:898055805
-hcl:#fffffd ecl:blu iyr:2017 cid:87
-eyr:2030
-
-pid:605900764 iyr:2011
-hgt:73in ecl:hzl eyr:2024
-hcl:#888785
-cid:281
-
-iyr:2010 eyr:2026 hcl:#4f7e76 pid:883386029 byr:1946 ecl:brn
-
-hcl:z
-iyr:2020 pid:9121928466 byr:2014 ecl:zzz eyr:2025
-hgt:172in
-
-hgt:151cm cid:163 pid:670884417 iyr:2012
-ecl:oth hcl:#ceb3a1
-eyr:2028
-
-hcl:z cid:92 hgt:69cm
-byr:2008 pid:492284612
-eyr:2020 iyr:2023
-ecl:hzl
-
-byr:1933
-hcl:#7d3b0c eyr:2020 hgt:170cm
-pid:949064511 iyr:2010
-ecl:oth
-
-eyr:2025 byr:1989 ecl:oth cid:100 hgt:182cm
-pid:629190040 iyr:2017 hcl:#b6652a
-
-ecl:hzl cid:76 hcl:#e71392 eyr:2021 iyr:2013 byr:1995
-pid:762177473
-hgt:179cm
-
-pid:198500564 eyr:2029 hcl:#733820 cid:51 iyr:2012
-hgt:70in byr:1938 ecl:oth
-
-hgt:190cm ecl:brn byr:1952 iyr:2015 hcl:#623a2f
-eyr:2023
-
-hgt:169cm hcl:#602927 byr:2001 pid:823979592 iyr:2016 eyr:2029
-
-iyr:2010 ecl:gry
-eyr:2022 hgt:156cm byr:1953 pid:434063393
-hcl:#733820
-
-pid:091724580 hcl:a7069e eyr:1984 ecl:#95d01e byr:2012 iyr:2005
-
-eyr:2022 byr:1972 hcl:#866857 ecl:hzl pid:227453248
-hgt:153cm cid:324 iyr:2018
-
-cid:195 pid:049871343
-eyr:2024 hgt:169cm
-byr:1952 iyr:2010 ecl:grn
-
-eyr:2035 pid:189cm
-hgt:77 iyr:1973 ecl:#dc83d5
-hcl:z byr:2004
-
-byr:2027
-pid:89338932 hcl:1de39e ecl:grn hgt:159in eyr:2034 iyr:1937
-
-pid:076534920
-hgt:152cm
-byr:1969
-ecl:blu
-hcl:#866857 iyr:2011 eyr:2024
-
-iyr:2019 eyr:2028
-ecl:blu hgt:169cm
-hcl:#888785 pid:332202163 byr:1923
-
-hgt:65in byr:1964 iyr:2019
-pid:287612987 ecl:hzl cid:213 eyr:2023 hcl:#ceb3a1
-
-hcl:#623a2f pid:182484027
-iyr:2016 ecl:brn byr:1943
-hgt:71in eyr:2021 cid:344
-
-hcl:#cdee64 iyr:2011 ecl:brn eyr:2026 hgt:176cm
-byr:1985 pid:978641227
-
-eyr:2029 ecl:brn hgt:173cm byr:1920 cid:211
-hcl:#866857
-iyr:2016 pid:289769625
-
-hcl:#7d3b0c pid:770938833 iyr:2010 byr:1941 ecl:oth eyr:2029 hgt:161cm
-
-hgt:172cm iyr:2015 ecl:gry byr:1948
-eyr:2029
-pid:466359109 hcl:#341e13
-
-cid:74 pid:405199325 ecl:blu
-hcl:#6b5442
-eyr:1980 byr:2024 hgt:174cm iyr:2011
-
-hgt:183cm pid:075760048 cid:78 byr:1960 ecl:hzl eyr:2030 hcl:#6b5442 iyr:2014
-
-cid:264 hcl:#7d3b0c
-ecl:blu iyr:2011 eyr:2020 hgt:182cm
-byr:1929
-
-pid:435338286 byr:1931
-hcl:z ecl:amb iyr:2013 hgt:73in
-cid:165 eyr:2027
-
-pid:511898552 eyr:2025 hgt:184cm hcl:#602927
-iyr:2018 byr:1989 ecl:hzl
-
-iyr:2016
-hgt:168in
-hcl:#623a2f
-eyr:2025 pid:310738569 ecl:#0c3039
-byr:2027
-
-pid:158cm byr:1946 ecl:grt
-iyr:1920 cid:189
-hcl:389bce hgt:165cm
-
-pid:973732906 hcl:#cfa07d iyr:2010 eyr:2020 hgt:180cm
-byr:1930
-ecl:brn
-
-pid:930994364 byr:1967 hgt:151cm
-iyr:2011 eyr:2022
-
-eyr:1968 hgt:75cm cid:241
-iyr:2011 pid:5493866745
-ecl:grt
-byr:1976 hcl:#a97842
-
-eyr:2026 ecl:oth
-iyr:2016 hcl:#c0946f
-byr:1929
-hgt:175cm
-pid:9421898537
-
-eyr:2028 iyr:2016 byr:1962
-ecl:grn hgt:186cm hcl:#cfa07d pid:432962396
-
-iyr:2010 byr:1934 eyr:2023 hgt:180cm hcl:#cfa07d ecl:gry
-
-cid:168
-byr:1978
-eyr:2027 hgt:189cm pid:802710287
-hcl:#2f980b iyr:2014
-ecl:grn
-
-eyr:1970
-pid:576329104
-ecl:xry iyr:1954 hcl:#341e13 byr:2026
-hgt:74in
-
-eyr:2027 hgt:153cm
-ecl:oth
-hcl:#866857
-pid:290407832 byr:1956 iyr:2017
-
-iyr:2011
-cid:128
-ecl:amb hcl:#7d3b0c hgt:68in pid:743606119 eyr:2020
-
-ecl:oth hcl:#cfa07d
-byr:2016 pid:#de98ae iyr:1984 cid:194
-hgt:170cm
-eyr:2034
-
-pid:526098672 hgt:168cm
-hcl:#7d3b0c cid:167 byr:1923 ecl:blu iyr:2016
-eyr:2030
-
-pid:495569197 hcl:#866857 hgt:193cm
-iyr:2013 eyr:2021 byr:1921 ecl:amb
-
-ecl:amb
-hcl:#a97842 pid:862249915 iyr:2012 byr:1964
-cid:325
-eyr:2021
-
-iyr:1958
-byr:2003
-hgt:160 hcl:#18171d
-ecl:hzl eyr:2020
-
-iyr:2019 byr:1997 ecl:brn
-pid:342735713 hcl:#efcc98
-hgt:181cm cid:307
-eyr:2027
-
-pid:817121616 eyr:2020
-iyr:2012
-hgt:185cm
-hcl:#18171d byr:1969 ecl:hzl
-
-pid:381399203
-ecl:oth byr:1930
-iyr:2014 hcl:#6b5442 hgt:71in cid:156 eyr:2025
-
-byr:2002 hcl:#18171d iyr:2017
-pid:398245854 hgt:64in ecl:gry eyr:2025 cid:127
-
-eyr:2028 hcl:#341e13
-ecl:amb iyr:2012
-pid:079796480 hgt:69cm
-byr:1995
-
-cid:315 iyr:2028
-pid:775929239
-hgt:162cm ecl:dne byr:1940 eyr:1952 hcl:#c0946f
-
-iyr:2015
-hgt:154cm byr:1997
-ecl:grn
-cid:125 eyr:2024 pid:834780229
-hcl:#18171d
-
-ecl:hzl hcl:#a97842 pid:553710574 eyr:2028
-hgt:183cm cid:196
-iyr:2014
-
-pid:377912488 hgt:159cm ecl:amb eyr:2024 byr:1974
-iyr:2014
-hcl:#ceb3a1
-
-eyr:2024
-byr:1947 hgt:63in ecl:brn
-cid:69
-pid:185228911 hcl:#b6652a iyr:2016
-
-eyr:2024
-hgt:168cm hcl:#602927
-iyr:2013
-byr:1993
-pid:681091728 ecl:gry cid:203
-
-pid:037922164 iyr:2020
-byr:1990 hgt:156cm eyr:2023 hcl:#866857
-cid:97 ecl:grn
-
-hgt:170cm pid:980455250
-iyr:2011 ecl:hzl byr:1957
-eyr:2030 hcl:#cfa07d
-
-hgt:158cm
-hcl:#602927
-byr:2002 ecl:hzl iyr:2013
-cid:99
-eyr:2020 pid:48646993
-
-byr:1955 pid:814033843 eyr:2030 hcl:#a97842
-hgt:191cm iyr:2019
-
-pid:111196491 hgt:191cm iyr:2012 ecl:blu hcl:#a97842
-eyr:2026 cid:131 byr:1979
-
-hcl:#fffffd hgt:68in
-cid:121 ecl:oth eyr:2024 pid:343836937
-byr:1955
-iyr:2020
-
-eyr:2025 byr:1954
-pid:737517118
-cid:343 hcl:#b6652a
-iyr:2017 ecl:hzl
-hgt:175cm
-
-ecl:brn
-iyr:2011 hgt:171cm cid:102 pid:066348279 byr:1981
-
-ecl:oth iyr:2018 byr:1975
-eyr:2029
-hgt:185cm cid:226
-pid:978243407 hcl:#341e13
-
-iyr:2015 pid:918017915 hcl:#3e52b7
-byr:1999 ecl:brn cid:314
-eyr:2025 hgt:192cm
-
-hcl:#19d1fa byr:1984 ecl:dne hgt:76in
-iyr:2015 cid:118 pid:417075672
-eyr:2020
-
-iyr:2019
-cid:120 hgt:186cm
-hcl:#733820 eyr:2024 pid:423238982 ecl:brn byr:1968
-
-hgt:70cm cid:173 pid:767014975
-hcl:#866857 eyr:2039 ecl:brn byr:1985
-
-pid:340424924
-eyr:2027 hcl:#7d3b0c
-hgt:168cm ecl:hzl iyr:2016
-byr:1994
-
-ecl:hzl byr:1933 pid:580425691
-iyr:2010 hcl:#c0946f eyr:2024
-hgt:64in
-
-hcl:#9fe6b0 pid:913184461 ecl:grn eyr:2030
-cid:262 iyr:2014
-
-ecl:amb pid:640007768 eyr:2030 byr:2017 iyr:1988 hcl:z
-
-byr:1977 cid:54
-eyr:1939 pid:882762394 iyr:2030 hcl:#ceb3a1 ecl:blu
-
-iyr:2011 hcl:#7d3b0c byr:1928
-pid:340969354 cid:199 hgt:168cm eyr:2029 ecl:hzl
-
-pid:729464282
-iyr:2012 hcl:baae60
-eyr:2026 ecl:hzl hgt:166cm byr:2019
-
-pid:930997801 iyr:2019 eyr:2030
-hcl:#866857 ecl:oth byr:1960 cid:235 hgt:73in
-
-ecl:brn
-byr:1988 hgt:179cm iyr:2017
-pid:864768439 cid:305 hcl:#c0946f
-eyr:2029
-
-hcl:#7d3b0c ecl:grn
-hgt:182cm eyr:2021 pid:719891314
-byr:1920 iyr:2017
-
-hgt:62cm
-cid:71 ecl:brn hcl:#fffffd iyr:2025 eyr:1997
-pid:175cm byr:2022
-
-hcl:#cfa07d cid:239 eyr:2025 ecl:hzl hgt:189in byr:1980 iyr:2020
-pid:703047050
-
-byr:1951
-eyr:2030
-ecl:hzl
-pid:130992467 hgt:157cm hcl:#341e13
-
-hgt:175cm
-hcl:#623a2f
-cid:68 eyr:2025
-byr:2001 ecl:oth pid:253618704 iyr:2016
-
-hcl:#fffffd pid:379344553 ecl:grn
-eyr:2026
-hgt:72in byr:1974 iyr:2013
-
-ecl:#b4e952 byr:1970 hcl:z
-eyr:2039 pid:6056894636 iyr:2021 hgt:165cm
-cid:328
-
-hcl:#602927 iyr:2014 pid:890429537 byr:1957 hgt:68in eyr:2020 ecl:hzl
-
-cid:265 byr:1961 hcl:#ceb3a1 eyr:2022 iyr:2016 hgt:184cm pid:921615309
-
-byr:1951 eyr:2024
-hcl:#341e13
-ecl:amb pid:414644982
-iyr:2010 hgt:159cm
-
-iyr:2015 cid:319
-eyr:2029 ecl:brn pid:380237898
-hcl:#efcc98 hgt:157cm byr:1972
-
-pid:237156579 ecl:#312a91
-hgt:167cm iyr:2011 hcl:#c0946f eyr:2021 byr:1953
-
-ecl:hzl iyr:2015 pid:10160221 eyr:2025 hgt:175cm hcl:z byr:1939
-
-hgt:59in hcl:#18171d byr:1962 ecl:hzl
-iyr:2019 eyr:2025
-cid:337 pid:491938615
-
-ecl:utc hgt:82 pid:51674655 byr:2020
-eyr:1954 iyr:2029 hcl:z
-
-pid:119530189
-cid:103
-iyr:2010 byr:1979
-hgt:168cm hcl:#a97842 ecl:brn eyr:2029
-
-hgt:177cm ecl:brn
-byr:1990
-pid:015089628 eyr:2028 hcl:#733820 iyr:2020
-
-ecl:blu iyr:2020 hgt:189cm
-hcl:#efcc98 byr:1982 pid:346500376 eyr:2021 cid:160
-
-ecl:brn hgt:173cm iyr:2011 cid:259 hcl:#6b5442 eyr:2026
-byr:1995
-pid:654875035
-
-ecl:grn eyr:2025 pid:147155222 byr:1942
-cid:341 hcl:#602927
-hgt:165cm
-iyr:2016
-
-pid:543171646
-hgt:153cm
-iyr:2019 hcl:#fffffd byr:1985 cid:266
-eyr:2027
-ecl:hzl
-
-ecl:blu
-eyr:2022
-pid:667939101 byr:1974
-cid:259 hcl:#888785
-
-eyr:2030 byr:2016 iyr:2022
-pid:86902982
-ecl:zzz hgt:72 hcl:ceb867
-
-hcl:#fffffd
-ecl:grn pid:046978329
-byr:1924
-eyr:2025 hgt:158cm iyr:2011
-
-hgt:150cm eyr:2028 byr:1985 ecl:gry hcl:#866857 pid:340615189
-iyr:2017
-cid:50
-
-cid:171 hcl:#18171d pid:009562218 byr:1981 hgt:175cm eyr:2024 ecl:oth iyr:2017
-
-iyr:2019
-eyr:2022
-ecl:brn hcl:#cfa07d pid:050270380 cid:159
-hgt:151cm
-byr:1951
-
-hcl:#7d3b0c hgt:176cm iyr:2015 byr:1923 pid:348188421 ecl:blu eyr:2029
-
-byr:1997 hgt:162cm eyr:2023 pid:445685977
-iyr:2012 ecl:amb hcl:#efcc98
-
-iyr:2017 ecl:oth eyr:2028 pid:791977055 hgt:170cm byr:1991
-hcl:#623a2f
-
-byr:1998 hcl:#fffffd
-eyr:2020
-ecl:gry pid:039483695 hgt:163cm iyr:2020
-cid:165
-
-ecl:hzl hgt:74in iyr:2016 pid:026214321
-cid:152 hcl:#a1f179
-eyr:2036 byr:2001
-
-pid:257900949 cid:80 byr:1956 iyr:2012 hgt:165cm eyr:2030
-
-pid:918371363
-ecl:xry
-iyr:2012
-byr:2012 hgt:65cm
-eyr:2029
-
-pid:041789006 iyr:2018 byr:1945 eyr:2024 ecl:blu
-hcl:#5ab31e hgt:171cm
-
-ecl:gry
-byr:1956 cid:318 iyr:2020 hcl:#623a2f
-eyr:2030 pid:020576506 hgt:184cm
-
-hgt:173cm iyr:2025
-eyr:2023
-ecl:amb pid:958983168 hcl:#866857 byr:1935
-
-byr:1974
-eyr:2040 pid:57104308 iyr:1980 hcl:z
-hgt:192in cid:295 ecl:amb
-
-pid:180cm hcl:1109f7 eyr:2039 byr:2020
-ecl:dne hgt:189in iyr:1921
-
-iyr:2013 byr:1961
-hcl:#866857
-eyr:2025 hgt:158cm ecl:gry
-
-ecl:brn iyr:2013 eyr:2021 pid:978650418 byr:1980
-hcl:#ceb3a1 cid:110
-hgt:166cm
-
-pid:864880558 ecl:hzl hcl:#c0946f byr:1955 eyr:2027 hgt:169cm iyr:2011
-
-eyr:2023 hgt:191cm hcl:#866857
-pid:454509887
-ecl:grn byr:1938 iyr:2015
-
-pid:793008846 eyr:2025 ecl:grn hcl:#341e13
-hgt:187cm
-byr:1973 cid:224
-iyr:2013
-
-hcl:#866857 eyr:2022 pid:802335395 hgt:171cm ecl:amb
-iyr:2015 byr:1991
-
-hcl:#888785 pid:768625886
-hgt:180cm
-eyr:2026 ecl:oth cid:178 byr:1958
-
-pid:921387245 cid:82 hgt:190cm hcl:#c0946f ecl:grn
-iyr:2015 eyr:2023
-
-pid:0704550258 hcl:1ba8f6 iyr:2010 byr:1978 cid:130
-eyr:2030 ecl:dne hgt:66cm
-
-pid:626293279 hcl:#7d3b0c hgt:185cm ecl:oth
-eyr:2020 byr:1937 iyr:2012
-
-hgt:175
-eyr:1933 ecl:gry
-hcl:#7d3b0c byr:2003 pid:#5d8fcc
-iyr:2012
-
-eyr:2027
-byr:1927 cid:154
-ecl:gry pid:683668809 hgt:164cm
-hcl:#a97842 iyr:2011
-
-byr:1940 iyr:2014 hgt:172cm eyr:2024 pid:033678324 hcl:#10fded
-cid:292 ecl:oth
-
-iyr:1970 ecl:#201515 pid:#4cd485 eyr:2034 hgt:162
-byr:2005 cid:67
-hcl:#c0946f
-
-cid:306
-byr:1948
-hcl:#efcc98
-eyr:2024 hgt:171cm pid:440657854 iyr:2015 ecl:brn
-
-hgt:172cm ecl:brn byr:1958 pid:054926969 hcl:#4b8065 iyr:2019
-
-pid:45977569 ecl:amb byr:2002 hgt:71cm hcl:z iyr:1983
-
-pid:811407848 hcl:#866857 cid:112 hgt:180cm byr:1986
-ecl:brn eyr:2026
-
-ecl:amb
-byr:1992
-cid:288 pid:417117245 hcl:#623a2f
-iyr:2011 hgt:181cm
-eyr:2021
-
-byr:1974 hgt:192cm cid:172
-eyr:2022
-ecl:blu
-hcl:#cfa07d iyr:2014
-
-eyr:2024 ecl:gry
-pid:874569675 byr:1960 iyr:2017 hgt:186cm
-hcl:#6b5442
-
-byr:1988 eyr:2024 iyr:2020 ecl:oth hcl:#866857 pid:227304269 hgt:170cm
-
-ecl:grn iyr:2019 byr:2002 cid:150 hcl:#efcc98
-pid:600740993
-hgt:167cm eyr:2027
-
-pid:553824537 iyr:2019 ecl:blu eyr:2025 hcl:#e21269 hgt:193cm
-byr:1923
-
-byr:2030 iyr:2019 ecl:#cb0911
-hcl:#cfa07d hgt:74in eyr:2012
-pid:7647207386
-
-cid:289 hgt:128 pid:178cm iyr:2025 ecl:#4ad977 byr:2020 eyr:2036 hcl:#efcc98
-
-cid:119 hgt:150in
-hcl:z
-iyr:2012
-ecl:brn eyr:1975
-byr:2007 pid:#0dcd32
-
-hcl:8a1ce7 pid:0434291854
-eyr:2034 iyr:2005
-hgt:62cm byr:2029 ecl:utc
-
-ecl:gry hcl:#ceb3a1 byr:1976 eyr:2024 iyr:2010 hgt:188cm
-pid:636312902
-
-hcl:#888785 byr:2027 hgt:178in iyr:2017 pid:973095872 eyr:1952
-
-hgt:179cm iyr:2015 hcl:#ceb3a1
-byr:1944 pid:182079308 cid:317
-eyr:2025 ecl:hzl
-
-hcl:#6b5442 ecl:grn eyr:2023 hgt:71in pid:829794667 byr:2000
-iyr:2014 cid:192
-
-iyr:2014 pid:096659610 hcl:#c0946f ecl:oth byr:1991 cid:180
-hgt:177cm
-eyr:2023
-
-byr:2017
-eyr:2036 iyr:1933
-cid:225 ecl:gmt hgt:179in
-hcl:b5c44d pid:99932231
-
-hcl:#18171d
-hgt:187cm eyr:2023 byr:1934 cid:286 pid:878541119 iyr:2020 ecl:amb
-
-hgt:185cm
-pid:754207134 ecl:oth eyr:2023
-hcl:#a97842 cid:313 byr:1966
-iyr:2015
-
-hcl:#ceb3a1 byr:1921 eyr:2022 pid:799265846 cid:285
-hgt:67in iyr:2015
-
-iyr:2011 byr:1941
-hcl:#341e13 cid:65 pid:413556937
-hgt:169cm
-ecl:amb eyr:2020
-
-iyr:2016
-hgt:158cm ecl:grn byr:1931 hcl:#7d3b0c
-
-pid:574299170 iyr:2013 byr:1961 ecl:hzl hcl:#866857 hgt:168cm eyr:2022
-
-eyr:2022 pid:245416405
-iyr:2019 hgt:173cm hcl:#c0946f
-ecl:brn
-byr:1965
-
-byr:1980 hgt:162cm ecl:brn pid:239318191
-hcl:#fffffd
-cid:58 eyr:2025 iyr:2020
-
-pid:892646915
-iyr:2012 hcl:#733820 byr:1991 eyr:2021
-hgt:157cm ecl:oth
-
-pid:310597466 eyr:2025
-hcl:#cfa07d byr:1944 iyr:2018 ecl:oth
-hgt:183cm
-
-iyr:2010 hgt:187cm ecl:oth
-pid:975763328
-hcl:#866857 eyr:2023 cid:283 byr:1997
-
-iyr:2020 cid:225 hcl:#efcc98 pid:424680047 ecl:blu
-hgt:154cm
-byr:1968 eyr:2027
-
-ecl:oth eyr:2020 hgt:183cm hcl:#623a2f
-pid:771851807
-byr:1990
-iyr:2017
-
-hcl:#efcc98 ecl:blu byr:1991 hgt:191cm pid:266021118
-cid:124
-eyr:2025
-
-byr:1993
-ecl:hzl eyr:2020
-hgt:163cm
-iyr:2015 pid:831538073 hcl:#18171d
-
-hgt:74in hcl:#420afb eyr:2028
-ecl:grn pid:264469103
-byr:1993
-
-eyr:2020
-cid:79
-byr:1972
-pid:084953331 hcl:#a97842 ecl:brn iyr:2010
-hgt:170cm
-
-iyr:2014 ecl:gry pid:094812116 eyr:2026 hgt:190cm byr:1965 hcl:#944667
-
-hcl:#fffffd byr:1953 iyr:2014 ecl:hzl hgt:164cm
-cid:123 eyr:2023 pid:546394433
-
-iyr:2012 hgt:155cm byr:1998 pid:#2c9be6 eyr:2023 hcl:#ceb3a1 ecl:gry
-
-eyr:2029 ecl:gry pid:752489331 iyr:2015 hgt:167cm hcl:#18171d cid:70 byr:2002
-
-byr:1938
-ecl:gry
-pid:764937909 iyr:2014
-hcl:#7d3b0c
-eyr:2022 cid:145 hgt:184cm
-
-cid:340
-byr:1924 hgt:169cm eyr:2026
-iyr:2013 ecl:amb
-pid:499844992 hcl:#18171d
-
-pid:838417672 hgt:175cm
-ecl:grt iyr:2017 eyr:2025 hcl:17aa1a
-
-eyr:2020
-byr:1925 hcl:#341e13
-ecl:brn cid:342 pid:047426814 hgt:156cm iyr:2012
-
-iyr:2011 hcl:#341e13 byr:1959
-ecl:amb pid:969679865
-
-byr:1978 cid:320 hgt:180cm hcl:#435ceb pid:363518544 eyr:2023 iyr:2016 ecl:blu
-
-iyr:2010 eyr:2028
-pid:183cm byr:1948
-ecl:oth cid:133
-hcl:#8d3298 hgt:190cm
-
-hcl:#6b5442 byr:1929 iyr:2019 pid:207713865 eyr:2029
-hgt:166cm ecl:gry
-
-ecl:blu iyr:2019
-byr:1985 eyr:2030 hcl:#866857 hgt:155cm pid:659180287
-
-ecl:hzl
-eyr:2020 iyr:2016 pid:440624039
-cid:147
-hgt:61in byr:1976 hcl:#733820
-
-hcl:#341e13 pid:178082907 eyr:2023
-iyr:2015 byr:1956
-ecl:amb hgt:163cm
-
-eyr:2023
-iyr:2011 hcl:#cfa07d hgt:164cm
-pid:291621559 byr:1960 ecl:gry
-
-hcl:#efcc98 byr:1976
-iyr:2017 pid:394566091 cid:248
-hgt:176cm ecl:hzl eyr:2026
-
-iyr:2013 eyr:2029 hgt:152cm ecl:gry byr:1984 hcl:#623a2f pid:511780941
-
-pid:953716819 iyr:2010 hgt:156cm ecl:amb
-byr:1947
-hcl:#18171d eyr:2025
-
-eyr:2025 ecl:amb
-iyr:2016
-hcl:#cfa07d byr:1925 pid:322787273 hgt:168cm
-
-hgt:59in iyr:2012
-pid:916978929 byr:1959
-hcl:#c0946f eyr:2021
-ecl:brn
-
-byr:2018 eyr:1929 hgt:187in
-hcl:z
-iyr:2003 pid:0377361331 ecl:utc
-
-byr:1949 hcl:#fffffd pid:071791776 eyr:2030 iyr:2015 hgt:71in ecl:hzl
-
-hcl:#341e13
-hgt:154cm byr:1927 eyr:2023 ecl:blu iyr:2017
-pid:639867283
-
-hcl:z pid:315276249 byr:2026
-hgt:151cm
-iyr:2028 eyr:2020
-ecl:hzl
-
-hcl:#341e13 eyr:2027 byr:1981 cid:342 pid:999898177 hgt:187cm
-ecl:blu iyr:2011
-
-byr:2009
-hgt:73cm iyr:1921 hcl:z
-pid:181cm
-ecl:xry
-
-ecl:hzl
-byr:1925
-pid:034183103 hcl:#341e13 hgt:158cm eyr:2029 iyr:2010
-
-byr:1976
-iyr:2011 hgt:177cm pid:833479839 hcl:#dcab9d ecl:blu eyr:2020
-
-cid:230 hcl:#7d3b0c byr:1954
-iyr:2014 eyr:2026 pid:122150889
-ecl:brn hgt:182cm
-
-hcl:#a97842
-ecl:brn hgt:187cm
-eyr:2028
-pid:427631634 iyr:2002 byr:2004
-
-pid:912516995 ecl:hzl iyr:2017 hcl:#ceb3a1 byr:1929 eyr:2028
-hgt:155cm
-
-pid:019809181
-cid:128 iyr:2013 hcl:#f5b9f7 byr:1931
-hgt:161cm
-ecl:amb
-
-hgt:64in byr:1924
-iyr:2016 eyr:2029 ecl:hzl pid:474940085 hcl:#c0946f
-
-pid:172419213
-ecl:grn
-hgt:193cm iyr:2010 byr:1973 hcl:#6b5442
-eyr:2027
-
-ecl:#7b5cfd iyr:2019
-byr:2016
-eyr:2040 hgt:191in
-cid:187 hcl:z pid:#c61084
-
-eyr:2032 iyr:2014 pid:430247344 byr:1967
-hcl:#ceb3a1
-cid:241
-ecl:brn hgt:178in
-
-hcl:#623a2f iyr:2017 cid:235
-eyr:2020 byr:1978 ecl:blu hgt:175cm
-
-iyr:2013 ecl:amb hgt:174cm hcl:#866857 pid:285533942 byr:1954
-
-hgt:152cm ecl:blu pid:952587262 eyr:2024
-iyr:2019 cid:268 hcl:#602927 byr:1947
-
-hgt:176in cid:245 byr:2011 iyr:2018
-eyr:1987
-hcl:z
-pid:346518170
-ecl:utc
-
-hgt:180cm
-iyr:2015 ecl:brn eyr:2027 pid:807494368 cid:324 byr:1980
-
-byr:1936 hcl:#866857 ecl:blu
-eyr:2021 hgt:187cm
-iyr:2016 pid:244556968
-
-byr:1950 cid:125
-iyr:2020 hgt:168cm hcl:#c0946f eyr:2030 pid:758313758 ecl:blu
-
-eyr:2021
-pid:618915663 hcl:#cfa07d iyr:2018 byr:2002
-hgt:157cm ecl:blu
-
-byr:1967
-ecl:brn hcl:#c0946f pid:200495802 eyr:2021 iyr:2020
-cid:335
-hgt:181cm
-
-byr:1996
-ecl:brn iyr:2015
-eyr:2030
-hcl:#fffffd cid:207
-pid:022460311 hgt:158cm
-
-eyr:2022 hgt:59cm iyr:2023
-byr:1974 pid:354098699 hcl:b244f7
-ecl:#219505
-
-hcl:#866857 eyr:2025
-pid:370874666
-byr:1947
-cid:162 ecl:oth hgt:186cm iyr:2011
-
-ecl:hzl eyr:2029
-byr:1981
-iyr:2012 pid:433430792 cid:252
-hgt:171cm
-
-pid:512473844 hgt:186cm iyr:2012 eyr:2028 byr:1949 ecl:hzl hcl:#18171d
-
-hgt:60cm iyr:1934
-ecl:#4a4017 pid:3067366202 hcl:1161df
-eyr:1938 byr:2008
-
-pid:119509757 hcl:#cfa07d eyr:2022 hgt:174cm byr:1983
-iyr:2015
-ecl:blu
-
-byr:1955 eyr:2023
-cid:114
-hcl:f1aa8a pid:609049659 ecl:grn hgt:177cm
-iyr:2015
-
-eyr:2027 cid:284
-pid:654627982 byr:1964 iyr:2018 hgt:168cm
-hcl:#fffffd ecl:oth
-
-iyr:1988
-hgt:191cm hcl:b87a62 byr:1990 ecl:xry
-pid:996624367 eyr:1960
-
-pid:641466821 eyr:2028 hcl:#7d3b0c
-iyr:2010 hgt:175cm ecl:gry
-
-hcl:#b6652a
-ecl:oth
-byr:1926 eyr:2030 iyr:2019 hgt:183cm
-pid:057196056
-
-iyr:2017
-eyr:2022 pid:936841429
-ecl:blu hcl:#6b5442 cid:179 byr:1927 hgt:161cm
-
-eyr:2021
-cid:289 hgt:174cm iyr:2013
-ecl:grn pid:329574701 byr:1970
-
-eyr:2021 byr:1939 ecl:gry pid:933505139 iyr:2014 hgt:173cm hcl:#7d3b0c
-
-cid:116 hcl:045bff eyr:2030 iyr:1920
-ecl:brn
-byr:2030
-pid:#38f7f3
-hgt:155in
-
-eyr:2028
-pid:225829241 byr:1928 hcl:#cfa07d iyr:2019
-ecl:oth
-hgt:166cm
-
-cid:80 byr:1936
-iyr:2017
-hgt:94 hcl:#2e7503 ecl:oth eyr:2030
-pid:597284996
-
-ecl:oth
-iyr:2019 hgt:76in
-byr:1956 pid:821874039
-
-eyr:2026 hgt:168cm
-pid:019015588
-iyr:2010
-ecl:amb byr:2009 hcl:#623a2f cid:159
-
-iyr:1980 hgt:167in
-pid:380644909 eyr:1966 ecl:blu byr:2004 hcl:z
-
-eyr:2020 iyr:2013
-hcl:#08ad66 pid:540886868
-ecl:oth byr:1980 hgt:158cm
-
-eyr:2026 hgt:186cm byr:1995
-cid:275
-hcl:z iyr:1958 ecl:blu
-
-eyr:2026 iyr:2012
-hgt:61in byr:1936 pid:390833536 cid:298 ecl:grn hcl:#623a2f
-
-pid:393878498 eyr:2023 ecl:gry byr:1943 iyr:2010 hcl:#888785 hgt:158cm
-
-hgt:191cm cid:197 iyr:2014 byr:1945
-hcl:#fffffd
-eyr:2020
-pid:183948344 ecl:amb
-
-ecl:gmt hgt:88
-cid:260 iyr:2024 byr:2022 eyr:2031 hcl:z pid:#532c6e
-
-hcl:#a97842
-hgt:160cm eyr:2024 ecl:blu iyr:2015 byr:1970
-
-byr:1964 hgt:178cm
-eyr:2025
-pid:813643223 ecl:brn iyr:2014
-hcl:#ceb3a1
-
-byr:1965 eyr:2024 iyr:2018
-hgt:165cm hcl:#18171d ecl:grn pid:475669993
-
-hgt:116
-iyr:2024 eyr:1974 hcl:504345 byr:2010 cid:206 pid:166cm ecl:zzz
-
-iyr:2014 eyr:2020 pid:096460673 byr:1948
-hgt:153cm
-ecl:blu hcl:#341e13
-
-hcl:#ceb3a1
-iyr:2017 hgt:67cm
-pid:178cm byr:2028 ecl:brn
-cid:293
-
-hgt:157cm
-hcl:#602927 byr:1941
-iyr:2012 pid:611003211 eyr:2029
-
-iyr:2019 byr:2000 pid:083917767 eyr:2024 hgt:172cm
-cid:248 hcl:#7e4d15
-
-byr:1946
-hgt:160cm iyr:2020 hcl:#559278 pid:989139577
-ecl:amb eyr:2020
-
-pid:165cm byr:1927 cid:178 hcl:#733820 iyr:2017 hgt:156in
-eyr:2029 ecl:brn
-
-hcl:#18171d hgt:163cm eyr:2022 byr:1962 pid:639124940 cid:258 ecl:hzl
-iyr:2015
-
-cid:123 pid:4542006033
-eyr:1987 byr:2010 iyr:2029 ecl:amb
-hgt:191cm hcl:#18171d
-
-hcl:z
-byr:1928 iyr:1965
-eyr:2022 hgt:75 ecl:oth pid:400765046
-
-hcl:#c0946f hgt:62in
-ecl:blu byr:1978 iyr:1923
-cid:260 eyr:2021 pid:404628742
-
-pid:#bf1611 ecl:grn
-iyr:2018 cid:146 byr:1948
-eyr:2025 hcl:#fffffd hgt:87
-
-pid:767547618
-iyr:2018 hcl:#b6652a eyr:2029 hgt:165cm ecl:hzl byr:1937
-
-ecl:blu iyr:2019 pid:960083875 eyr:2027 hgt:71in hcl:#c0946f
-byr:1921
-
-iyr:2011
-pid:9562042482
-hcl:z hgt:59cm
-eyr:1994 cid:258 ecl:#6c1bcc byr:2025
-
-eyr:2028 pid:494999718 byr:1928 hgt:176cm
-iyr:2015 ecl:oth hcl:#733820
-
-cid:78 eyr:2020 hgt:160cm byr:1947 ecl:blu
-hcl:#b6652a iyr:2016 pid:069457741
-
-hcl:#6b5442 iyr:2010
-byr:1971
-eyr:2028 hgt:169cm ecl:brn pid:528961949
-
-eyr:2028
-hcl:#7d3b0c
-byr:1952
-ecl:hzl
-cid:317 iyr:2016
-pid:832169844
-
-hcl:#c0946f
-ecl:brn
-iyr:2017 eyr:2028
-pid:161390075 byr:1993 cid:50
-hgt:171cm
-
-ecl:#ae12d3 hgt:74cm cid:239 hcl:z pid:345439730 iyr:1924 byr:2029 eyr:2031
diff --git a/cache/0f85e5f0/2020/day/5/input b/cache/0f85e5f0/2020/day/5/input
deleted file mode 100644
index 355ce44..0000000
--- a/cache/0f85e5f0/2020/day/5/input
+++ /dev/null
@@ -1,876 +0,0 @@
-BFBBBBFRLL
-FBFBFFBRLL
-BBFBBFBLRL
-BFFFBBFLLR
-BFFFFBBLRL
-BFBBFBFRRL
-FBBFBFBRRR
-FFBFBFFRLR
-BBBFFBFLLL
-BFFBBBBRRL
-BBFBFFFRRR
-FBFFFFFRLL
-BFBFBBFLRL
-BFBFBFBLRL
-BFFFBFFLLL
-BBFBBBFRRL
-FBFFBBFRRR
-FFBBBFFRRL
-BFBBBBBLLL
-FBFBFFBLLL
-BBFBFBBLRR
-BFFFFFBRLL
-BFBFBBFRLR
-BBFFBBFRRL
-FBBBFBBRLL
-BFFBBFBRRR
-BFBFBBFLLL
-BBFFBBBRLR
-FBFFFFBRRL
-BFFFBFBRRL
-FFFBBBBLRR
-FFBFFBBRRR
-FFFBFBFRLL
-FFFBBFFRRL
-BFFBFBBRRL
-FBBBFBBLRR
-BBBFFBBRRR
-FBFFFFBLLR
-FFFBFFFLLL
-BFFFBBBRRL
-BFFFFBFLRL
-FFFBFBFRLR
-BFFBBBFLRL
-BBBFBFFLRL
-FBBFBBBLRL
-FBFFBBBRLL
-BFBFFFBLRR
-FBBFFFBLLL
-BFBFBFFRRR
-BBFBFBBRRR
-BFBBBFBRRR
-FBFBFFFLLR
-FBBFFBFLRR
-FBFBBBBLRL
-BBFFBFBRLL
-FBFBFBFRRR
-FFBBBFBRLL
-BBBFFBBRLL
-BBFBBFBRRR
-FFBBFBFLLR
-FBFBFBFRRL
-BFFBFBBLLR
-FFBBFFFLLR
-BBFFFFFLLL
-BBFBBBBLLR
-FBBBBFBRLL
-BFBBBBBLLR
-FBBBBFBRRR
-BFFBFBFLRL
-FFBFBFBLRR
-FFBBBFFRLR
-BBFBBBBRRR
-FFBBBBFLLL
-BFBFFBBRLR
-BFFFBFBLLL
-BBFFBFBRRL
-FFBFFBBLRR
-FFFBBBBLLR
-BFBBBBFRRL
-BFBFBBFLLR
-BBFFFBFRRR
-BFFBBFFLRL
-FFBFBBBRRL
-BFFBFFFRRR
-BBFBFBBRRL
-BFBBBFFRLR
-FFBFFBFLLL
-FFFBFFBRRR
-FBFFBBFRLL
-BBBFBFFLLR
-FFBBFBFLRR
-FBFBBBFRLL
-FBBFFFBLLR
-FFBFBFFRLL
-BBFBFFFRRL
-BFBFBFFLRL
-BFBBFBFRLL
-BFFFBBBRLL
-BFFFFFBRRL
-FFFFBBBLLL
-BBFBBBFRRR
-FBBBFBFLRL
-BBBFFBFRRL
-FBBFBBBRLR
-FBBFFBFLLL
-BFBFBBBLLL
-FBFFFFBLLL
-FFBFFBFRLR
-FBFFFBFLRL
-FFBBFFBRRR
-FBBBFBFRLL
-BFFBFFBLLR
-BBFFBBFRLL
-FFBFBBFLLR
-BFBBFBFRRR
-FFBBBFBLLR
-BBFBFFFRLR
-BFBBFBFLLL
-BBBFFFFRRR
-FBFBFBBRLR
-BFFFBBBLRL
-FBBBFFBLRL
-BFBFBFFLLL
-FBFBFFFRLL
-FFBBBBBLRL
-FFBBBBBRLL
-FBFBFBFRLL
-FBBFFBFRRL
-BFFBBBBRRR
-BBFFFBFRLR
-BBFBBFBLLR
-FFFBFFBRLL
-BBFFBFFRLR
-FBBBFFBRLL
-BBFFFBBRRR
-FBBFBBFRRL
-BBFBBFFLRR
-FFFBFFBLRL
-BFFBBFBLRR
-FFBBBBFLRR
-BBFFFBBRLL
-FFFBFFBLLL
-BFFFFBBLLR
-FFBBFBBLRL
-FBBFBFBLRR
-FFFFBBBLRL
-BFBFBFBRLL
-FFBFFBBRLL
-FFFBFBFLLL
-FBBFFFFRRR
-FFFBFBBLLR
-BBFFBFFRRL
-FFBFBBFRRL
-BFFBFFFLLL
-BFFBFFBRLL
-BBFFBFBRRR
-BFFBBBBLRL
-FBFFFBBLLR
-BBFFFFFLRR
-FBBBFBFLLR
-FFBFBBFLLL
-BFFBFFBRRR
-BBFFBBBRRR
-FBFFFBBLRL
-FBFBFBBLLR
-BBFFFBBLLL
-FBBFBFFRRR
-BFFFBBBRRR
-FFFFBBBLLR
-FFBBBFBRLR
-FBFFBFFRLR
-FBFBFFFLRL
-BBFBFFFLLR
-FFBFFFBLRL
-FBFFFFFRRL
-FBBBBBBLRR
-FBFBBBBRRR
-FBBBFFBLLL
-BBFBFFFLLL
-BFFFBBFRLL
-FFBBFFFRRL
-FBFFFFFLRR
-FFFBFBFRRL
-BFBBFBFRLR
-BFBBFFBRLR
-BBFFBFBLRR
-BFBBBFFLRL
-BFFFFBBRLR
-BBFFBBBLLL
-BFBFBFBRRL
-FBFFBFBLRR
-FFFBFBFRRR
-BBFFBFFLRR
-FBBFBFBRLL
-BFFFFBFLLL
-FFBBFBBLLL
-FFBFFFBRRR
-BFFBFBFRLL
-FBFFBBFRRL
-BFFBFFFLRL
-FBFBBFBLLL
-BFFBFBBLLL
-FBFFBFBRRR
-FFBBFFFLLL
-BBFBBBBLRR
-FFBFFFBLLL
-FBBBFBFLRR
-BFFBBBBRLL
-BFBFBBBLRL
-BBFBBFBLRR
-FBBBFFFLRL
-BBFBFBFLLR
-FFFBFFBLLR
-FFFBFBFLRL
-FFBFBBFRLL
-FBBBBBBLRL
-FFBFFBBLLL
-FBBBBBFLRR
-FBBBFBBRRR
-BBFBFFBLLR
-BFBFFBBLRL
-BFBFFFFLRL
-BFFFFFBLLL
-FBFFBBBRRL
-FFBBBFBRRR
-BFFFBFFLLR
-FBBBBFBLLL
-FBBFFBBRRL
-BBFFFBBLRR
-FBFBFBBLRL
-FBBBFBBLLL
-FBBFBFFLLL
-BBFBBFBRRL
-FBFBFFFLRR
-BBBFBFFLLL
-BBFBBFFLLR
-BBFBFFBRRL
-FFBFFFFLLL
-BBFFFBBLRL
-FBBFBFBLLR
-FBFBFFBLRR
-BBFFFFBRRR
-BFBBBFFRLL
-BBFBFBFLRR
-FFBFFBBLRL
-FFFBBFFRRR
-FBFBBFBRLL
-FBBFFBBRRR
-FBFFBFBLLL
-FFBFFBBLLR
-FBBFBFFLRL
-BFFFFBBLRR
-FBBFBFBRLR
-BFFFFBFLRR
-FFFBBBBLRL
-FBFFBFFLLL
-BFBBBBFLRL
-BFFFBBFLRR
-BFFFBFFRLR
-BBFFFFFLLR
-FFBBBBFRRR
-BFBFFBFLRR
-FFBFFFBLRR
-BBFBBFFRRL
-FBFBFBBLRR
-BBFFBBFLRL
-FBFBBFFLLL
-BFBFBFFRLL
-BBFBBBFRLL
-FFBFBFBLLR
-FBFBFBFLLR
-BFBBFFBRRR
-FFBBBFBLRR
-FBFBFFFLLL
-BFFFFFFRRL
-BFBFFFBRLL
-FBFFBBBLLR
-FFFFBBBRLR
-BFFBBBBLLR
-FFBFFBFRRR
-FBFBBBBRRL
-BFBFBFBLRR
-FBFBBFFRLL
-BFFBFBFLLL
-FBBBFFBRRL
-BFBFFBBLLL
-BFBBFBFLRL
-FBFBFFBRLR
-BFBFBFFLRR
-FFBBFFBLRL
-FFFBBBFRLL
-BBFFBBFLRR
-FBFBBFFRRL
-BFFBFBBLRL
-FBBBFBFRRL
-FFBFFBFLLR
-FBFFFBBRLR
-BBFFBBBLRR
-BBFBFBFRLL
-FBFBBBBLLL
-BFFFFFFRLL
-FFBFFFBRLR
-BFFFFBFRRR
-BFBFFBBLLR
-BFFBBBFRRR
-BFBFFFBRRL
-FBBBFFFRRR
-BBFBBBBRRL
-FBBFFFFRRL
-FFBFFFFRLR
-BFFFFFFLLL
-FFBFBBFLRL
-FFFBBFBRLL
-FFFBFBBRRL
-FBBBBFBLLR
-FBFFFBFRRL
-BFFBBBBLRR
-FBFFFFFLRL
-FFFBBFFLRR
-BBFFFFFRLL
-FBBBFFFLLR
-BFFBBFBLLR
-BBFBBBFLRL
-FBFBFFBRRL
-BBFFBFBRLR
-FBFFBFBRRL
-FFBFFBBRLR
-FBBBBBFRRR
-FFBFFFFRRR
-BFBBBFBLLR
-FBFBFBFRLR
-BFBBBFBRLL
-FBFBBFFLRR
-BFBFBFBRLR
-FBFBBBBLRR
-BFBBFFFLLR
-BFBFBBFRRL
-FBFBBFBLLR
-FFFFBBBRRR
-BFBBBFBLLL
-BFBFFFFRRR
-FBBFFFBRRL
-FFBFBFBRRR
-FFBBFBBRLL
-BFFBFFFRRL
-BBFFFFFRLR
-BFFFBBBLRR
-FFBBFBBRRR
-FFFBBFBLLR
-FFBFBFFLRR
-BBBFFFFLRL
-FFFBFFBRLR
-FFFBFFFLRR
-FFBFBFFLLR
-FBBBFBBRLR
-FBBFBBBRLL
-BBBFFBFRLR
-FBBBBFBRLR
-BFBBBBFLRR
-FBBBFBFRLR
-FFBFBFFRRL
-FBBBFFFLRR
-BFFBBFBRLL
-FBFFFBBRLL
-FBFBBBBRLL
-BBBFFBFRRR
-BFBBFFBLRL
-BBBFFFBRLR
-BBFBBFBRLR
-BBFBBBBLRL
-BBFFFBBRLR
-BFFBBFBLLL
-BFFBFBFRLR
-FFBBBBBLLL
-BFFFFFBLRL
-BFBBFFBLLL
-BFFBBFFLRR
-BFFBBFFRRL
-BFFFFFFLLR
-FBBFBBFRLR
-FBBBBFFRLR
-BBFFFBFRLL
-BBBFFFBLLR
-FFFBBBFRRR
-BFBBFFBRRL
-FBBBBFFRLL
-BFFFFFFRLR
-FBBFBBFLRR
-BFBFFFFLLL
-BFBFFBBRLL
-BFBBBFBRLR
-BBFFFFFLRL
-BFBBFFBRLL
-BFBFBFBRRR
-BBBFFBBLLL
-BBFFFBFLRL
-FBFFFBBRRL
-FFBFBBBLRR
-BFFFBBBRLR
-BBFBFBBLLL
-FFBFBFFRRR
-BFFFFFFRRR
-FBBBFFBRRR
-BFBBBBBLRR
-FBBBFFFRLR
-BBFBBBFRLR
-BFFFFFBLLR
-FBBBBBBLLR
-FFBFBBBRRR
-FBFFBBBRLR
-FBFFBBFLLL
-BFBBFBFLRR
-FFFBBFBLRL
-BBFFFBFLLR
-BBFBFBBRLL
-BBFBBFBLLL
-FFBBBBFRLR
-BBFFFFFRRR
-FBBBBBBRRL
-BFFBBFFRLL
-FBFBFFBLLR
-FFBBBBFLLR
-FFBFBBBRLL
-BFBBFFFLRR
-BFFFBBBLLR
-BFFFBBFLRL
-BFFBFBFRRL
-FFBFBFBRRL
-BBBFFFFLRR
-FBBFFBBRLR
-FFBBFBFLRL
-FFFBBBFLLL
-FFBFBBFRLR
-BBBFFFFRLL
-BFBBBFBRRL
-FBBBBFBLRL
-FBBFFBFRRR
-BFBBBBBRLL
-BFFBBBFLLL
-BFFBBBFRRL
-FBFBBBFLRR
-BBFBFFBRRR
-FBFBBFBRLR
-BFBFFBFRLL
-FBFBFBBRLL
-BFBBFBBRRR
-FFBBFBBLLR
-FBFBFBFLLL
-FBFBBBFLLR
-BFBBBFFRRL
-BFBFBBFLRR
-FBFBFBFLRL
-BFBBFBBLRL
-BFFFFBBLLL
-BFFFFBBRRL
-BFBFBFFRLR
-BBFFBBBRLL
-FBFBBFBLRL
-FBFBBFFLLR
-BFBBFBBRRL
-BFFFFFBRLR
-BBFFFFBLLL
-FFFBFBBRLR
-FFBBFFFLRL
-BFFBBFBRRL
-FBFBFFBRRR
-BBFFBFFRRR
-FBBBFFFRRL
-BFFBBFBRLR
-BBBFFBFLRR
-BBBFFBBRRL
-FFFBFFFLRL
-BBFFFFFRRL
-BBFFBBFLLR
-FBBFBFFRLL
-BBFFFFBLRL
-FFBBBFFRLL
-BBBFFFFRRL
-FFBBFBFRRR
-BFFFFBBRRR
-FFFBBBBRLL
-BFBBFFBLLR
-BBBFFFFLLR
-BBFFBFFLLL
-FFBFBFBLLL
-FFBFFFFLRL
-FBBFBBBRRL
-FFFFBBFRRR
-FBFBFBFLRR
-FFBFFFFLRR
-BFBBBFFLLR
-FBFBFFFRRR
-BFBBBBFLLL
-BFFBFFBLLL
-FBFBFBBLLL
-FFFBBBFRLR
-BFFFBFFRRL
-BFBBFBBLLL
-FFFBFFFRRR
-FBFBBBBLLR
-FFBBFFBRLR
-FBBBFBFRRR
-FFBBFFFRLL
-BBFBFFFRLL
-BBBFFFBRRR
-BBFBBBBRLR
-FBFBFFFRLR
-FFFFBBBRRL
-FFBFFFFRLL
-BFFFBFBRRR
-FFBBBFFLLR
-BFFBFFFLRR
-FFBFBFBLRL
-FBFFBFFRLL
-BFBFBBFRRR
-FBBFBBBLLL
-FBBBFFBRLR
-FBFFFBFLRR
-BFBBFBFLLR
-FFBBBFBLRL
-FFBBFBFRRL
-FBBFBBBLRR
-FFBBFFBLLL
-FFFBFBBLRR
-BFBFFFFLLR
-BBFFBBFRLR
-BFBFFFBRRR
-FBFFFFBRLL
-FBBBFFFRLL
-BBFBBFBRLL
-FFFFBBBLRR
-BBFBFFFLRL
-FBBBBBFRRL
-BFBBBBBRRR
-BFFBFFBLRR
-FBBFBBFLRL
-BFFBBFFRRR
-FBBBFFFLLL
-FFFBBBBLLL
-BBFFBBBLLR
-BFBBBFFRRR
-BFBFFFBLRL
-FBFFBFBLRL
-FBFFFFFLLL
-BBBFFBBRLR
-FBBBBFFLRR
-BFBBBFBLRL
-FFFBBBBRLR
-BFFFBFBLRR
-FBFFFBFLLR
-BBBFFFBLRL
-BFBFFFFRRL
-BFFFFBBRLL
-BFFFBFFLRR
-FBBFFBBLRL
-FFBBBBBRRL
-FBBFFFFLRL
-FFBBFBFRLL
-FFBFBBBLLL
-FFBFFBFLRR
-FBBFFBFRLR
-FFBBBFBLLL
-FBBFFBBRLL
-BFFBFBBRRR
-BFFFBFFLRL
-FBFFFBFRLR
-FBFBBFFRRR
-FBBFBBFLLR
-FFBBBBBLLR
-BBFBFFBRLL
-BFBBBBBLRL
-BBFBFFBLRR
-BFBFBFFLLR
-BFFBFFFRLL
-FBFBBFBRRL
-BBBFFBFLRL
-BFBFFFBLLL
-BFBFBBBRRR
-FFFBBFBLLL
-FFFBFFFLLR
-FBFBBBFRLR
-FBBBBBFLRL
-BFFFBFFRLL
-BFBFFBBLRR
-BFFFBBFLLL
-FBFFBFBRLL
-FBBBBBFLLR
-BFFBBFFRLR
-FFFBBBFLRL
-FFFBBFBRLR
-FFBBFBBLRR
-FFFFBBBRLL
-FFFBBFBLRR
-FFBBBFFLRL
-FBFFBBBLLL
-FBFBBFBRRR
-BFBFBBBLLR
-BBFFFFBLLR
-FFBFFBFRRL
-BFBFFFFRLR
-BBFBFBFRRL
-FBBBFBBLRL
-BBBFFFBRRL
-BFFBFBFLRR
-BBFFBFFLRL
-FBBFFBFLLR
-FBBFFBFLRL
-BBFFBFBLRL
-BFFBFFFRLR
-FFFBFFFRRL
-FBBFBFFRRL
-FBBBFFBLRR
-FFBBFFFRRR
-BBFFFBFLRR
-FBFFBBFRLR
-FBBBFBBRRL
-FBBFFFBLRR
-BBFBBBFLLR
-BBFBBFFRLL
-BBFBFBBRLR
-BFFFFBFRRL
-BFBFBBBRRL
-BFBFFBFLRL
-FFBFBBFLRR
-BBFBFFFLRR
-BBFBFBFLLL
-FBFBBBFRRL
-BBFFFFBLRR
-BBFFBFFRLL
-BBFFFFBRLR
-FBFFFBFRLL
-FBFBBBBRLR
-BBFFBBBLRL
-BBFBBBBRLL
-FBFFFFBLRL
-BFBFBBFRLL
-FBFFBFFLLR
-FFFBBFFLLL
-BFBBFFFRLL
-BFFFFBFRLR
-BFBBBBFRRR
-FBBFFBBLLL
-FBFFBFBRLR
-BFFBFBFRRR
-FBFFFFBLRR
-BFBBBBFLLR
-BFFFBFBLRL
-BBFBFFBLRL
-FBBBFFBLLR
-FFBFBBBLLR
-BBBFFBBLRL
-BBFFBFFLLR
-FFBBFFFLRR
-FBFBFBBRRR
-BFFFFFBRRR
-BFBFBFBLLL
-BFFFBBFRRL
-FBBBBFFLRL
-FBBFFFBLRL
-BFBFFFFLRR
-BFBBBFFLRR
-FBBFFFFLLR
-FBBFBBFRLL
-FFBFBFBRLL
-FBFFFBBLRR
-BBFFBBFRRR
-BFFBBBFRLR
-BBFBFFBLLL
-FFBBFBBRLR
-FFFBFBFLLR
-BFBBFFBLRR
-FFBFFBBRRL
-BBBFFBBLRR
-FFBBFFBLLR
-BFFBBBFRLL
-FBFBFFFRRL
-FBBBBFBRRL
-BFBBBBFRLR
-BFFBBFFLLL
-FFBFBBFRRR
-FBFBFFBLRL
-FFFBFFBLRR
-BFFBFFFLLR
-FBFFBBBRRR
-FBFFBFBLLR
-FBFFFBBLLL
-BBFBFBBLLR
-FBFBBBFRRR
-FBFBBFFLRL
-FBFFFBFLLL
-FFFBFFBRRL
-FFFBBBBRRR
-BBFFBBBRRL
-FFFBBFBRRR
-FFBFBFFLRL
-FFBBBBBLRR
-FBFBBBFLLL
-FFBBFFBRLL
-BFFBFFBRRL
-BFBBBBBRLR
-BBFBBBFLLL
-FFBFFFBLLR
-FFBFFBFRLL
-FFFBBBFLLR
-FFBFBBBRLR
-BFBFBBBRLL
-BFFBBBBRLR
-FBBBBFFRRL
-FFFBBFFRLR
-BBFFBFBLLL
-BBBFFBFLLR
-FFBBBBFRLL
-BBFFBFBLLR
-BFBFBBBRLR
-FFBFFFFRRL
-BFBFFFFRLL
-BBBFFFFLLL
-BFFBBFFLLR
-FBBFBFFLLR
-FFBFBFBRLR
-FBBBBBFRLL
-FBBFFFBRLR
-BBFFFBBLLR
-BFFBFBBRLR
-FFFBFBBRLL
-BFBBFFFRRL
-BBFBFBFRRR
-FFFBFBFLRR
-BFBBFFFLLL
-BFFFFBFLLR
-BBBFFFBLRR
-BFBFBBBLRR
-BFFFBBFRRR
-BFBFFBBRRR
-BBBFFFBRLL
-FBFFFFFRLR
-BFFBFFBRLR
-BBFBBBFLRR
-BBBFFFBLLL
-FFFBFFFRLL
-FBBFBFBLLL
-BFBBFBBRLL
-BFBFFBFRRL
-FBFBFBBRRL
-BFFBBBBLLL
-FFFBFBBRRR
-FFFBBFBRRL
-FBBBBBBRLR
-FFBBBBBRLR
-BFBFBFFRRL
-FFBBFFBLRR
-BFFFBFBRLL
-FBBFBFBLRL
-FFBFFBFLRL
-FBFFFFBRRR
-FFBBFBFRLR
-FBFFBBBLRL
-FBFFBBFLLR
-FFBBFFBRRL
-BFFFFFBLRR
-BFBFFFBRLR
-FFBBBBFLRL
-BFBFBFBLLR
-FFFBBBFRRL
-FBBFBBBLLR
-FBFFFFFLLR
-FBBBBBFRLR
-BFBFFBFRLR
-BFFBBBFLRR
-FBFFBFFLRR
-BBFBFBFLRL
-FFBFBBBLRL
-BFBBFFFLRL
-BFFFBFBRLR
-FBBFFFFLRR
-FBBFFFFRLR
-FBBFFBBLLR
-FBBBBBBRLL
-BFBFFBBRRL
-BBFFFBFRRL
-BFFBFBBLRR
-FBFFBBFLRR
-BBFBBFFRRR
-BBFBFBFRLR
-FBFBBFFRLR
-FFFBBBBRRL
-BBFFFFBRRL
-FFBFFFBRLL
-BFFFBFBLLR
-BFFBBFBLRL
-FBBFBBBRRR
-FBFFBFFRRL
-FBFFFFFRRR
-BFFFBBFRLR
-FFFBFFFRLR
-FFBBBFBRRL
-FBBFBFBRRL
-BFFBFBBRLL
-BBFFBBFLLL
-FFFBBFFLRL
-BFFBBBFLLR
-FBBFBFFLRR
-BBFBBFFRLR
-BFBFFBFLLR
-FBFFBBBLRR
-BFBBFBBLRR
-FFFBFBBLRL
-BBBFFBFRLL
-BBFFFBFLLL
-BFBFFBFRRR
-FFFBBBFLRR
-BBFFFBBRRL
-FFFFBBFRRL
-FBBFFFBRRR
-FBBBFBFLLL
-FBFBBFBLRR
-FBBBFBBLLR
-FBFBBBFLRL
-BBFFFFBRLL
-FBBBBBBRRR
-BFBBBFFLLL
-BBFBFBBLRL
-BFFFFBFRLL
-FBFFBFFRRR
-BBFBBBBLLL
-BBBFFBBLLR
-FBBBBFFRRR
-FBBFBBFRRR
-FBFFFBBRRR
-BBFBBFFLRL
-BBBFFFFRLR
-FBBBBFBLRR
-FFBBFBBRRL
-FFFBBFFLLR
-BFBBFFFRLR
-BFFFBBBLLL
-BFBBFFFRRR
-FFBFBFFLLL
-FBBFFFBRLL
-FFBBFBFLLL
-FBBFFBFRLL
-BFBFFBFLLL
-FBFFFFBRLR
-FFBBBFFRRR
-FBBFFBBLRR
-BFFBFBFLLR
-FBBBBBFLLL
-BFFBFFBLRL
-FFBBBBFRRL
-BFBBBFBLRR
-FBBBBFFLLL
-BBFBFFBRLR
-BFBBFBBRLR
-FBBBBFFLLR
-FBFFFBFRRR
-FBBBBBBLLL
-BBFBBFFLLL
-BFBBFBBLLR
-FBBFBFFRLR
-FBBFFFFRLL
-FBFFBBFLRL
-FFFBBFFRLL
-BFBFFFBLLR
-FFBBBFFLLL
-FBBFBBFLLL
-FFBBBBBRRR
-BFFFBFFRRR
-FBFFBFFLRL
-FBBFFFFLLL
-FFBFFFBRRL
-BFBBBBBRRL
-FFBBFFFRLR
-BFFFFFFLRL
-FFBBBFFLRR
-FFFBFBBLLL
-FFBFFFFLLR