added days 1-3
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 5 Dec 2020 21:46:25 +0000 (15:46 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 5 Dec 2020 21:46:25 +0000 (15:46 -0600)
day1.onyx [new file with mode: 0644]
day2.onyx [new file with mode: 0644]
day3.onyx [new file with mode: 0644]
input/day1.txt [new file with mode: 0644]
input/day2.txt [new file with mode: 0644]
input/day3.txt [new file with mode: 0644]
input/day4.txt [new file with mode: 0644]
input/day5.txt [new file with mode: 0644]

diff --git a/day1.onyx b/day1.onyx
new file mode 100644 (file)
index 0000000..e02d40c
--- /dev/null
+++ b/day1.onyx
@@ -0,0 +1,26 @@
+package main
+
+#include_file "core/std/wasi"
+
+use package core
+use package core_file
+
+main :: proc (args: [] cstring) {
+    contents := file_get_contents("input/day1.txt");
+    contents_orig := contents;
+    defer cfree(contents_orig.data);
+
+    nums: [..] u32;
+    array_init(^nums, 128);
+    defer array_free(^nums);
+
+    while num := 1; num > 0 {
+        // This sets num to be 0 if there is no number
+        string_read_u32(^contents, ^num); 
+        if num != 0 do array_push(^nums, num);
+    }
+
+    for i: nums do for j: nums do for k: nums {
+        if j + i + k == 2020 do printf("Answer: %i\n", i * j * k);
+    }
+}
diff --git a/day2.onyx b/day2.onyx
new file mode 100644 (file)
index 0000000..75e24ca
--- /dev/null
+++ b/day2.onyx
@@ -0,0 +1,42 @@
+package main
+
+#include_file "core/std/wasi"
+
+use package core
+use package core_file
+
+main :: proc (args: [] cstring) {
+    contents := file_get_contents("input/day2.txt");
+    contents_orig := contents;
+    defer cfree(contents_orig.data);
+
+    valid := 0;
+    lo : u32;
+    hi : u32;
+    ch : u8;
+    pw : string = "";
+
+    while true {
+        string_read_u32(^contents, ^lo);
+        if lo == 0 do break;
+        string_discard_chars(^contents);
+        string_read_u32(^contents, ^hi);
+        string_discard_chars(^contents);
+        string_read_char(^contents, ^ch);
+        string_discard_chars(^contents, 2);
+        string_read_line(^contents, ^pw);
+
+        // Part 1
+        // count := 0;
+        // for c: pw do if c == ch do count += 1;
+        // if count >= lo && count <= hi do valid += 1;
+
+        // Part 2
+        count := 0;
+        if pw[lo - 1] == ch do count += 1;
+        if pw[hi - 1] == ch do count += 1;
+        if count == 1 do valid += 1;
+    }
+
+    printf("Number valid: %i\n", valid);
+}
diff --git a/day3.onyx b/day3.onyx
new file mode 100644 (file)
index 0000000..db07849
--- /dev/null
+++ b/day3.onyx
@@ -0,0 +1,69 @@
+#include_file "core/std/wasi"
+
+use package core
+use package core_file
+
+Point :: struct {
+    x : i32;
+    y : i32;
+};
+
+LineInterp :: struct {
+    ox : i32;
+    oy : i32;
+    dx : i32;
+    dy : i32;
+}
+
+line_interp_at :: proc (use li: LineInterp, t: i32) -> Point {
+    return Point.{ ox + dx * t, oy + dy * t };
+}
+
+main :: proc (args: [] cstring) {
+    contents := file_get_contents("input/day3.txt");
+    contents_orig := contents;
+    defer cfree(contents_orig.data);
+
+    forest: [..] u8;
+    array_init(^forest, 1024);
+    defer array_free(^forest);
+
+    width := 0;
+    height := 0;
+    while true {
+        line: string = "";
+        string_read_line(^contents, ^line);
+        if line.count == 0 do break;
+
+        width = line.count;
+        height = height + 1;
+
+        for ch: line do array_push(^forest, ch);
+    }
+
+    lis : [5] LineInterp;
+    lis[0] = LineInterp.{ 0, 0, 1, 1 };
+    lis[1] = LineInterp.{ 0, 0, 3, 1 };
+    lis[2] = LineInterp.{ 0, 0, 5, 1 };
+    lis[3] = LineInterp.{ 0, 0, 7, 1 };
+    lis[4] = LineInterp.{ 0, 0, 1, 2 };
+
+    tree_prod: u64 = ~~1;
+
+    for li: lis {
+        tree_count := 0;
+        while i := 0; true {
+            p := line_interp_at(li, i); 
+            if p.y >= height || p.y < 0 do break; 
+            i += 1;
+
+            p.x %= width;
+
+            if forest[p.x + p.y * width] == #char "#" do tree_count += 1;
+        }
+
+        tree_prod *= ~~tree_count;
+    }
+
+    printf("Tree product: %l\n", tree_prod);
+}
diff --git a/input/day1.txt b/input/day1.txt
new file mode 100644 (file)
index 0000000..7662181
--- /dev/null
@@ -0,0 +1,200 @@
+1706
+1466
+1427
+1744
+1684
+1386
+2001
+1750
+1753
+1770
+1559
+1616
+1408
+1860
+1940
+2002
+1862
+1918
+1456
+1209
+1840
+1462
+1783
+1644
+1901
+1791
+1506
+2005
+1338
+1383
+1420
+1631
+1784
+1897
+1771
+1588
+1955
+1937
+1392
+1396
+1803
+1429
+1407
+1698
+1562
+1913
+1678
+1198
+1398
+1703
+1831
+1489
+1782
+1864
+1708
+1397
+1915
+1953
+1395
+1610
+1549
+1564
+1973
+1931
+2009
+1980
+1800
+1443
+1993
+1900
+1964
+1581
+1904
+1665
+1567
+1057
+1805
+1402
+1878
+1729
+1825
+1682
+1719
+1469
+1004
+1591
+1594
+811
+1523
+1424
+1756
+373
+1442
+1718
+1411
+1892
+1820
+1977
+1871
+1890
+1653
+1372
+1475
+1476
+1422
+2004
+1755
+1676
+639
+1425
+1853
+1712
+1525
+1514
+1455
+1658
+1963
+1579
+1861
+1458
+1474
+1613
+1681
+1586
+1441
+1499
+1865
+1735
+1989
+1952
+792
+1669
+1509
+1481
+1893
+1445
+1834
+1779
+1732
+1826
+1595
+1829
+449
+1920
+1707
+1780
+1935
+1867
+1769
+1107
+919
+1382
+1604
+1875
+1453
+1496
+1946
+1659
+1570
+1692
+1630
+1638
+1922
+1691
+1580
+1880
+1482
+1762
+1775
+1376
+1434
+1856
+1971
+1646
+1951
+1416
+1889
+1773
+1814
+1471
+1488
+1736
+1743
+1459
+1389
+1498
+1663
+1611
+1727
+1699
+1624
+1511
+1767
+1754
+1785
+1491
+1235
+1510
+1500
+1485
diff --git a/input/day2.txt b/input/day2.txt
new file mode 100644 (file)
index 0000000..1c12bdc
--- /dev/null
@@ -0,0 +1,1000 @@
+3-4 j: tjjj
+7-10 h: nhhhhhgghphhh
+7-13 j: tpscbbstbdjsjbtcpj
+4-13 l: ckllmqzlvcsxpplqg
+3-11 n: nnrhnnnnnnnwsdnnnm
+5-6 d: ddddddb
+7-10 z: szfwzrbzzz
+1-10 w: wwwwwcwwwrpnwzwxww
+5-6 w: cgwppfwlwrwtnw
+12-13 m: bmmthmmhmmmbmmmmm
+1-4 b: gbbj
+10-14 k: kkkkkkkkkfkkkzk
+1-3 n: nndn
+3-4 w: wwpf
+15-16 q: qqqqqqqqqqqqrqqqq
+3-4 w: wwcg
+10-12 r: rrrrrrrrrcrrrr
+10-11 v: fvlvrvcxvvp
+4-11 l: qdklwltggdcqn
+2-4 p: ppskptpp
+3-8 r: rjrrgrrk
+5-9 g: mgglggggrggggggxkggw
+9-16 n: njnnnnsnrnnnnnnhnnnn
+4-5 v: fgjvvxtqdmtqhnd
+2-11 r: rrfbltcxmqm
+4-7 q: hdkqfsq
+2-4 s: smshsswsztsmgssssss
+8-9 m: mmmmmmmlwm
+2-9 x: xxxxxxxxpxxxxxx
+3-4 d: zdgddd
+16-18 q: qqqqqqqqqqqqqqqbqj
+2-12 s: ssssmssssssssss
+8-9 q: dnztqqjqq
+1-3 d: ddddddddd
+2-10 h: hhhhhnhhvhhbhhhhhh
+8-11 l: wpjmvxqlmqllprw
+3-14 w: wwwwwwhwwwwwwpwwwwwf
+2-3 m: dlggmnlr
+1-6 b: bbbbblbbbbb
+1-10 c: ccbhdccdhltc
+2-11 g: cgrggfsgggggj
+10-15 t: ksnnwcqxcpzsvtcvtwm
+6-7 s: ssssssps
+17-18 j: wpjjjjjjjmjjjjcjjj
+7-8 m: cmqmmmlz
+3-4 m: mqmm
+3-10 h: dfhkkztbmhvcjvh
+7-16 x: rqwfvspqcxmpxnwxbd
+2-4 b: wfbbbfnj
+1-3 j: jjjj
+7-8 m: mmmmmmtw
+14-15 p: kpppwppppppppdppqp
+7-19 d: dddqrdkcgxxxdddddrdc
+1-6 l: cnlgtlc
+2-6 f: nfffffvfffqfrf
+11-15 s: sssssswsscsqbjdss
+6-14 s: sssfsssmsssssbsrnsh
+6-7 c: fcnppcc
+4-14 n: rshnnldbsnwvnwnnqnwn
+2-4 c: lcccrghcqwvc
+9-15 b: bgvjbclttvbqprb
+5-10 l: hlllqldgllnpttxqllrl
+8-18 h: hbhjknpnhvhpsbvsrdmh
+5-9 d: dddddddddd
+6-7 x: xxxxxxqd
+6-17 x: xntqxxxxxxxxxnwqnn
+10-19 f: fffjfffzfflhnfrsffq
+5-8 b: bbjfzdbhbb
+2-3 j: jljl
+16-17 s: swvsvsszsshssksssrn
+3-8 t: vtmhjrbx
+7-11 p: kpppppppppppppp
+3-4 j: wjjjk
+9-10 b: lbbpbbbbvb
+4-9 l: jrlbmrthlbjlmpgf
+5-7 g: vggggbwxgslgj
+11-17 f: gfmjfffdzfmvffpqff
+6-11 t: nbbbttmhbtwt
+6-7 p: jpprgnspppf
+6-7 w: wwwwwjwq
+8-11 g: zggggggchglqgggg
+15-16 x: xcxxxxbbxxxxxxxb
+2-16 d: xmnpfhvqnxcqdrgcw
+8-9 d: fdskddfwlddb
+3-9 x: xxxxxxxxs
+2-6 p: pppppbppps
+3-6 t: bjtptj
+18-19 w: qwwwwwwwwwwwwwwwwwww
+6-15 n: nkfndnxwzfjsvhnp
+3-4 v: lnvv
+7-13 v: mvvvvvbbvvvvmvv
+4-6 d: ddddds
+4-8 b: ftpbnfbsblvbvhlhtlb
+3-4 g: fnkf
+1-4 x: xxxw
+1-8 r: rrrbxnsrqrrrrqrr
+13-14 z: zzzzcvzzzzzzzzzz
+4-9 x: zhtvxfbzxdvkn
+1-9 d: zdddddddddd
+10-12 g: lhhddwgnjjwz
+6-12 p: ptpwlppsrzphlppqpd
+11-16 f: pfnxnbsfbsfdbzrx
+11-14 r: mccfwbcpbhrrlnvn
+10-14 w: wnwwwswtwwkwnw
+14-17 k: kkkkkkkkkkkwkwkkk
+7-9 g: kgkjktghg
+1-4 x: mxpxbjxxtvmw
+2-6 z: zzsswzr
+2-8 g: mcktgkkgqmcn
+8-19 n: znjnwhhnnwfdnhncwjdw
+3-4 k: pkgljmkdfhsxhpvwc
+7-13 m: mkpmmmqnmkmjrmcmm
+2-3 w: wvwcwxr
+19-20 q: qqqqqqqqqqqdqqqqqqmq
+5-6 r: rkqcrhs
+4-6 b: bbbbbq
+3-11 d: ddgddddddddd
+15-20 m: mmmmxmmbmrmmmfmmmmmm
+3-4 q: qhwq
+15-16 n: plzwngnnvzcnwknn
+4-11 l: ghlswpdrqvlsfj
+3-13 m: xdmvpmhktsmfm
+4-7 b: bbbbbbbbb
+4-10 w: mwwwgmgtwnwpbnw
+7-9 l: llllllpvlll
+3-11 z: zzdzzzzzzzzz
+3-4 h: hpnkhtz
+18-19 b: bbbbbbbbbbbbbbbbbbdb
+5-11 q: tqqqqbcqqqqdhq
+4-8 g: sgtgglgpgwjjj
+10-12 d: ddddddtkdcdr
+7-8 h: hhmhhhhh
+2-9 h: hrhvhhxhxghghh
+5-6 x: vxxxrh
+3-5 n: cgnfn
+17-18 z: bzzzzxtzcxzjvzzlzbn
+10-13 f: nfxwjfffffpfvffbvff
+1-3 p: pxpppp
+1-3 g: gqgbg
+9-10 v: vhfpwvvbvvfvvv
+3-7 r: rrsjrffrvwrrrr
+3-10 g: qlrrgglblwpjqccmw
+13-14 x: xxxxxxxxxxqxxx
+4-12 h: xrbkrnxjghkp
+13-14 s: xhsssswkssrsls
+6-8 r: rrrpgrrgrzr
+12-15 m: cmmmmmmmmmmmpmx
+2-8 l: wccfwrxl
+1-13 f: ffdfpdffffffffff
+10-12 d: dxdddddddddj
+9-18 b: ltnbbbmrfqbbbfbbgnd
+2-4 k: kbkklk
+7-8 n: nqmdncklnqnftjpvrcj
+6-7 s: ssssszshsss
+5-8 t: tttttsttttt
+11-19 k: hkvrktkkkkthrkvkkkkf
+3-5 x: qrxxbx
+11-12 d: ddddddddddzgd
+7-18 d: ndszddkddsdbdcqdddp
+7-8 t: ttttttttt
+2-4 s: gsksqskhjb
+9-13 d: dlqxsdddjdddg
+2-6 n: fgndtf
+6-11 s: sssssssnbsvss
+4-10 p: kjtpbjwpmb
+12-13 s: wssssssplsstscsszsds
+2-4 h: jthg
+1-2 z: zzzszhzzrvqz
+8-9 j: jjjjbjjncjj
+3-11 q: qvlqqqqqqqfqqqqqqqq
+8-15 w: pfqmwwwwqsccwgllm
+1-4 q: nqqhq
+7-16 k: kkkbktkkkjzhlkkkf
+4-11 s: kzjssthfsbtndfsd
+1-13 g: gbggljgggggggngggk
+1-9 q: qqqxlqvsmqg
+17-18 g: ggggggggggggggggfgg
+6-8 n: nnnnfsnrzksn
+2-4 k: zkhk
+10-12 n: gnfnnkknnnmnp
+1-3 j: jxnxw
+5-6 n: nbnknsjkmnh
+3-4 f: mkhf
+11-14 f: ptnpgkfzgzgxpk
+3-4 g: gwdj
+2-4 h: hhkh
+4-5 b: fvbzqx
+1-4 x: fxxp
+4-13 c: cccckcmtcccdccrcccc
+1-7 r: rrrrrrnrr
+9-12 g: rdhzhbspgxgccmmggg
+4-6 f: smfndrpscf
+2-6 j: jjjjjjj
+4-5 d: dddnzdd
+2-5 b: rbwgd
+4-6 s: sssssss
+3-6 d: dvnmjd
+10-14 x: xxxxxxxxxsxxxxx
+3-5 t: swttxctxf
+3-20 m: pxmlmzwzmjmnmnmcmmmr
+3-4 l: gdll
+9-13 h: kmhhhnznshhhhhsmhfx
+6-9 d: ghdlqfdmthdsjdcjht
+9-10 j: jdbqjjjjjjdjj
+4-7 q: qqvhbnqzxt
+5-18 b: mblpnblwlxjbxhqcmbl
+6-9 j: hjcwsvdgq
+9-16 t: kbtdksjcmmqpngdm
+6-9 z: zzzzzzzzzgzzzkzz
+18-19 x: xxfrxrgbbxpxxxxxxxqx
+4-5 b: nhbbz
+9-11 w: whwwwwhwwhwwww
+2-3 w: whww
+3-4 s: bsfsdgs
+5-7 k: kkkkhkwk
+5-9 f: ffxfffffqf
+4-5 z: bzzzggzjr
+14-17 n: nhjnxnnwxwvxnnlnv
+6-7 p: xpsklmg
+1-6 b: rbvblrkcblbbbb
+3-10 k: kkxkkkkkkck
+2-7 x: wxxdxgxtxqxxqxxxxx
+3-6 k: kwkfkznkkkq
+10-14 k: klqkksvskjkzmkkk
+2-6 p: wprgppgppszh
+4-5 b: bbbgbk
+8-16 b: kblbbbpvmjpbbfhhgbb
+6-7 g: hgdglzg
+3-7 g: lcgtgvl
+1-4 s: cssxs
+11-14 m: mhdpbnxqtpvfck
+11-20 b: bbbbbbbbkbnbbbwrbbbb
+1-3 l: lpcthzrgmmplrlxnbnw
+2-4 l: lbls
+11-12 h: thhhwhhhhhbf
+1-8 h: hhnlnhrc
+2-3 r: frpl
+8-12 p: ppppppkppnfpnspp
+6-14 f: fffffffcgrffffffk
+11-13 n: knnkrnkhvnvhsnhjmfb
+1-3 m: jmhjkk
+3-10 g: ggggggggggggggggggg
+6-8 m: mmhmmrtzrbgs
+14-15 c: nnvzfcvcrqcxbcw
+1-5 j: jjjjz
+1-15 r: rzjdmjjlfrbrmrrwlrr
+4-11 j: jjzfjjljnjjjjpj
+2-3 h: hhdh
+4-10 p: rppwqpppppp
+2-6 q: qqmwmqq
+10-19 t: dhjttjkspttxzbtxjmx
+10-11 r: rrhtjkdrrjl
+3-4 w: wwxwf
+4-17 n: ncsnlnnnnqnnnjnnqbc
+3-10 b: bnknbwbbbbb
+10-13 v: vvsfvjltvbwvvvnzv
+12-18 w: wwwwwwwnwwwfwwwwwww
+2-14 w: dwbmkgmqbqlcpwv
+1-9 r: rrrrrrrrkr
+1-5 f: ffflffffffff
+11-13 f: ftffffffffffgfff
+1-7 r: rwrrrrrrrr
+7-13 x: jthgxdmdxrbmvf
+5-6 r: wqdtqzrt
+4-13 d: kccfgmvknwbddrxmx
+9-18 x: xxxxxxxxcxxxxxxxxxx
+9-10 h: hhhhhhhvhhh
+8-16 v: gpblbxmvzhdrnjbrv
+6-10 t: ttttttttttttttttt
+5-9 k: slkkdtvhk
+4-5 f: ffpjq
+7-16 t: tktttttttttgtttttt
+4-7 k: kkkjkkdb
+3-4 q: qmvq
+2-7 b: whmfplbb
+16-17 p: pppppppppppppppppp
+5-7 h: hwphhngh
+4-5 w: kfjwlwcbhgz
+5-6 p: pxhppps
+17-18 k: pkmgdkdkckkvlrtnzj
+12-14 z: dkzzzzzztkmjzh
+6-9 d: ddddddddddjddddd
+1-6 v: vvvmvznvvbv
+1-8 b: bltbdzjb
+8-9 v: vvxvhvbvl
+8-15 m: mmmmmmmmmmmmmmvmm
+12-14 k: kkkkzkkkkkkkkk
+13-15 j: jjjjjjjjjjjjjsnj
+3-6 r: rrmrrrrr
+4-13 q: pqdrqqqqfhcqq
+2-7 b: lbzbkpbgvb
+5-9 h: hhmhrhhhhhhh
+4-5 h: hhfhb
+1-2 f: rfcjf
+4-12 f: gcffrbpvcnhvcrrj
+5-6 q: qcqrgs
+10-14 l: xcflwdwgbrqjwl
+13-16 v: qkvxzcltfsvmzgxqvt
+7-9 g: gggggggggg
+17-18 c: ccbqmccwcccfccgccc
+2-6 k: lkkkkwkk
+3-12 v: rqvqkhwxsrvv
+9-10 s: ssssqsksssss
+5-6 j: jjjjzj
+6-7 m: jnvpssgqtczz
+2-15 d: hdjhrksnlsbxdjdwvf
+11-18 m: mmmmmmmmmmzmmmmmmmmm
+5-6 m: mrdjgl
+3-10 h: xthspkwhjhltlcrds
+2-15 p: pbpppppdpppppppppkpp
+1-5 n: nznwn
+8-14 h: zghhhhghkzhllj
+15-19 v: vvvvvvvvhvvvxvvvvvg
+3-5 p: ppzpsbpp
+2-5 b: bwkdrdpkrtjdv
+8-12 x: qlxxxxvxxxsxgx
+2-10 z: zzzzzzzzzz
+2-13 w: bfvwhwwwpwbwwm
+8-10 p: pppppxpppc
+13-14 h: hthhhhhhthhhhzh
+5-7 l: llllccw
+3-4 w: wwww
+2-14 m: mnmmmmmmmmmmmgm
+2-5 j: jjjzbjj
+1-4 r: xrrwr
+6-12 f: fphbffwmffnzf
+1-5 z: pzkszsjzkdqxgzknrd
+5-10 b: bbbbbkbbkb
+9-11 d: dxrpkjhrddl
+5-11 n: bnlnnhqjbbn
+10-15 g: gggggggggwggggbggg
+4-9 q: jqqmqdqxfq
+6-9 q: lfcbxpqgqc
+7-13 j: jdcjjmjwfrjnnr
+1-13 g: xgggggggggggcggg
+10-11 d: ddvdxdmdddk
+4-6 n: nnnxnt
+5-7 n: hnjnnfnfpnrdntrh
+3-8 b: bgbrffxlbrbbb
+9-13 z: fdhdzzznzxzgj
+2-7 r: rqrgblk
+10-14 j: jxkjpjbjjjjjjsggjpp
+3-4 m: mmmm
+5-6 m: mmmmmmmm
+3-8 k: lvkvqcgkzkdcptc
+7-13 g: glbnggkbzkghgmg
+5-8 d: dddddddcd
+4-5 l: llllh
+5-15 w: wrwwwwwwwwwwwwwwqwww
+14-16 p: ppzppppptdpppsppppp
+8-12 p: ppxpppvppppkk
+15-17 x: xxkxxrkxxxxfpxxxx
+12-15 s: ssssscsssvssssgcs
+4-6 p: pppppp
+3-4 j: gjjjjwwj
+3-5 f: mfwhfpk
+16-18 p: pppppppppppppppxpmp
+1-2 m: mnmcrmq
+10-19 t: bttttttbtttttttttttt
+1-13 z: qzzzzzzzzzzzzz
+11-17 w: zpdsdfmhgmvcvzkdwpw
+5-7 z: zzzlfzgzz
+8-15 d: dddddddpddrdqgt
+2-3 k: nkjkk
+11-12 q: qmqqqqqqqgnnfqkqc
+1-2 p: pgpp
+5-6 b: fnbzbb
+11-12 z: zpzzczkzzrpszzzzt
+13-14 t: ttttttttttwttqtt
+4-6 p: phpfpp
+2-3 f: fvfws
+6-7 f: fffflfdff
+8-9 q: cwpqcqzqpf
+5-7 p: spppjpkpc
+4-11 s: sgsssdbbhpkssd
+1-6 s: wsssspsfsss
+1-3 m: mdmmmmmm
+4-6 d: dtdtmdg
+1-3 w: wwzwpww
+10-11 l: tlmhlllnqllb
+12-17 m: mmmmmmmmzmmtwmmmg
+3-4 c: cctkcc
+13-14 b: bsbbbbbbbbbbglb
+6-7 w: wwwwwxd
+1-11 j: kjjjxkjjrqj
+5-8 z: zbvjzzzz
+1-5 k: gkbktk
+11-13 k: kkkkkzpmkkkkm
+10-11 z: wtpfvmmpqhg
+2-3 s: bssc
+8-17 h: hhhhhhhxhhhhhhhjhh
+6-9 l: lllllmllll
+5-9 l: llllllglll
+2-7 q: qkqdsqm
+6-8 s: ssssssjtds
+7-8 c: ctfdfmccjhvrc
+4-5 w: gqcdwcwktmm
+4-13 b: wwjbnmghbjkwzbbj
+1-9 r: qbprwrrmsrr
+3-4 c: kcscl
+3-4 d: jdqd
+2-7 p: xpzmbfpvpjg
+2-4 f: fnfq
+7-8 b: wjdqkbbb
+13-15 m: mmmmmmpmmfmmgmxmmmm
+4-5 c: mpclj
+9-10 x: txxxxdpxql
+1-5 c: gccjcc
+2-8 k: xzkqkhvk
+9-11 k: kkkkckkkgkkpkvk
+10-14 x: mxzxrkdxgpxcxhxl
+5-6 z: hzzztz
+10-13 g: wzgggggvgggkl
+2-5 p: mmpvk
+2-4 b: stbsbbbbbb
+9-10 r: rrrgrrrrwqr
+1-6 z: xzzfzzv
+3-5 l: ljvlw
+2-8 f: lfqvjghd
+4-5 n: nnznn
+5-16 r: csmxrkrqnwnzzpprvr
+2-15 h: qhtmxhbgzzsbnjwwsqfl
+4-5 s: sfqps
+4-5 c: cqcgc
+12-13 d: dmcddddddddcdd
+3-4 s: xsqs
+14-15 j: jjjjjjjhjjjjjjj
+12-13 r: rcrsrrrrrrrrrrrr
+9-10 h: hhhfxjzvhxhbf
+3-5 w: qwvww
+4-9 b: bbbfbbbblbb
+15-17 b: kdlqpsrbrbbmbbbzbtz
+9-10 p: ppqppjppwjpp
+11-14 x: mbchwxxxxxxxxf
+2-3 t: stdnsv
+2-4 s: sbss
+7-9 k: kvkfkkqjk
+5-6 d: ddddldd
+1-12 g: cggggggggggqgggg
+8-10 b: bcvxgdzbbbbclbddmcpq
+1-3 p: qpppp
+3-10 g: mbggbzlwjgrqncddkbjz
+3-6 n: nnnnnnnnnnnn
+5-14 t: fdtqxdpztgrtzl
+7-9 p: ndppppzpppnb
+6-9 l: llxlmlldltllll
+2-8 p: pwvmbccpvhbqg
+2-5 q: bqccqlpj
+1-12 j: jjpddhjrjkjb
+2-16 j: hnmrxjcspnnrqhcj
+2-4 s: scrb
+3-11 j: jjjjjjjwjjc
+6-9 h: bhlsnhkfhnqhprpdm
+2-4 k: skcn
+10-15 r: prrbrrnrrrrrrvlrhr
+1-2 p: pppp
+3-5 t: ttqtttc
+1-2 k: kwkp
+6-7 g: gggggggfxgmgggggwg
+6-17 g: lvgggggnrwqnsggrgg
+2-8 v: qvmnvvvzn
+5-6 r: rrcmgrvrhrf
+6-7 w: cwwhwwq
+1-16 l: rllllllllllllllll
+14-16 v: vvvvvvvmvvvvvqvvvhv
+13-16 m: qmmmmmmmmmdmmmghmmmm
+10-13 x: xgxxbtbxgxxxdx
+6-7 k: kkvkqkwkkkkvkkkh
+16-18 g: ggggggggggggggggggg
+1-12 f: ffffffffffsmffn
+11-14 c: kmltgplwdccvzchtfs
+1-2 l: whll
+3-10 r: tchrjqrwnrnhlrzssdr
+1-4 b: jbxbrb
+9-10 d: dddddddddldd
+4-6 r: rwrrrrrlrchnqxv
+1-5 z: sjznb
+3-4 p: wqtp
+3-13 n: zncsfbdxpnpzn
+6-8 b: ppbzbvjhmfnq
+2-4 h: hhhr
+5-6 w: lwrgll
+10-15 l: lllllllllllllllll
+5-6 l: hltlllbwlr
+8-9 q: tpzqmqqssqqqqq
+12-17 v: bmxhqtvmrgvvgqzvp
+7-8 t: ttttttvtt
+11-12 r: rrbrrvrrnsrr
+2-5 f: wzrnlcxfhnchsrzjxl
+12-17 l: lllllllllrllllldl
+9-10 h: phhhhhhhrzhq
+5-17 q: chqkqpjqnqjlcvbxlqkq
+1-2 m: hbmm
+4-10 f: vtfffsbvsff
+5-10 h: hhhhhhhphnhhh
+2-3 x: xlxxxnxltdxbxdbxpg
+4-12 x: nlxxtcbbbknh
+2-3 l: llfll
+6-9 p: ppppppppp
+2-4 v: grwdv
+5-8 c: fkpkccdcvdvck
+2-8 l: khzlpwdcddk
+2-7 v: vlbvvbl
+7-8 h: zhhhhhnh
+12-14 p: phpxppkprhbpvpp
+5-6 j: jjjjcsj
+5-12 m: srctztgnwtrmmmwkjk
+5-6 s: ssslss
+2-3 m: mxmm
+10-13 c: ccccdcdcccchzlcw
+11-12 k: kkkwkkkkkkkkkk
+9-11 g: rfggsgphdhg
+8-13 w: wwxwwwzwfwwwtlww
+5-6 f: qvpfmt
+12-13 n: mlnntnnzblnnvnd
+7-8 q: qqqqqqbqqq
+4-7 p: hpnvfpmpgqp
+14-16 b: bbbxbbbbbbbbbtbdbvb
+16-19 g: gwgggcsgggpggjgjggj
+3-6 k: kkkptkkdrk
+1-7 l: slsrxllllw
+3-12 d: dddddddddddqdd
+5-6 m: vcwtmdmmmmxzm
+4-6 r: rtcfcz
+7-12 x: xxswxxhjxnxxxx
+6-7 t: ttswtkztt
+15-18 g: nggckgdmsvdrqlgcqz
+6-9 t: tttttstttlt
+16-20 f: fffffffffffffffffffl
+7-10 l: bcbdhwlslwlqx
+8-11 k: kkkmkkvksmktkskkxkmk
+9-15 h: rptgwtvxjgzqjrtqqc
+4-6 j: jjjjjjjjjj
+12-15 w: wwwwwwxwwwfwwxrw
+13-15 d: ddddddddmdcdcddddd
+13-14 v: vvvvvvvvvvvtxv
+10-12 f: fffffffffffvf
+7-10 j: jjlftzjmjz
+9-10 w: cwwzwwllwfwktqkwxr
+1-8 b: bbbbbbbvb
+11-14 d: dlsmbgcdxhxfnqdhzd
+17-18 k: kkkkkkkkkkkkktkkbq
+7-8 k: kfkpkkkkkk
+4-9 w: zbwwwrckwntbdqfd
+7-8 m: mmmwmmgm
+7-11 v: cvxllpvgdnh
+5-13 c: cmccqccjcccjc
+12-14 m: mmmmmmmmmmmmmvmmmp
+4-11 x: dgvxxptdgkxpxl
+4-5 f: pfclfffk
+7-14 l: lllwlwlqqsnmllllll
+10-11 l: pcqllllvlqlll
+2-5 k: kkbkk
+3-6 d: ddddddd
+8-9 d: dddddddld
+1-11 d: tddddddcddmdddd
+5-8 b: pljtbkwkxb
+11-12 t: tttttttktttgttt
+6-7 q: qtqqqqgq
+7-8 v: vvvbvpxp
+4-13 v: vvvpvrzvvvvvvvvvv
+8-11 r: rrrrrrrnrrr
+14-15 b: bbbbbbbbbbbbbzr
+13-16 p: ppppppppppppfpppp
+7-10 g: gfgqgglggg
+4-7 s: ssdsshc
+8-11 t: zttctgtvttfttcrxd
+11-12 j: jjjjjjjjjqwx
+1-6 w: wwwwwl
+4-7 l: zlbmrll
+2-10 k: kkkkkkkkkm
+8-10 x: xxxxxxxjxfx
+4-13 r: blrrkqjczlbnrfbbkd
+8-10 z: zzzzlzzzhj
+9-11 s: vsmsszsssvsqss
+3-6 m: mvkrmmwpzbtmmm
+1-5 r: smlrbr
+5-6 k: rlkklkkkkh
+2-5 d: dkddddddpd
+13-14 g: ggxtggfvgggdgggggcgg
+7-9 x: xxxxxxbxgxxx
+3-16 x: xxxxxxxxxxxxxxxlxx
+11-15 c: chvcccccccqccdm
+3-4 j: kjjjj
+9-10 d: ddddmddddd
+13-14 q: lqqbrqzbqqpcpt
+2-5 w: xgjsxww
+12-14 w: lwtxgwwzwlwbwwc
+3-4 r: hffl
+11-15 b: bbbbbbbbbbfbbbwb
+3-7 f: lffnkpfm
+6-13 v: vvvvvcvvvvvvvv
+7-11 v: vvvhmvvvjvvvvvvvh
+18-19 z: bzqtbfvfkxgzzxkftzz
+8-14 l: gptlllllllxgll
+7-10 w: dwmwrfwkkghf
+2-4 f: fffshfffff
+1-3 n: rnsfgn
+7-20 w: wwwwwwhwwwwwwwwwwwwg
+11-14 g: ggggggggggwggggkgg
+2-8 x: xtxxlxxmmcxllxtxwxx
+2-8 b: jbfclqjbkszckpkxnbn
+1-3 d: dhdhffmd
+14-19 b: bbbbbbbbbbbbbbbjbbbb
+6-8 d: dtjbzdsddddf
+14-16 n: rfmszmgztspnnncqj
+9-10 v: vvvvrvvvvnv
+5-6 r: rrsrrrrrrr
+6-7 v: vvjvvjrv
+6-8 q: tvqsqqvqqd
+1-3 q: qwtdqbgmmck
+8-15 p: ppppqppzjpppplpppppp
+6-12 m: mwmhmsjxgcmmcrzlmmkc
+2-8 j: sjwjljqjjjcdlmgxkjj
+12-15 j: sjjjjjjqjjjjjjkjjj
+14-15 t: vtttttttttttttt
+17-18 r: rrrrrrrrrrrrrprrhd
+10-15 c: sxspsvqkfvqjjccxbbv
+7-8 g: ggggggxg
+2-12 t: tbtttttttntmttttt
+3-6 m: ztjrds
+2-4 h: gdzk
+4-5 p: rtlkkfwntpxw
+8-14 k: kkkkkckkkkkkkgkkk
+3-8 l: rqltzlflljsqmk
+9-10 s: smssswksjsssss
+12-13 z: zzzzzzzzzzzzr
+12-14 h: zhhhqvhhhhxhhh
+13-14 x: xxxxxxxfsxqqsxxxx
+2-3 k: kffk
+1-5 z: jzzzzzzz
+10-15 n: nngnnhnjnnknndnvtbsd
+12-13 k: dkkkkkkkkkkkn
+6-8 h: qhfnrpfh
+7-11 c: ccccccqccccc
+19-20 m: cjbpwtmdfbllvvdrmmmt
+5-6 l: lmrbhtbl
+3-6 j: hjjkjm
+9-10 j: jjjjjjjjtljxjj
+3-5 t: ttbtcttt
+5-8 r: rrrrrwhfrrf
+3-5 d: dqvknd
+5-7 j: jtjjgjm
+5-7 v: vdjrlwv
+8-9 s: ssssqsssssssxssssss
+12-16 q: qxkjsjlsggcqhplq
+16-17 j: jbftlzjjhjjjjvhjjj
+3-14 v: gppvmdbvfwvgnd
+1-8 b: bbbbbbbdb
+2-6 z: pzwhjdzpxwt
+5-9 v: qvrvmdvhwv
+2-3 b: bbhlpxtbxzx
+4-5 z: zzhpzz
+15-20 f: fgzfnbcgtbnmflffqfrv
+4-5 t: ztxttc
+6-11 p: mjppkpcrdflpwqjrwprp
+4-7 h: khdwwhhrhhnchs
+10-11 b: mprbbblmcbbxqbbbbc
+4-6 c: cccjcccx
+1-4 r: nrrhrrr
+1-2 d: dddlk
+19-20 f: bfffffffffffffffffkb
+4-6 w: wlswkwwrdsjtwbww
+2-3 d: ddld
+9-14 r: rrrrrrrrmrgrrjrrr
+10-11 k: kkqkkkkkkjk
+2-5 k: rkkkkxkkkvsd
+16-17 b: bbbjbbbbbbbblbbbrbb
+6-7 k: kkkkkkk
+7-11 v: lfpjgrrvchvjfdt
+12-13 g: fgxqnkgstgpggvrqdl
+11-13 d: ddmmdtdddddhddd
+6-7 g: mpstgwggbx
+11-14 h: hhhhhhhhhhqhhbh
+18-20 d: dddddmdddddddddddddh
+10-12 m: mmmmqmmmmmrxwmmq
+2-13 d: rxnxstxxrjvbdd
+3-4 z: drzlrz
+5-6 d: qddddb
+3-7 d: ddzjcmvtkfdjplhllfn
+10-15 m: wdxhmwbnmmmtrxpcj
+7-8 b: bbkjbbgnbbswd
+2-3 b: bbbhz
+1-10 p: gpppqpppgppppppp
+10-11 w: zwwfbwdqzww
+10-11 n: nnnnnnncnknn
+9-13 n: nnnnnnnnnnnnnndnnn
+6-10 f: fffffbfffhf
+3-5 h: cmhtc
+1-2 p: gzpsj
+4-10 w: wjwhwwwwwvwww
+2-13 g: kwpjkxkjmhgnpsmjsmd
+3-4 c: cctpj
+13-15 k: kvkzkkskqkkkmkdkkkk
+8-9 x: qnxxxfbdx
+10-15 k: rkkbkvckkknxlmb
+7-8 l: llcqslvlljgll
+2-4 b: dtgbb
+9-11 j: sjrkthwqjjq
+1-4 z: bpzxzvjzrwhtpccm
+8-9 n: nnvnnwwnnlnnnznnnn
+5-7 j: sthpjjpwrt
+12-13 s: ssssssssssssn
+3-4 m: mnmgf
+7-13 p: pppppprppppppfppppp
+6-8 h: zhhbwhht
+13-16 t: ttdtttttttttctkt
+8-9 l: lllnhlllzpjlqllzld
+7-15 x: fpkxzbbnxlcxxlxvx
+3-10 b: bbbbbbbbbk
+3-4 z: zzrg
+1-4 w: wxww
+5-6 b: dbbbwbb
+2-3 r: frrhnh
+1-11 d: qqsrfdddxdzdg
+5-7 z: zzzhzzxz
+5-6 b: slsbbb
+1-2 b: jsbbg
+2-10 t: tzttmtpwttttttm
+4-5 n: kngxn
+5-8 d: tpndxhvd
+4-5 z: zgzbzzg
+5-15 s: ssssssssssssssls
+2-10 g: ggjgcglgggt
+15-16 w: wwwwwwwwrwwwwwvzwwg
+1-4 s: mksm
+1-3 q: qqjqq
+4-5 p: kwpkg
+7-19 z: pkqkkzzzqccnlpzgzzz
+4-6 k: kkkfkc
+3-11 h: khshhhnnzphc
+3-9 h: tkhghdhkhbhgx
+4-8 n: kzntlxwn
+1-2 v: xvkmv
+3-5 m: mmmmkm
+2-7 q: qqbwwctqbqs
+2-3 m: mmmm
+1-5 k: kkkkk
+5-10 t: tttttttttbtxttt
+1-4 l: lllblllllllllllll
+11-12 c: cccccccccccwc
+7-12 f: bfvpqzgwjxrnffjzm
+1-13 k: kkkkkrkkkkkkkhk
+1-2 w: pcwwwb
+6-11 j: jjqjjnbznjt
+3-4 d: vzdn
+3-5 f: ffhkc
+6-9 t: fbttjbtttlzdktf
+1-8 k: rrkkkkkb
+4-7 f: kbvdphfjgkdthtvffh
+1-5 c: hgtcjnjqf
+7-11 f: zfffffljfffffffg
+3-6 j: jrjjjsjjj
+7-14 r: rrrzrrrpjxrtrrrrrr
+2-6 d: tdvbjdzqj
+11-12 l: zbfnlfzlllls
+2-5 c: cjccnf
+6-8 v: vvvvfvvvv
+9-10 b: bbbbbbbbbbbbt
+10-12 l: llllllldlllh
+8-13 g: sggzgggjggggjgggqz
+8-12 m: mmsmmrmmgmmgmmmfhmmz
+2-4 m: mqsmhnm
+2-3 j: jjljjj
+6-15 w: wrwwwkwfwzwnjcwwwjhh
+5-6 p: cbppwb
+1-10 h: xhhhhhhhhvhhk
+6-14 c: dccccvfcmlcxgcccc
+2-7 r: cmxrrrcmrr
+13-16 f: ffffffffffffcfft
+4-5 s: rsbzssssp
+8-10 j: jjzjjjjxjpj
+3-12 n: nnnnnnnnnjnnn
+13-14 g: gggggggghggggjg
+10-11 s: tzssqhxrsss
+2-12 l: lllllwdlltvlblxlln
+11-18 n: wwnnnnvnhnvnnnntnpn
+5-6 h: khkhhhhhzfhdxkqmk
+1-4 z: czqrzzzzz
+11-13 f: ffffffffffffcf
+1-3 x: pxxx
+2-5 t: tttttttt
+4-5 d: ddddld
+1-3 c: chcsck
+8-11 d: dddddddkddzd
+9-14 n: nnnwwnnnnnnnntn
+1-2 t: tftqt
+6-7 d: hdtncds
+3-9 r: lbrrkmrmrw
+9-10 w: wgwwwwwwww
+2-3 j: jjgcqjjj
+7-8 q: cqqqqqqq
+4-12 x: xsvxsxsvlxxrqxx
+7-14 l: sldglzflqgddxwlvlc
+6-8 l: lllggcqlllll
+3-8 b: bfbqdlgbwjldng
+1-4 g: kgggggg
+3-8 n: lpnxplmnz
+11-17 g: ggggggggggpgggggmgg
+18-19 t: ttttgtttttttttttwrtt
+8-10 x: fxjxxwdsfqxwnpmvxf
+11-12 d: ddddddddddvj
+4-7 n: qpnbgnnw
+5-7 x: xfkrxfxk
+6-13 r: rrrstrrgvdvrrrnm
+4-5 m: zfmmr
+5-12 r: rbrrcrrrrrrrrrrrm
+12-13 l: lllllllllxllzl
+6-9 x: xxxxxrxxsx
+5-6 v: vxtdvvgvwlqfwtbsvnvv
+1-2 j: qdtcpqrltjgppjvc
+3-5 v: vvjvcv
+1-5 f: ffffsfff
+2-3 k: xkkgmnnpkq
+12-19 m: gmmcwcmmnrfqmpmbmmr
+4-11 z: knzzmztfnnzzjszzjfz
+7-8 k: xkczkkkckk
+15-17 m: mmmmmvmmgmmmmmrmm
+5-7 s: xssssss
+12-16 n: nnnnnnnnnnnnnnnvn
+4-16 b: vbjbmgbplwltlcbw
+8-11 b: bgbbbbbdbbrb
+3-10 d: ddddddddddd
+8-14 k: kxpkkkkvvkkkzk
+3-6 l: llzllll
+16-17 d: tnjdmnddkddbdvvddddm
+5-9 h: bbchxhnhqk
+3-6 d: wpqdfl
+8-13 z: zzzqfkzhzzcmz
+3-13 q: qkrwstgphfrtq
+9-10 b: bbqtrtsbbb
+19-20 q: bbmkgtnsgzmqzqsrwcqd
+3-11 q: dtvgqqnwmgzs
+12-16 x: xxxxnxxxxxxqxxxxxxx
+10-16 p: vpmpppprxppmgppppqcq
+3-6 l: mxxlbllpwblzlllnl
+12-13 v: hvfvnjvgvvpvvjkvvj
+2-12 v: scqjdrlkfzrl
+5-6 l: lllllp
+4-5 g: pgsgg
+5-6 k: nkktsjgknkbz
+4-8 v: vfvvvvvvvvv
+6-11 k: ddcqknhhkck
+6-10 w: gwqpwwwwtfwv
+2-9 q: qlkqkkqqqlchq
+8-15 n: ghsnnndhlxpjwnqsnnp
+6-7 l: lllllllll
+2-5 x: xxtcx
+6-10 x: lwtcqxjxvxxhxpxxxsx
+2-4 t: lvglqt
+2-3 d: tfsq
+7-17 m: dxnmnwggnmdmrmhjh
+6-7 g: tgsvggdkmlpstg
+1-8 n: nbnzflml
+6-8 c: clccpclsp
+6-8 r: rrrrckrdkrrwzrr
+3-12 p: pplpppfppppppp
+2-4 c: fccc
+10-16 r: rgrrrrrrrdrrrrrrrqr
+2-6 x: xwxqxqx
+7-11 h: hwhhvhvrghrhnh
+7-11 z: mjjxrfhftbbbklzkv
+4-5 c: ccpcc
+9-17 z: qznzzcvzzjczzzjzzz
+18-19 z: zzzzzzzzzzzzzzzzzrz
+2-3 r: bdvzlrkjhjvqp
+16-19 d: dddddfdddqdddddddddq
+14-18 b: bbmbbbjbpbqtbdwbbb
+8-9 f: mfddqvlff
+7-10 x: xxxxtxkxxb
+4-5 r: hbvxthrwllx
+3-4 t: tltstng
+2-4 f: tfnrcgqf
+1-6 g: fgvbwg
+7-10 z: vzznzzbzzklzzzlzz
+10-13 j: jrwjqgjjzjmbklqxwjn
+1-5 s: sssssss
+8-11 v: xfpwhwvntgvht
+8-9 l: lllvsglzltllwhl
+7-20 n: jnnsnnknnncknnnrnjnn
+7-11 c: cvblgfxdzcccxjdclt
+8-12 t: tthstttktfttzmdtpk
+9-12 g: rggvkgnggggm
+5-8 f: jrfppdsnpjkwjrdhddf
+5-6 n: nnnnnwnn
+7-12 j: jjjjjjjjjcmkjj
+2-5 g: gbggkg
+5-16 p: ppgpnpppppppppprpp
+1-6 d: ddgddvdd
+3-11 s: sscsksssssldssss
+5-13 j: jjjjjjcjjjjkjjjjj
+9-13 m: mfmmmtvdcnwmmmmm
+2-3 f: fffrjn
+7-9 z: zzzzzzzzfzzqnzzz
+3-6 b: bbbbbbb
+6-8 v: dvxvqzvv
+4-5 h: hhhwhh
+1-2 w: wwwwwwwwwww
+6-11 h: shqlvhbqhbh
+6-7 d: dddrddtdd
+11-17 z: zzzzzzzzzzzzzzzzl
+6-7 t: ttttttttt
+2-3 j: zjstccxb
+11-13 q: qqqqfqqqqqqqsqp
+2-7 p: sppznwpjptppdppp
+3-4 m: mmml
+3-12 g: phkfggggkzgxbsxr
+1-2 c: ppcbvncvck
+12-18 h: kjmmtxkrjthtsphgsb
+13-16 n: nnnnnnnnnnnnwnnn
+11-16 s: xstpxfxtkgscbgws
+14-15 h: hkktqhhszldhhkh
+8-12 j: jjjjjjjjjjjdjjj
+13-14 k: phkkkmkkkkqkkrkkk
+4-5 h: hhhqqhhhn
+4-12 k: kkkkkkkkkrkkkk
+7-10 q: qqqqqqqqqbq
+5-7 s: szssqsgs
+8-11 l: lllllllllll
+10-11 w: tfbwwxwwmkp
+10-11 s: blkkznbrtss
+2-4 t: dtxt
+12-13 x: xxxxxlxtxxxfxxn
+9-15 v: mvvhvwnvgvvvvzc
+6-17 g: gbggfxvmlfjmgdmshfzq
+9-12 n: lqmsxjnnnwrqphn
+6-17 b: bbpljfjbsbgfzxgsn
+13-15 f: fjgfdsffphbcsltw
+3-8 g: kxjlsggg
+2-10 n: nfnhnnnnnknn
+2-6 x: xzxxxpx
+4-5 f: zddjhfknqffsbbf
+3-5 r: skxgqcrrrx
+1-2 x: rxcddx
+8-12 g: gggggggggggmgg
+1-6 j: jjjjddjj
+8-11 z: zzszznzfzzz
+3-14 s: hwjszphhcwjmhsssc
+5-7 m: lpcnpsr
+5-6 f: frffplfffff
+4-7 m: msmkrmw
+4-10 s: vhlztshrspskv
+13-14 q: mqqgqmcpqpdrqn
+5-9 h: hhhmrhhhh
+4-6 r: lbqhmw
+5-6 b: mbzhbsbbhthll
+13-16 v: vvvvvvvvvvvvhvvdvvvf
+10-12 w: wwmwgwwzwpwv
+2-12 b: kpxbpfbfbcjfbkcfxmbb
+14-17 n: nngnnnnfnqnnnnnnrn
+6-10 h: hchhhhqhhxhhzj
+5-6 h: hzvnwb
+7-8 p: pnhxqpls
+4-5 z: zzztzz
+11-12 c: fclcctjcfdqrcps
+6-15 v: jgclvvsqkqgjkvvcl
+1-13 j: wjjjjjjjjjjjgj
+6-7 f: fffffmfzpf
+6-12 p: kppppgppzpptphxp
+13-14 b: bbbbbbbbbbbbbbbb
+18-20 f: ffffffffffffffmxftfv
+6-11 k: gfkkkctxmkrkp
+1-9 r: rrwvbwdtr
+8-18 b: bbbbbbbtbbbbbbbbbbb
+3-10 t: ftqgcktpthttztm
+5-8 j: jjzjjjtjlbhj
+2-6 w: hwkljw
+10-14 g: kggggggfrrgggxgg
+7-13 z: zjszqzxzdzzzkjzf
+1-6 p: ppppppppp
+8-9 p: pppppdpgqpppp
+13-15 g: gggggpsggggtggbg
+4-5 g: gpmsg
+2-5 z: vzfhzzhphh
+2-4 g: jgzq
+8-9 g: pgjggbbgf
+3-4 r: ljsnp
+7-13 x: xxxxxgxxxkxxxxvxkkxm
+2-6 g: nggfgw
+9-10 m: mmmmmmmmldm
+15-16 w: wwwwhwkwjnwwwwdn
+10-18 r: rrrrrrrrrrrrrrrrrkr
+2-3 q: qplq
+1-7 m: tmmmmsq
+2-5 w: swwmwk
+2-3 l: slgkdtjznfxdml
+10-12 q: qxmmqjqqqqqw
+12-14 c: bhlhjcwkcndchwc
+10-11 d: dddddsddddl
+13-14 g: mxdxkmvcgrsqgn
+3-4 t: qtttpmt
+14-16 b: bbbbbbbbbbbbbbbqbbb
+2-11 w: zdggnxfnzpwnf
+6-7 r: rfrcrrf
+9-10 h: hhhhhhhhfg
+7-8 r: rrrrrrvl
+8-9 n: rnsnvlrqdq
+4-7 f: ffwnzdf
+15-18 x: ngxxvqwxzlhxwpxxxz
+13-15 w: nwwwwwqwwwwwtww
diff --git a/input/day3.txt b/input/day3.txt
new file mode 100644 (file)
index 0000000..9ba5fa1
--- /dev/null
@@ -0,0 +1,323 @@
+.....#.##......#..##..........#
+##.#.##..#............##....#..
+......###...#..............#.##
+.....#..##.#..#......#.#.#..#..
+..#.......###..#..........#.#..
+..#..#.##.......##.....#....#..
+.##....##....##.###.....###..#.
+..##....#...##..#....#.#.#.....
+.....##..###.##...............#
+#.....#..#....#.##...####..#...
+#......#.#....#..#.##....#..#.#
+##.#...#.#............#......#.
+.#####.......#..#.#....#......#
+..#.#....#.#.##...#.##...##....
+.....#.#...#..####.##..#.......
+#....#...##.#.#.##.#..##.....#.
+##.##...#....#...#......#..##..
+....##...#..#.#...#.#.#.....##.
+..#....##......##....#.#....#..
+#..#....#....###..#.##....#.#.#
+..#.#####..##....#....#.....##.
+.#...##.......#...#....#.#...##
+#.#.#.##.......#.....#.#.#....#
+.#.#.....#.......#.......##....
+.#......#....#....#.......##...
+#......#.....#......#..#..#....
+#.#...#...#....##....#.#...#..#
+....#.....##...#...#..#.#......
+..#......#..........#...#.#....
+..#..#......####..##...###.....
+.#.....#...##...#.##........###
+#.#....#..#....#..#.....#.#..#.
+...##.##.#.#.##...#.....#......
+##....#.#.#...####.#.#.#.#.....
+.##.........#..#..###..........
+..##.###.#..#..#....##.....#...
+##........#..###....#.#..#..#..
+....#.#.......##..#.#.#.#......
+....##.....#.........##.......#
+..#........##.#.........###..##
+....#..................##..#...
+#...#.#..###..#.....#..#..#...#
+..#..#.##..#..#.......#.......#
+.....#..##..#....##...........#
+..##...#........#...#.#.......#
+.........#.#..#.#..#.##.#.###..
+....#...#..#..#......##....#.#.
+..#..#.#....#....#..#.####..##.
+##....#.....#......##.###.#..#.
+#..#..##..###......#.#.#.#...#.
+.......#..##..##...#...#..#....
+..#.###.#...#....#.##.#.....##.
+.#.#.......##...##...##....#...
+#...#.#.#...#.####..#..##......
+###..#.##..#..........#...#....
+##.#.........#..##......####...
+..##.#..#....#.##..............
+...#....#.......###............
+...#.....##....#.#.#.#.......##
+###.###...#...#...###.##...##..
+#.#....#.##..#.....#.....##.#..
+...#....#....#.........#....#.#
+##.#....#........#..#..##.#....
+.#.#..#.......#...##.......#...
+.##...##........#....#.#..#....
+....#..#.##.###.....#.#........
+.#.#...#.#..#.....#.........#..
+.......#.#.#..##....#.........#
+.##...#....#..#...#........#..#
+....#....#..#.#..#.#.#....##.##
+..##....#.....##..#.#...#...#..
+#.##.........#.....#.......#.##
+...#...##.#.#..........#......#
+###...#.....#..#.......#####..#
+#.####...##.#.#..#...#.........
+.##.....#.....##..#...##.##....
+.........###...#......##....###
+.#....##...###.#..#...##..#.#.#
+.......#.......#.#...##.#......
+.....#.#........#..##.....##...
+....#.#.........##.#...##..#.#.
+#..#..#.##..#.##.##.....##.###.
+..##.........###...#....#....#.
+.###...#..#.##...........#.....
+#..##..........#..........#....
+.....#.#....#..##..#...#.#....#
+..#.....#.#....#...##.##.......
+##.....##........#....#..##....
+.#..#.#.........#..#..#........
+.............##....#....#..#...
+....##....#..#.#.##....###.##.#
+.###..#.....#..#..##..#..##..#.
+...#..###.......#.#....#..###..
+#.#..#.....#...#......#........
+#..#..............###.#......#.
+..#....##.#....#.##.#.#...#....
+.........##..#...#.#.......#...
+........#...#.#....#.....##..#.
+...#.##..#..#..###..#..#......#
+.....####......#...#....#...#.#
+...###.#.#......#....#.......#.
+#...##.#....#....##....##.###..
+.......##...##.....#.##.#..#..#
+.....#.#............##...#.####
+.##..#.#.#.#..#.#.#.....#.##...
+.#..####...#.#....#.....#..#...
+....##..#.#...#..#....#.#......
+...#......###..#..###..#.....#.
+.#.#.#..##....#...##..#.....#..
+###....#....#...##.....#...#...
+#.##....#......#...###.........
+.#..#.#...#..#....#....#....#..
+...............##...####..#..#.
+#.#...........####..#...##.....
+##.#....#........#......#...##.
+......#...#...#....#....#.....#
+#......#.............#....###..
+.#...#...##.....#...##.##..#...
+..#.#......#.#........#........
+.......#..#.#...##..#.#.#......
+..##...#.##........#....#.#...#
+.....#..#..#........#.#......##
+....#.#...##............##....#
+.#.#....#.#.#...#...#.##.....#.
+#.#.##...#....#.#.#..#.##..#.#.
+.........####..#...#...#.......
+#..#..####......#..##..#...#...
+.........##..................#.
+.....##.#..##.#.#...#......##..
+...#....#....#.#.....#...#..#.#
+#...##.#...##...........#..#...
+#..........#.#..#..#.##..#..#.#
+.#...#.##...#.#.#..#.......##..
+.........#...........#..#..#...
+.##...##....#.#......#........#
+#.#...........#....#.......#...
+##.#.#.......#...###......##..#
+...###..#.##..##.#.#.......#...
+.#...#..##.#...#........#.....#
+...#.......#..#..........#.#...
+..#.#.#.#.....#.#.......#..#..#
+#.##.....#..##...#..###.#....#.
+.......#...........#...#....###
+.......#..#...#.............#..
+#.....###.......#...#........#.
+.#..#..#..#...........#........
+....#.#...#.#.##.#.#....#.##..#
+.......#..##...##...#...#......
+...#.....##.###...#.#...##....#
+#..#....#...##......#....##....
+#.#.......#....#.###.##..#..#..
+..##...........#...#....#......
+.#........#.....#..#..#...#..##
+.....#.#.#..#.......#....#.....
+#..#.#......#......##....#.....
+##.....................##......
+.##........###..#.........#...#
+........#.........#..#.........
+.#.##....#.....#...#.........##
+....##......#.........#........
+...#.#..#...##.##.#.#..####....
+..##...........##.#.#....#.....
+.#.....#.#...#..#.......#....#.
+....#...#......##...#...##.#..#
+....#..##....#..#.........##.#.
+..##...##.##....#....##.###...#
+..#....##..##.#.#.#...#......#.
+##...#.........#...........#...
+.##....##.#.....#...#.......#..
+..........##.###.##....###....#
+..........#..##..#....#.#.##.##
+........##.#...#.#.#.#...###.#.
+.#......#.#.#...###.#.#.#......
+.........#......#......#...#..#
+......#.....#.##....##.#####..#
+..#..##...###.#..........#.#.#.
+.#..#....###.#...#..#....#...##
+...................#..........#
+....###.....#...##......#.....#
+#.....#..##.....#.#..........#.
+..#.......##.#....#..#.##.#...#
+........##.#..###..#......##...
+#...........##.#...###..#....#.
+....#...........#.....#.#...#..
+.##..#.#...#...#.##...#..#.....
+#........#.#.#.#.#.#...........
+#..#.....#..#..#.##....#....#.#
+..#............##....#.#.##...#
+.....###.#....#.#......#.###...
+...#.....#.#.................#.
+..#...##..#.#...#...#...#.....#
+.##.#........#..#....##..#..##.
+.#..........#...#.#..#..#.#....
+#.......##.........#.##..#.####
+.#..............#.......##.....
+#......#.##..........#..#......
+..##...#...#.#...#............#
+.##.##..##..##........##.....#.
+.....#..#.....##...............
+.#..#...##...#...#.....#.......
+#......#...#.......#..##.###.##
+###..##......##......###....#..
+....#..........#...#.##.#.....#
+.........#....#..#..#.#..##....
+.....#.....#...........#......#
+.#.......#...#....##...#.##...#
+..##.#..............#..#...#.#.
+.#..####.#.........#....#....#.
+..###.#...#..#......#.......###
+.#.#..##...###...#...#.#...#.#.
+...#..##..###.#..#.....#.##....
+#...###.#...##.....####.....#..
+.#.##...#..#.#..##.....#.......
+...#.##.....##.....#....#......
+.#...##.....#..###..#..........
+..........#...#.....#....##.#..
+.......#...#...#...#........#..
+#....##..#...#..##.#.#.....#...
+.#.#..............#..#....#....
+.####.#.#.###......#...#.#....#
+.#...#...##.#...............#.#
+...#.......##...#...#....##....
+#..........###.##..........##.#
+.......#...#....#.#..#.#....#..
+....#.##.#...###..#..##.##.....
+..#.#.#......#.#.......###.....
+#..................#.##....#...
+#.....#..#.#.#..#...#.........#
+..#..#...#.#.##........#.......
+#..#.#..#..........###...#.#...
+.......#.##....#........##.#...
+.####.#.#...#.#...##.##.....###
+........#.#...#.#..##...##.....
+....##.##......#.##.........#..
+.#..#...#.#...........#........
+.......#..........#....#...#...
+..###.#.###..#..#.....#..##....
+.#..........#.......##...#.....
+.#.....#...#........#...#.##..#
+.#..#.......#..#.......#.#.#...
+....#..##.#...##...#.#....#....
+.....#.........#..#..#....#....
+..#.#..##....#..#..##.#.#.....#
+........#.#...###....#.#.#.....
+.#.....#.......#..###.#........
+.......#...#.#...#...##........
+##.............#.#.....#.#..#..
+.#....#.......#.#.......#..##..
+#.....#........#..##..##.......
+...........#.........###......#
+....#.##...#.#...#...#....#..##
+......#..##......#......#.##.#.
+......##....####...###...#.....
+#....#..........#.#.##.....#..#
+....#.#...........#.#.#.#.#...#
+....####.....##...#..##..#...#.
+#....#.###..###.....#..###.....
+..##.........#......#...##.#...
+..#.....#.#...#.##.#...#..###.#
+..#.##..##........#.......#.###
+.....#..........#.....#....#...
+.......##..##..###.......#####.
+..###......#.#....###....##...#
+#..##.....#..###...#.....##.##.
+#..#..##.##.###.####.##.#......
+.#.#......#.##......#..#......#
+..###.....#.#......#.#.####....
+#..............#..#.#...#.###..
+...#..#.##..........##.#...#.##
+.#.#.#.........#....#.#..#.....
+..#.##..#...#..#...#......#....
+.......#...#.##.#.#..#...##..#.
+..........#.####...#........#.#
+....#...#....##.#.........#.#..
+##.#..#.......###....#..#..#.#.
+..##.....#..#.#.#.####......#..
+.#.....#..........#..#..#.#....
+......#.#.......#.#...#..#..#..
+...#...............#....#...#..
+##.......#.........#.......#...
+...#.......###...#.#...#.......
+#...###....#....##....#....#...
+...#....##..#.#.............##.
+.....#.#.#..#......#...#.#..#..
+.##....#..##..#####..##.....##.
+....##.#.#..#.....#.#...#......
+...#.....##.#.#..##..#.#.......
+.......#..#..#..........#......
+.......#...#..#.........#.##...
+..#..#..#...##..#.#....#......#
+..#....#...#.#......#........#.
+.#...#..#...#.#..........#.....
+#..#...####..#......##.##.#.#..
+.#...#.#...#.#.....#..##.#.....
+..#.##.#......#.........##...#.
+###..............#.............
+...#...###....#..#.............
+.##....#......#..#.....#..#..#.
+.#..........#.....##...#..#....
+....##..#.#......###.##......#.
+.#..##.#.##.#...##.#......###.#
+#..###.#...###..#........#.#...
+#..#.#.#..#...###.##.##..#..#..
+#.#..#....#.........##......#..
+....###.....###....#...........
+....#..##.##....##..#.....#....
+.#.....#....####...#..##.#..###
+.........##..#......#.#...##...
+.##.......#.....#.###.#..#.#..#
+.....#.#...###.....#......####.
+##.#...#......#.#.#..#.####...#
+.#.##.....#..#..#.............#
+.#..###..#..#......#..##......#
+.......#.#........##.....#.#...
+#....#...#..###..#.#.....#.##..
+.##.....#.#....###..#.....##...
+...##....#....#...#....#.#.#...
+#####..#...........###....#...#
+.#.......##.##.....#....#......
+.#..#.#...#..#......#...#..#.#.
+....#.....##...#####..#...#...#
+###.##...#.#............#....#.
+.....#...#........##.........#.
diff --git a/input/day4.txt b/input/day4.txt
new file mode 100644 (file)
index 0000000..b17cdcd
--- /dev/null
@@ -0,0 +1,1023 @@
+ecl:#eef340 eyr:2023 hcl:#c0946f pid:244684338 iyr:2020 cid:57 byr:1969 hgt:152cm
+
+pid:303807545 cid:213 ecl:gry hcl:#fffffd
+eyr:2038 byr:1951
+hgt:171cm iyr:2011
+
+hcl:#c0946f byr:1933 eyr:2025 pid:517067213 hgt:173cm
+ecl:hzl
+iyr:2018
+
+pid:5253256652 byr:2009 hgt:152cm iyr:1989 eyr:1968 hcl:64cb63 ecl:hzl
+
+iyr:2013
+pid:862607211 eyr:2020
+hgt:174cm
+byr:1990
+ecl:blu hcl:#888785
+
+ecl:grn byr:1955
+pid:608098408 eyr:2027 iyr:2020 hcl:#b6652a cid:264
+hgt:181cm
+
+byr:1998 ecl:hzl eyr:2021
+hcl:#866857 hgt:189cm iyr:2030
+pid:013735467
+
+pid:075417314 hcl:#b6652a byr:1957
+iyr:2011
+hgt:154cm
+eyr:2025
+ecl:amb
+
+iyr:1993 hgt:74cm eyr:1960
+byr:2029
+hcl:293244 ecl:#3cb5e5 pid:4861232363
+
+hgt:153cm hcl:#6b5442 pid:065240897 byr:1932
+cid:196 ecl:blu eyr:2028 iyr:2019
+
+eyr:2024 ecl:amb
+hcl:#866857 byr:1922 pid:496904942 hgt:164cm iyr:2020
+
+pid:847705161 byr:1951 cid:124 iyr:1991
+eyr:2028 ecl:dne
+hcl:6b2d28 hgt:172cm
+
+byr:2007 iyr:2029 ecl:hzl eyr:2026 hgt:168in
+hcl:z
+pid:63151612
+
+iyr:2027 hgt:172in
+cid:174 byr:2014 hcl:z eyr:1921
+ecl:grt pid:#cebdc2
+
+ecl:amb hcl:#d09c0f
+iyr:2015 hgt:156cm eyr:2026 byr:1962
+pid:086120872
+
+cid:125
+pid:837849996
+byr:1958 ecl:brn hgt:166cm hcl:#ceb3a1 eyr:2028 iyr:2012
+
+ecl:gry hgt:180cm
+pid:939059935 eyr:2023 byr:1977 hcl:#b6652a
+
+hgt:190in byr:2029 eyr:1984
+ecl:gry hcl:z pid:055092916 iyr:2010
+
+hgt:63in ecl:blu byr:1940 iyr:2012 eyr:2029 hcl:#7d3b0c
+pid:163033394
+
+eyr:2040 pid:181cm
+iyr:1928 hgt:76cm hcl:d8aafb byr:1949 cid:275 ecl:xry
+
+hcl:#cfa07d ecl:oth byr:1948 eyr:2021
+pid:719690182 hgt:179cm iyr:2020
+
+byr:1939 cid:266
+eyr:2026 iyr:2017 hcl:#f116d2
+ecl:hzl pid:522421825
+hgt:68in
+
+hcl:z hgt:61in
+cid:115 pid:180cm iyr:2030 byr:2014 eyr:2032 ecl:hzl
+
+ecl:xry
+eyr:2028 pid:191cm iyr:2015 hgt:150cm byr:2029
+
+eyr:2027
+hcl:#a97842 pid:997937480 hgt:61in iyr:2019
+byr:1921
+ecl:grn
+
+hgt:163cm
+pid:912318455 iyr:2016 byr:1988 ecl:brn hcl:#a97842 cid:221 eyr:2029
+
+cid:333 hcl:#c0946f
+hgt:163cm iyr:2018 eyr:2027 ecl:oth
+
+cid:70 hcl:#c0946f
+pid:961507902 byr:1949 ecl:grn iyr:2017 eyr:2029 hgt:69in
+
+hgt:169cm ecl:amb
+iyr:2013 pid:496169901
+byr:1943 eyr:2028 hcl:#ceb3a1
+cid:249
+
+ecl:blu cid:343
+iyr:1998 hgt:154in hcl:#efcc98 byr:1972
+
+pid:508213120 iyr:2012 eyr:2025 hcl:z hgt:70cm byr:1976
+ecl:brn
+
+iyr:1924
+eyr:2005
+hcl:z
+hgt:167 pid:154cm
+byr:2007
+
+pid:761333244 hgt:180cm iyr:2017 hcl:#18171d eyr:2021
+byr:1983
+cid:67 ecl:oth
+
+eyr:1993
+byr:2003
+hcl:#602927
+ecl:grt
+cid:84 hgt:178
+pid:1847086637 iyr:2026
+
+hcl:#866857 hgt:162cm pid:483774485 iyr:2010
+byr:1946 eyr:2028 ecl:gry
+
+pid:726639691 eyr:2028
+hgt:171cm hcl:#ff65a6
+iyr:2011 byr:1989
+
+hcl:z iyr:2026 ecl:xry
+eyr:2037 byr:2005 pid:#f09a0f
+hgt:68 cid:156
+
+hgt:71in ecl:blu eyr:2026 hcl:#18171d
+byr:1981 iyr:2017
+pid:698636544
+
+eyr:2021
+byr:1957 ecl:brn pid:365378126 cid:93 iyr:2019 hcl:#18171d hgt:179cm
+
+byr:1996 iyr:2014 hgt:64cm
+eyr:2034
+hcl:z
+
+pid:629486472 cid:140
+hgt:192cm eyr:2020 hcl:#b6652a iyr:1988 byr:2021 ecl:brn
+
+byr:1955 iyr:2015 eyr:2030
+ecl:gry hcl:z pid:6550198754
+hgt:158cm cid:305
+
+ecl:gry hcl:#a97842
+hgt:176cm eyr:2022 pid:810146585 iyr:2020
+
+byr:2027 hcl:#cfa07d
+iyr:2011 ecl:#f07598
+cid:293
+hgt:150cm pid:#fa948d eyr:2029
+
+eyr:2028 iyr:2013 hgt:69in ecl:gry pid:317170371
+cid:147 hcl:#bfe1f1
+
+byr:1976
+pid:059341891 hgt:174cm
+ecl:oth
+eyr:2029 iyr:2017 hcl:#733820
+
+iyr:2018 hcl:#ceb3a1 hgt:188cm cid:308
+pid:792826885 byr:1948 ecl:blu eyr:2028
+
+iyr:2017 cid:94 hcl:#95c7dc
+pid:231757803 eyr:2022
+byr:1992 hgt:153cm ecl:amb
+
+eyr:2027
+iyr:2011 hgt:186cm
+ecl:brn pid:996347346 hcl:#866857
+byr:1960
+
+eyr:2025 byr:2001
+ecl:blu pid:755715478 iyr:2019 hgt:61in
+
+ecl:gry
+eyr:2038
+hgt:81 hcl:z iyr:2028
+cid:214 byr:1965
+
+pid:412744447 byr:1979 hcl:#cfa07d ecl:blu
+eyr:2029 cid:157
+hgt:180in iyr:1948
+
+hgt:170cm
+pid:623557081 byr:1924 eyr:2024 hcl:98d623 iyr:2012 ecl:amb
+
+cid:311 ecl:grn
+iyr:2011 byr:1982
+eyr:2002 hcl:#ef318a
+pid:0548169957
+hgt:87
+
+eyr:2030 hcl:#733820 iyr:2016 pid:558470391
+byr:1936 ecl:oth hgt:185cm
+
+iyr:2019
+ecl:amb byr:1949
+pid:376468392
+hgt:178cm
+
+pid:019195245
+ecl:grn hgt:171cm
+byr:1978 iyr:2011 eyr:2022 hcl:#733820
+cid:134
+
+hcl:#623a2f hgt:192cm eyr:2026 byr:1977
+ecl:grn cid:308
+
+ecl:hzl pid:715816358 hgt:69in iyr:2014 hcl:#623a2f
+byr:1996
+eyr:2027
+
+iyr:1947
+ecl:#39a697
+hgt:183cm byr:2029
+eyr:2022 pid:7951883913
+hcl:z
+
+ecl:gry byr:1950
+hcl:#18171d hgt:168cm iyr:2020 pid:677187333 eyr:2027
+
+byr:1969 ecl:blu hcl:#18171d iyr:2011
+hgt:162cm
+pid:701349891
+
+cid:269 byr:1966
+iyr:2011
+pid:905940527 eyr:2023 hgt:190cm
+ecl:brn hcl:#ceb3a1
+
+eyr:2027 pid:454627395 ecl:brn
+hcl:#ceb3a1 cid:302 hgt:184cm
+byr:1959
+iyr:2015
+
+iyr:2011
+eyr:2028
+hgt:166cm
+hcl:#733820 byr:1938 ecl:blu pid:857984986
+
+hcl:#c0946f ecl:brn pid:226877822
+hgt:182cm byr:1998
+cid:160
+
+hgt:186in pid:26499164 byr:2017
+hcl:z
+iyr:1998 eyr:2026
+cid:331 ecl:#236556
+
+pid:328866543
+hgt:165cm eyr:2039 iyr:1987 ecl:amb byr:2018 hcl:z
+
+iyr:2016 eyr:2036 hcl:#888785 byr:1976 pid:160402352 hgt:76cm ecl:blu
+
+ecl:blu
+hcl:#fffffd eyr:2025 hgt:66in pid:979788527
+byr:1957 iyr:2013
+
+ecl:grn pid:279357265 iyr:2019 eyr:2021 byr:1953
+hgt:177cm hcl:#c0946f
+
+ecl:oth hcl:z eyr:2025 byr:1949 hgt:189cm iyr:2020 pid:901383503
+
+byr:2019 hcl:#733820
+pid:31022828 eyr:1929
+hgt:75cm iyr:2012 ecl:grn
+
+pid:080462937
+ecl:blu hcl:#866857
+cid:102
+iyr:2013 eyr:2025 byr:1975 hgt:64in
+
+iyr:2016
+eyr:2028
+cid:125
+byr:1979 hcl:#866857
+ecl:brn hgt:173cm pid:814947616
+
+hcl:z byr:2020 pid:#c3b54b hgt:174in eyr:2038
+iyr:2016
+ecl:gmt
+
+cid:132
+iyr:1958
+pid:61543452 hcl:z
+ecl:zzz eyr:2039 byr:2006
+
+cid:55 eyr:2022 byr:1954 iyr:2015
+hgt:188cm hcl:#a97842 pid:49143631 ecl:amb
+
+hgt:152cm
+byr:1982
+iyr:2013 ecl:blu
+hcl:#341e13
+eyr:2026 pid:440841976
+
+iyr:2019 ecl:blu pid:553456616 hcl:#733820 hgt:160cm byr:1932 eyr:2030
+
+byr:1980 hgt:169cm hcl:#7d3b0c cid:312 iyr:2010
+eyr:2026 pid:028550304 ecl:grn
+
+ecl:amb eyr:2021 iyr:2014 hgt:71in pid:986053283 byr:1981
+
+ecl:oth
+eyr:2023 hcl:#888785
+byr:1949
+iyr:2016 pid:699325656
+
+hgt:63cm cid:297 eyr:2020 pid:990390922
+hcl:#602927 ecl:lzr
+iyr:2012 byr:2016
+
+hcl:9ea2fa eyr:2023 pid:088680493
+byr:1998 iyr:2017 ecl:utc hgt:170cm cid:175
+
+cid:316 iyr:2016 eyr:2026 hcl:#79ff1d hgt:65in
+byr:1997 pid:215466710 ecl:oth
+
+cid:213 byr:1983 hcl:#888785 iyr:2016 pid:767747981 eyr:2025
+ecl:hzl hgt:168cm
+
+eyr:2030 byr:1972
+cid:282
+ecl:gry hgt:178cm
+hcl:#a97842
+iyr:2018
+
+hcl:#6b5442 ecl:amb
+eyr:2028 cid:104 hgt:159cm pid:446429120 iyr:2012
+byr:1938
+
+byr:1940 hgt:178cm ecl:oth
+hcl:#ceb3a1
+pid:845683663 iyr:2015 eyr:2024
+
+byr:1940 pid:496262233
+hgt:184cm hcl:#b6652a
+ecl:grn cid:152 iyr:2012 eyr:2029
+
+hgt:185cm pid:455744229 byr:1954 eyr:2022 ecl:gry hcl:#6b5442 iyr:2012
+
+hgt:182cm byr:1966 eyr:2028 ecl:#a5b7fc
+iyr:2029
+
+pid:343591896
+cid:58
+ecl:hzl
+eyr:2022 hgt:180in byr:2021
+hcl:#6b5442
+
+ecl:utc hcl:#b6652a
+pid:635147657 byr:2020
+eyr:2022 hgt:157cm iyr:2018
+
+ecl:grt cid:312 iyr:1959 pid:154262836
+hgt:171cm
+hcl:#fffffd
+eyr:2024
+byr:1982
+
+hcl:#7a12b4 pid:223424149 ecl:hzl hgt:175cm
+byr:1930 iyr:2010 eyr:2028
+
+hcl:#c0946f pid:633476454 eyr:2026 iyr:2011
+byr:1934
+hgt:186cm
+cid:289 ecl:gry
+
+hcl:#fffffd pid:376300524 hgt:155cm byr:1964 iyr:2017 eyr:2021 ecl:grn
+
+hcl:a5d4dc byr:2006 cid:165 ecl:#db800f iyr:2029 pid:0199789970 eyr:1961 hgt:61cm
+
+eyr:2027 hgt:170cm iyr:2010
+hcl:#c0946f
+ecl:grn pid:415726530
+byr:1985
+
+cid:197 byr:1957 hgt:192in hcl:#a97842 ecl:hzl eyr:2029 pid:958973455 iyr:2011
+
+iyr:2015 pid:933689314 hgt:162cm ecl:amb
+cid:122 eyr:2021
+hcl:#6b5442 byr:1973
+
+eyr:2026 hgt:172cm
+iyr:2012
+ecl:brn hcl:#733820 pid:004474632
+byr:2000
+
+hgt:191cm eyr:2030 byr:1999 pid:9155071477 iyr:2026 hcl:#602927 cid:315
+ecl:grn
+
+iyr:2010 pid:182884251 hcl:#18171d hgt:154cm
+eyr:2020
+byr:1926 ecl:oth
+
+iyr:2019 eyr:1920 pid:132839546
+cid:283 hgt:188in hcl:#efcc98 byr:2027
+
+iyr:2011 hgt:177cm
+cid:117 byr:1976
+ecl:gry
+hcl:#623a2f eyr:2030 pid:134592046
+
+byr:1968 hgt:146
+iyr:2013 hcl:eefdc4 eyr:2028
+ecl:xry pid:722120008
+
+iyr:2016 byr:1941 hgt:67cm cid:51 hcl:#b6652a ecl:hzl eyr:2034 pid:994005715
+
+hcl:#cfa07d ecl:oth
+hgt:182cm eyr:2021 pid:612583941
+byr:1983
+iyr:2019
+
+byr:1922
+hcl:#602927 hgt:161cm ecl:gry eyr:2020 pid:190170808 iyr:2013
+
+hgt:63cm cid:136
+iyr:1999
+pid:8235748647 hcl:z
+byr:2022 eyr:1933
+ecl:#304383
+
+cid:273 ecl:blu hcl:z
+iyr:2011 byr:2007
+eyr:2020
+pid:942473857 hgt:178in
+
+ecl:grt byr:2029 hgt:187in eyr:2030 cid:160
+hcl:#efcc98 pid:#39f22b
+iyr:1966
+
+byr:1978 ecl:oth iyr:2011 hgt:164cm eyr:2027 hcl:#cfa07d
+
+hgt:75cm hcl:#1e8137 byr:1986 ecl:blu eyr:2022 pid:796688423
+iyr:2012
+
+eyr:2026
+ecl:#3013af hcl:z pid:#e8597f hgt:123 iyr:2025 byr:1942
+
+hcl:z hgt:177in
+iyr:1993 pid:#4c9348 byr:2008 eyr:1989
+
+pid:123524366 byr:1935
+hgt:156cm hcl:#7d3b0c
+iyr:2020 ecl:brn eyr:2020
+
+hcl:z eyr:2038 pid:7663741757 ecl:gmt hgt:174
+byr:2008 iyr:1939
+cid:225
+
+hcl:#888785 hgt:172cm
+ecl:oth pid:500711541 eyr:2027
+byr:1931 iyr:2012
+
+pid:575447108 ecl:amb byr:1943
+hcl:#888785 hgt:173cm eyr:2024
+
+eyr:2021 iyr:2010 pid:178773264 hgt:157cm byr:1965 hcl:#bb7bcf ecl:amb
+
+iyr:2023 ecl:#35bd84 byr:2020
+hgt:72in
+eyr:2037
+hcl:#6b5442
+pid:421311669
+
+byr:1921 iyr:2011
+pid:146088688
+eyr:2023 hcl:#15ed24 hgt:183cm
+ecl:brn
+
+hcl:#b6652a cid:243
+byr:1993 eyr:2024
+iyr:2014 hgt:172cm
+pid:771275594
+
+eyr:2024
+hcl:#cfa07d pid:858807920 cid:293 hgt:157cm ecl:hzl iyr:2013 byr:1984
+
+ecl:blu hgt:193cm cid:73 hcl:#18171d eyr:2026
+iyr:2016 pid:124151812 byr:1945
+
+ecl:amb iyr:2018
+pid:214555737 hgt:157cm
+eyr:2028
+byr:1925 hcl:#866857
+
+pid:5633250409
+hcl:4ef7d8
+byr:2004 iyr:1958
+hgt:96
+eyr:2038 ecl:xry cid:274
+
+byr:1972 pid:401239851 hgt:184in hcl:z iyr:2017
+eyr:2030 ecl:#cb289a cid:140
+
+hgt:175cm
+byr:1926 hcl:#cfa07d eyr:2029 ecl:gry pid:325039730 iyr:2017
+
+cid:101 hgt:166cm byr:1986 ecl:amb
+hcl:#7d3b0c iyr:2013
+pid:413769688 eyr:2024
+
+hgt:159cm cid:311
+byr:1993 eyr:2028 pid:188cm ecl:oth hcl:#602927 iyr:2013
+
+pid:565831038
+ecl:amb
+hgt:155cm hcl:#fffffd cid:335 iyr:2016
+eyr:2029 byr:1997
+
+hgt:122
+byr:2022
+eyr:2028 ecl:blu iyr:2017 pid:269710626 hcl:#b6652a
+
+cid:196
+byr:1953 hcl:#6b5442 iyr:2010
+pid:216121215 hgt:188cm ecl:blu
+
+iyr:2011 hcl:98166c hgt:62cm
+byr:2028
+eyr:2024
+pid:792478385 ecl:grn
+
+hcl:#efcc98 iyr:2012 pid:020039675 eyr:2021 byr:1974 hgt:156cm
+ecl:hzl
+
+cid:123 hcl:#7d3b0c
+byr:2026 eyr:2004 iyr:2012 ecl:oth pid:349203133 hgt:160cm
+
+pid:085461475
+byr:1962 iyr:2020 hcl:#623a2f
+eyr:2024
+cid:80 ecl:brn
+hgt:154cm
+
+ecl:oth hgt:156cm iyr:2016
+hcl:#6b5442
+byr:1973
+eyr:2021 pid:539898580
+
+iyr:2026 hgt:191cm
+hcl:z
+byr:1930 pid:#abc2f0 ecl:blu cid:242 eyr:2024
+
+cid:167
+hgt:179cm
+iyr:2017 eyr:2021 pid:756797571 byr:1949 ecl:brn hcl:#a97842
+
+byr:1975 eyr:2030
+ecl:oth hgt:169in pid:4031206183 hcl:#733820 iyr:2017 cid:244
+
+ecl:#54cfeb hgt:152cm
+iyr:2026 hcl:36b4b9
+byr:2030
+pid:#fa1cb9 eyr:1964
+
+byr:1974 cid:99 hcl:9e3296
+eyr:2032
+pid:686747414
+iyr:1995
+ecl:amb
+
+iyr:2030 ecl:oth hcl:z byr:1979
+pid:114661006 hgt:191cm eyr:1941
+
+hcl:#341e13 iyr:2014 byr:1953
+pid:188326193 ecl:gry hgt:189cm cid:283
+eyr:2030
+
+byr:1975
+pid:092061576 hgt:73in eyr:2023
+ecl:brn cid:227 hcl:#5e9d91
+iyr:2011
+
+hcl:#7d3b0c hgt:167cm cid:141
+eyr:1957 byr:2012 ecl:gmt iyr:2019 pid:#1b7c8a
+
+hgt:168cm hcl:#c0946f pid:599500784 byr:1930 eyr:2023 ecl:hzl cid:113
+iyr:2013
+
+eyr:2030 hcl:#b4cb4f
+hgt:68in
+ecl:brn byr:1923 pid:699162086
+
+iyr:2013
+ecl:dne hcl:z eyr:1971
+pid:#580add byr:2020
+hgt:190cm
+
+hcl:#ceb3a1
+byr:1976 eyr:2020
+cid:162 iyr:2016
+hgt:168cm
+ecl:hzl
+
+pid:050478613 hgt:59cm
+iyr:2017
+ecl:grn byr:2030 hcl:#cfa07d eyr:2025
+
+pid:352943968 eyr:2025 byr:1980 iyr:2014 ecl:gry hcl:#c0946f
+hgt:193cm
+
+pid:328621931 cid:310 hgt:170cm
+hcl:#733820 byr:1955
+iyr:2016
+eyr:2028 ecl:hzl
+
+hcl:#866857
+pid:095858739 byr:1956
+iyr:2018 hgt:193cm
+ecl:hzl
+eyr:2029
+
+pid:70973661 eyr:2039 ecl:gry
+iyr:2016
+cid:291
+hcl:#623a2f hgt:97
+
+hcl:4d51a8
+eyr:1978
+ecl:gmt
+byr:2029 iyr:2022
+pid:34507041 hgt:61cm
+
+byr:1989 ecl:brn pid:769582914
+eyr:2026 cid:218
+iyr:2020 hcl:#866857 hgt:184cm
+
+ecl:brn
+iyr:1998 cid:227
+hgt:162in
+byr:2026
+hcl:#602927 eyr:2027 pid:236998728
+
+ecl:gry byr:1984 hgt:157 cid:295
+eyr:2020
+iyr:2018 hcl:#733820
+pid:037871534
+
+hgt:166cm hcl:#c0946f pid:412146401
+iyr:2011
+eyr:2022
+byr:1938
+ecl:brn
+
+ecl:brn cid:95 byr:1981 eyr:2030 hcl:#efcc98 pid:777041035 hgt:152cm iyr:2011
+
+eyr:2024 hgt:89 pid:3761913749 iyr:1939 byr:1967 hcl:a222f6 cid:165 ecl:#7fe574
+
+cid:339 hgt:156cm
+ecl:brn iyr:2013 byr:1951 hcl:#efcc98 eyr:2026
+pid:863566946
+
+ecl:brn hcl:#6b5442 eyr:2023
+pid:787129723 byr:1949 iyr:2015
+
+pid:#7f615a
+cid:202 hcl:#6b5442 eyr:2028
+ecl:#a5419c
+hgt:75cm
+iyr:2011
+byr:2001
+
+pid:864001133
+cid:236
+byr:1943 hcl:#733820 ecl:dne eyr:2025 hgt:171cm iyr:1989
+
+pid:193073684 ecl:grn byr:1962 iyr:2014
+hcl:#cfa07d hgt:189cm
+cid:321 eyr:2029
+
+byr:1959
+hcl:#b6652a
+eyr:2026
+hgt:159cm pid:815014918 iyr:2011 ecl:amb
+
+iyr:2017 hgt:182cm
+hcl:#a97842 eyr:2023 ecl:grn pid:656177536
+byr:1973
+
+eyr:1923 ecl:grn
+cid:138 iyr:2020
+hgt:164cm byr:1958 hcl:#c0946f pid:783366277
+
+iyr:1932 hgt:172 ecl:blu
+hcl:#733820 byr:1962 pid:554221464
+
+cid:169 pid:922622614
+byr:1942 hcl:#ceb3a1 hgt:169cm eyr:2024
+ecl:gry iyr:2017
+
+cid:219 ecl:grn
+hgt:156cm byr:1998 eyr:2021
+iyr:2017 hcl:#ceb3a1 pid:450186263
+
+ecl:amb hgt:179cm pid:768428582 iyr:2010 eyr:2023 byr:1952 hcl:#fffffd
+
+eyr:2024
+hgt:193cm
+iyr:2017 pid:469033795 byr:1979 hcl:#18171d cid:67 ecl:amb
+
+iyr:2016 byr:1937 pid:798267514 hgt:155cm hcl:#866857 eyr:2026
+ecl:oth
+
+hgt:172cm hcl:#866857 iyr:2018 pid:662186551
+byr:1996
+eyr:2025 ecl:amb
+
+pid:2854521962
+iyr:2021
+ecl:zzz
+hcl:12f1ba eyr:2037 hgt:159cm
+byr:1937
+
+ecl:oth pid:488050418 byr:1927 hcl:#a97842 hgt:153cm iyr:2013 eyr:2024
+
+pid:119536312 ecl:#2036ad
+hcl:543178 iyr:2020
+byr:2013
+hgt:177cm
+eyr:2022
+
+pid:788908662 hcl:#602927 eyr:2029
+ecl:oth byr:1930
+iyr:2020
+hgt:179cm
+
+byr:1972
+pid:053386972 iyr:2014 ecl:grn hgt:65in hcl:#cfa07d
+
+pid:9828921035 ecl:blu
+hcl:z hgt:152in
+eyr:1949 byr:2010
+
+cid:157 pid:097910554 byr:1999
+hgt:159cm hcl:#6b5442 ecl:blu eyr:2024
+iyr:2010
+
+hcl:#a97842
+eyr:2040 ecl:#f8ad77
+hgt:173cm
+byr:2019 iyr:2010
+pid:#d16a6e
+
+ecl:dne hgt:191cm iyr:2020 hcl:#b6652a
+eyr:2021 pid:571971509 byr:1983
+
+hcl:#18171d iyr:2016 pid:159074622
+eyr:2027 hgt:163cm byr:1954
+cid:257
+
+pid:243560302 cid:58
+hcl:53a4cf byr:2012
+ecl:#fdbfb8 eyr:1920 hgt:179 iyr:2026
+
+pid:040606106 eyr:2030 hgt:188cm
+byr:1969
+iyr:2012 hcl:#ceb3a1 ecl:amb
+
+eyr:2022
+hgt:175cm hcl:#b6652a byr:1967 pid:269969031
+iyr:2018
+
+hcl:#18171d cid:278 byr:1931
+pid:134809791
+eyr:2035 ecl:#44e6cd iyr:1993
+
+hgt:177in
+ecl:utc cid:289
+iyr:1923
+hcl:13a67a pid:3045345984 byr:2030 eyr:1944
+
+pid:839901650 eyr:2030
+ecl:grn
+byr:2015 iyr:2017 hgt:168 hcl:131f4e
+
+iyr:2015 pid:529736732 ecl:brn hgt:176cm
+eyr:2026 byr:1952 hcl:#6b5442
+
+hcl:#c0946f
+cid:323 pid:303966428 iyr:2019
+eyr:2027 hgt:170cm
+byr:2001
+ecl:brn
+
+pid:193678728 hgt:72in eyr:2027 iyr:2015 byr:1951 ecl:gry hcl:#18171d
+
+eyr:2026 cid:283
+iyr:1938 pid:687430885
+hgt:186cm
+byr:1949 ecl:#521638 hcl:d13b2f
+
+eyr:2024 hcl:#ceb3a1 iyr:2013 ecl:brn
+hgt:168cm pid:792088241
+
+hcl:#888785 ecl:amb
+byr:2009 iyr:2015
+hgt:151cm
+eyr:2020 pid:223927808
+
+byr:1926
+pid:717704850
+hcl:#623a2f eyr:2022 hgt:64in iyr:2018 ecl:gry
+
+eyr:2023 byr:1954
+hgt:169cm
+ecl:hzl
+iyr:2010 pid:116868997 hcl:#18171d
+
+ecl:hzl byr:1965 hcl:#a97842 iyr:2011 pid:506354451 hgt:172cm eyr:2029
+
+eyr:2022 pid:994565705
+iyr:2013 ecl:brn hcl:#623a2f
+byr:1979
+
+iyr:2011
+byr:1931 hgt:183cm hcl:#284f26 cid:306
+ecl:amb eyr:2021
+pid:977533079
+
+eyr:2027
+iyr:2011 ecl:gry
+byr:1993
+pid:272334781 hgt:161cm hcl:#9a35b6
+
+eyr:2026
+hcl:#602927 ecl:blu
+pid:212300161 byr:1946
+cid:193 iyr:2020 hgt:157cm
+
+pid:538594567 byr:1976 eyr:2027 hcl:#efcc98 iyr:2011 hgt:154cm ecl:oth
+
+byr:1949
+hcl:z ecl:#ce67aa
+eyr:1942 pid:7978941589 iyr:2025 hgt:161in
+
+hcl:#c0946f
+cid:55
+byr:1963 ecl:blu hgt:161cm
+pid:547120453 iyr:2015 eyr:2021
+
+hgt:173cm eyr:2022
+iyr:2016 byr:2001
+ecl:hzl pid:239803460
+
+hcl:#b6652a ecl:oth eyr:2021 hgt:167cm pid:401266644 iyr:1969 byr:1974
+
+eyr:2030 pid:581963885
+hcl:#64cb23
+ecl:blu
+byr:1928 hgt:181cm iyr:2018
+
+pid:186338247
+ecl:hzl hgt:193cm hcl:#ceb3a1
+eyr:2022 iyr:2010
+
+iyr:2015 ecl:gry hgt:159cm eyr:2027 hcl:#ceb3a1
+byr:1925 pid:715902111 cid:149
+
+iyr:2018 hcl:#623a2f eyr:2020 hgt:162cm ecl:grn cid:135
+byr:1922
+pid:373216777
+
+eyr:2020 pid:749899012 hcl:#888785 ecl:brn
+iyr:2010 cid:225 hgt:172cm
+byr:1972
+
+iyr:2020 hgt:178cm ecl:grn hcl:#18171d pid:613792489 cid:240
+eyr:2028
+byr:1972
+
+iyr:2015 byr:1938 eyr:2026
+cid:113 ecl:grn
+pid:846231640 hgt:161cm
+hcl:#b6652a
+
+ecl:gry
+hcl:#ceb3a1
+byr:1956 cid:338 pid:936012518
+hgt:62in
+eyr:2029 iyr:2016
+
+pid:730866353 ecl:brn byr:1986
+iyr:2014
+hgt:190cm
+eyr:2021 hcl:#a97842 cid:126
+
+eyr:2021
+cid:180 pid:958310635 ecl:brn iyr:2015 hgt:189cm hcl:#efcc98
+
+hgt:188cm ecl:hzl pid:179001863 iyr:2016 eyr:2029 hcl:#341e13 byr:1932
+
+cid:77 eyr:2027 hcl:#623a2f iyr:2016 ecl:brn hgt:170cm
+byr:1947
+
+hgt:66in pid:617518313 iyr:2013 byr:1977 hcl:#b6652a ecl:brn eyr:2025
+
+pid:787861420
+iyr:2014 hcl:#623a2f hgt:61in
+ecl:oth cid:78
+eyr:2022 byr:1975
+
+ecl:hzl
+iyr:2017 eyr:2028 hcl:#602927
+byr:1958 pid:985208714
+hgt:160cm
+
+byr:2002
+iyr:2013
+hcl:#341e13 pid:188110633 ecl:gry hgt:169cm
+eyr:2025
+
+byr:1981
+eyr:2028
+hcl:#341e13 ecl:amb hgt:160cm cid:121
+iyr:2015 pid:963848397
+
+iyr:2013 hcl:#866857 pid:#db8648 eyr:2021 ecl:gry
+byr:1975
+hgt:153cm cid:114
+
+hgt:109
+cid:287 hcl:#6b5442
+iyr:2028 byr:1926 eyr:2036 pid:2378208387
+ecl:#245a62
+
+pid:857722366
+byr:1975 eyr:2027
+ecl:grn iyr:2019 hcl:#0afad1
+hgt:66in
+
+byr:1935 hcl:#cfa07d hgt:173cm ecl:brn eyr:2021 iyr:2019
+
+cid:66 eyr:2024 hcl:#efcc98 byr:2002 iyr:2010
+hgt:176cm pid:697153153 ecl:amb
+
+iyr:2019
+hcl:#cfa07d ecl:blu
+pid:695914972
+eyr:2024
+hgt:158cm
+byr:1943
+
+ecl:xry hgt:62in
+pid:14733148 cid:148
+iyr:2016 byr:1925 hcl:#6b5442
+eyr:2028
+
+iyr:2025
+cid:53 hgt:132 ecl:gmt hcl:159b19
+pid:156cm
+byr:2025 eyr:2001
+
+hcl:#623a2f ecl:oth byr:1974 iyr:2018 hgt:161cm eyr:2029 pid:6826285172
+
+ecl:gry
+byr:1956 hcl:#7d3b0c hgt:170cm iyr:2020
+
+eyr:2020
+pid:#946a88 hgt:186cm hcl:#733820 byr:1946 ecl:#016645 iyr:2015
+
+hgt:181cm hcl:#888785 iyr:2013 pid:634152817
+byr:1982 cid:245 ecl:grn eyr:2021
+
+ecl:brn
+pid:737531770 iyr:2010
+eyr:2020
+byr:1929 hgt:189cm hcl:#c0946f
+
+cid:158 iyr:2019 hcl:#341e13 eyr:2027 ecl:amb
+byr:1986 pid:834976623
+
+pid:976934668 cid:61 eyr:2020 iyr:2020
+hgt:76in byr:1927 ecl:amb
+hcl:#e05ee3
+
+pid:526042518 iyr:2019 eyr:2027 hcl:#623a2f byr:1976 ecl:amb
+
+pid:279367290 hcl:#a97842 hgt:158cm
+eyr:2027
+byr:1959
+iyr:2020
+
+ecl:xry byr:2028
+pid:357216861 hcl:#a97842 eyr:2024 hgt:66cm
+iyr:2012
+
+hgt:188in
+ecl:lzr cid:64 eyr:1958 byr:2014 hcl:z pid:285207570 iyr:2026
+
+eyr:1973 iyr:2017 ecl:oth cid:282 pid:695814158
+hcl:z
+
+iyr:2010 pid:661168409
+hcl:#53c696
+hgt:186cm ecl:amb
+byr:1960
+eyr:2029
+
+eyr:1982 hgt:169cm
+iyr:2002 byr:2025 hcl:327f93 pid:831648100
+
+byr:1967 ecl:oth
+eyr:2021
+hcl:#602927 iyr:2014
+pid:274974402 hgt:183cm
diff --git a/input/day5.txt b/input/day5.txt
new file mode 100644 (file)
index 0000000..05530c3
--- /dev/null
@@ -0,0 +1,846 @@
+FFBBBBBLLR
+BFBFBBBRLL
+FBFFFFBLRL
+BFFBFBBRLR
+FFBBFFFRRL
+FBFBFFBLLR
+BFFBFBFLLR
+BFFBBBBRRL
+FBBBFBFLRL
+BFFBFBBRLL
+FFBBFBBRRR
+BBFBBBBLRL
+FFBFBBFLRL
+BBFFFBBLLR
+FFBBBFFRLL
+FBFBFFBLRL
+BFFFBFBLRL
+FFBFBFFRRL
+BBBFFFBRRR
+BBFFBBFLLL
+BFBBBFBLRR
+FBFBFFBRRL
+FFFBBFBLLR
+FBBFBFFRLR
+FBFFFFBRRL
+BBFFFFFLLR
+BFBFFBBLLR
+FFBFBBBRRR
+FFBBBBBRLR
+BBFFBFFRLR
+BBFBBBBRRL
+FFBFFFFLLL
+BBBFFBFRRL
+FFBFFFFLRR
+FBBBBBFLLR
+BFBFBBBLRL
+BFBBBFFRRL
+FBFFBBFRRR
+BBFFFFBRLR
+FFBFBBFRLL
+FFBFBFBLLL
+FBBBFBFRRR
+FFFBBBFRLL
+BFFFBBBLLR
+FBFFBFBRLR
+FFBFBBBLLL
+BFBBBFFLLL
+BFFBFBFLRR
+BFFBFBBRRR
+BFBBBFBLLL
+FBFFBFFLRL
+BBFFFBBRRL
+FFFBFBBRLR
+BBFBBBFLLR
+FFBBBBBLRR
+BFFFFBFRRL
+BFFFBBBRLR
+BFBBBBBLLR
+FBFBBFFRRL
+BFFBFFBLLR
+FFBBFFFRLR
+FBBFFFBLLL
+FFFBBFFLRR
+BBFFFFBRLL
+BFFFFFFRLR
+BFFBBBFLLR
+BFBBBFBRRL
+FBFBBFFRRR
+BFBFBFFLRR
+BBFBFFFLLL
+BBBFFBFLLL
+FFBBFBFRRL
+FBBFFFBLRL
+BFBBBBFLLR
+BFBFBBBLRR
+BFBBBBBRLR
+BFFFBFFRRL
+BFFFBFFLLL
+BFBBBBBRLL
+BBFFBFBRLL
+FBBBBBFRLR
+BBFFBFFLLR
+FBBFFFFRLR
+FBFFFBFLRL
+BBFBFBBRLR
+BFFBBFBRRL
+FBFFFFFRRR
+BFBFBBFLLL
+FBBFBBFRLR
+BFBBFBBRRR
+FFFBBBFLRL
+BFFBFFBRRL
+FBFBFBBLLR
+BBFBFFFLRL
+FFFBFBBRRR
+BBFFBBFRRL
+BFBFBFBLRR
+BFFBBBBRLR
+FBBFFFFLLR
+FBBBFFBLLR
+FBBBBFFLRL
+FBBBBFFLLL
+BBFFBBFRLR
+FFBBFBFLRL
+BFBFFBBRLL
+FBFBBFFLRR
+BFFFFFBRLL
+BBFBFBBRRL
+FBBBBBBLLR
+BBFBFBFLLL
+BFFFFBBRLL
+BFBFFBFRRL
+FFBFFBFLLL
+BFFFBFBLLR
+FBBFBFFRRR
+FBBFFBFRLR
+FBBFBFBRRR
+FBFBBFBRLR
+FFFBBFBRRL
+FBBBBFBLRR
+FBBFBBFLRR
+BBBFFBFRRR
+BFFBBBBLLL
+FBFBFBFLRL
+FFBFFBFLRL
+FFFBBFBLLL
+FBBFFBFLLR
+FBBBFBBRRR
+FBBBBFBRLR
+FBBFFFFRRR
+FFFBFBFLLR
+FFBFFFFRRR
+BFBBBBFRLR
+BFFBFBFRRR
+BBFBBFFRLL
+BFFBFFFLLR
+FBBBFBBRLL
+BBFBFFFRRR
+FFBFBBBRRL
+FBBBFBFLLL
+FBBBFBBLRR
+BFBFBBFRLL
+BFBFBFBRLL
+FBFFBBBLRL
+FBBBBFFRRL
+BBFFBFBRLR
+BBFFBFFRRR
+FFFBFBFLRR
+FFFBFBBLLR
+FBBBFFFRLL
+FBFBBBFLLL
+FBFBBFFRLL
+BFBBFFBLLR
+FFBFFFFRLR
+BFFFBBFRRL
+BFBBFBFLLL
+FBFFFBFLLR
+BBBFFBFRLR
+BFFBBFFLLL
+FFBBBBBRRL
+BBFFBFBLLL
+BFFFBFFLLR
+BBBFFBFLRL
+BFBFFBFLLL
+FBFFBFFRLR
+FFBFBBBLRL
+FBBFBFBLLR
+FBBFBBFLRL
+FFBBFFBLRL
+FFBBBBFRLR
+FFBFFFFRLL
+FFBBBFBRLL
+BFFFBBFLRL
+FFFBBBFRRL
+BFBFBFFLLR
+FFFBFBFRLR
+BBFBFBFRLR
+FBBBFFBRRL
+FFBBBBFLLL
+FFBBFFBRLL
+FBBFFFBRRR
+FFFBBBBRLL
+FBFFFBFRRR
+BFBBBFFLLR
+BBFBBFBLRR
+FFBFBBBLLR
+BFBFBBBRRR
+BBFFFBBLRR
+FBFBFFBLRR
+FFFBFBBLLL
+FFBFFBFRRL
+FFFBFBBRRL
+BFBBBFBRLL
+BFBFFFFLLL
+BFBFBBBRRL
+FFFBBFBRLR
+BBFBBBBRLL
+FBFBBBFLRL
+FFBFFBFRLR
+BFBBBBFLLL
+FFBBBBFLRL
+BFFBFBFRRL
+BFFFBBFLLR
+BFFFBBFRRR
+BFBFBFBLLL
+BFFFFFBLLR
+BFFFBBFLLL
+BFBBBBFRRL
+BBFFBBFLRR
+BBBFFFFLRR
+FFBFBFFLLR
+FBFFBFFLLR
+BFBFFFFRLR
+FFBFFBFRLL
+FFBFBFBLRL
+BFFBBFFRRR
+BFFFBBFLRR
+FBFBFBBLRL
+BFFBFFFLRL
+FBFFBBBLRR
+FBBFFFFLRL
+BBBFFFBLRR
+FBFFFBBRLL
+BFBBFFFRLL
+FFFBBBBLRR
+BFBBBBBRRR
+FBBBBBFRLL
+BFBFFBBRLR
+BFFFBFFLRL
+FBFBFBFRRL
+FBFFBFFRRR
+FFBBFFBLRR
+FFBFFBBRLR
+FBBBFFFRLR
+BFFBBBBLRR
+FBFFFFBLRR
+BFBBFFFLLR
+FBFFBBBLLR
+FBFFFBBRRR
+BFFBFBBLLL
+FFBBBBBRRR
+BFBBFFBRRR
+FBBBBBBRRL
+BFBBFBFLRR
+BBFBFFBRLL
+FBFFFFBRLL
+BFBFBBFLRL
+BFBFFFFLLR
+BFFFBBBLRL
+BBFFFFFRLL
+BBBFFBBRLR
+BBFBBFBLRL
+BBFBFFBLLR
+BBFBFBFLRR
+FFBBFFBRRL
+FFBFBBBRLR
+BBFFFFBRRR
+BFBFFFBRLR
+BBFFFFBLLR
+BBFFBFFLRR
+FBBFBFBRLR
+FFBBBFFLRR
+BFBBFFBRLL
+FBFBBBBLLR
+FBBFFFBRLL
+FBBFFFBLRR
+FBFFFBBLLR
+BBFFFBBRLL
+BBFBBBFRRR
+FFBBFFFLLL
+BFBBBFFRLR
+BFBBFBBRLL
+BFFFFFBLRR
+BFBFBFBRLR
+BFBFFBFLRL
+FFBFBFBRLL
+BBFFFBFLLR
+FFBFBFBRLR
+FFFBBBBLLR
+FBFBBBBRRR
+BBFBBBFLRL
+BBFBBBFRRL
+FBFFBBFLLR
+FBFFBFBLRL
+BBFBBFBRLR
+BFFFFBBRLR
+BBFFFBFRLL
+BFBFFBBLRL
+FFFBFBBLRL
+FFBBBBFLLR
+BBFBBFBRRL
+BFBBFBFLRL
+BBFFBBFLRL
+BFBFFBFRLL
+BFFFFBBRRR
+BFFFFBFRLL
+FFBBFFBLLL
+BFBBBBBLRL
+FBBBFFBRLL
+FBBFFFFRLL
+BFFBFFFRLR
+BFBBFBBLRR
+BBFBFFBLRR
+FBBBBBBLRL
+BBBFFFFLRL
+FFBBFBBRLR
+FFFBBBFRRR
+FBFFFFBRLR
+BBFFFFBLLL
+BFBBBFBRRR
+FFFBBBBLRL
+FFBFBFFLRR
+BBFBFBFLRL
+BFBBBBBLRR
+BBFFBFBRRL
+FBBFBBFRRL
+BFFFFFBLRL
+FFBFBBFLLL
+BFFBBFFLRL
+BBBFFFFLLR
+BFBFFBBRRL
+FBBBBFBLLL
+BBFFBBBLRL
+FBFBFFFRLR
+FFBBFFFLRL
+BFFBBFBRLL
+FBBFBBFRRR
+FBFBBBFRRR
+BFBFBBFRRL
+FBBBFBFRRL
+FBBBBBBRLL
+FBFFFFBLLR
+FBFBFBBRRR
+BFBBBBFRRR
+BBFFFFBLRL
+BFBBFBBLRL
+BFFBBFBRLR
+BFFBFBBLLR
+BFFFBBBRLL
+FBBFFBFRRR
+BFFBFBBLRR
+FFBFFFFLRL
+BFBBFBBRRL
+FBBBFFFLRL
+FFBFBFBLRR
+FBFFFBBLLL
+FBBFFBBLLL
+BFBBBBBLLL
+FFBBBFBRRR
+FBBBBBBLLL
+FBFFBBFRLR
+FBFBBBBLRR
+FFBBFFFRRR
+BBBFFBBRRL
+FBBBFBFRLL
+BFFFBBBLRR
+FFBFFBBLRR
+BFFBBFFRLL
+BFFBBBFRLL
+BFFBFFFRLL
+BFFFFFFLLR
+FFBFFFBLLL
+FBBFBFFRRL
+FFBBFBBLRL
+FFBBBBFRRL
+FBBBFBBLLR
+FFBFBFFLRL
+FBFFBFBLRR
+BFBBFFBLLL
+BFFFBBFRLL
+FBFFBBFRRL
+BFFBFBBLRL
+BFFFBFBRRR
+FFFBBBFLLL
+BBFFFFFLRR
+BBFFFBFLLL
+FBFFFFFRRL
+BFBFFFFRRR
+FFBFFFBLLR
+FFFBBFBLRL
+FBFFFBFLLL
+FBBBBFBRRR
+FBBFFFBRRL
+FBBFFBFRLL
+FBBBBFFRLL
+BFBFFFBRRR
+BFBBBFBRLR
+FBBBFFBLLL
+BBFFFBFLRR
+BFBBFFBRRL
+BBFBBBFRLR
+BFFFBFFRLR
+FBBBFBFLLR
+FBFBFBFRLL
+FBFBBBFRLL
+FFBFFBBRLL
+FBFFFBFRRL
+BBFBFFBRLR
+FBFFFFFLRL
+BFFBBBFLRL
+FFBFFBBLLL
+FFFBFBFLLL
+BFBBBFFLRR
+BBBFFBBRLL
+BBBFFBFRLL
+FBBFBFBLLL
+BFBFFFFRLL
+FBFBFFBRLR
+FFFBBFBRRR
+FBBFFFBRLR
+FFFBBBFLRR
+BFBFFFBLLR
+BFBBBFFRLL
+BFBBFFBRLR
+BFFFFBFRLR
+BFFFFBBLRR
+BBBFFFBLRL
+FBBBFFBRRR
+BFBBFFFLRR
+FBBBBFBRLL
+BBFFBFFRRL
+FFFBBFFLRL
+FBBBBFFRRR
+FBBFBFFLRL
+BFBBFBFRLL
+FBFFFBFRLL
+FBFBBFFLLL
+BFFFBBFRLR
+BFFFBFFLRR
+FFFBFBFLRL
+FBFFFFFRLL
+FFBFFFFRRL
+FFBBFBFLRR
+FFBFBBFRLR
+FBFBFBFRLR
+FBFBFFFRLL
+FFBFFBFLRR
+BFBFFBFRLR
+BFFBFFFLRR
+BBFBFBBLLR
+FBFBFBBRRL
+BFFBBBBLRL
+BBFFBBBRRR
+FBFFBBFRLL
+BFFFBBBRRL
+FBBFFFBLLR
+BFFBBFBLRR
+BFBBBBFLRL
+FBFFBFBLLR
+BFFBFFBRLR
+FBBBBBFLRL
+FBFFFBBLRL
+BBFBFFFRLR
+BFFBFFBLRL
+FBBBBFBLLR
+FFBBFFFLRR
+BBFBBFBLLL
+BBFFFBBLLL
+FBBFBBBRLR
+FBBFBBBLLR
+BFFFFBFLRR
+FBBBFFBLRR
+FBFBFFBRLL
+BFFBBBBRRR
+BFFFFFFRLL
+FBFBBBBLRL
+FFBFBBFLLR
+BFBBFBBLLL
+BBFBFBBRRR
+BFFFBFBLLL
+BFBBFFBLRL
+FBBBFFFLLR
+FFBFFBBRRR
+BBFBBBFRLL
+FBBFBBBLLL
+FBFBBBFLRR
+BFBBFBFRRR
+BFFFBFBRRL
+BBFFBBBLRR
+FBBFBFFLRR
+BFFBFFBRLL
+BFBFFFBLLL
+BBFBBBFLLL
+BFBBFFFRRL
+FFBFBFBRRR
+BFFBBFFRRL
+BFFBFBFRLR
+FFBFFFBRRL
+BFFFBFBLRR
+FBFBFFBLLL
+FBFBFBFLLR
+BFFBBBBLLR
+FBBFFBBLLR
+FBBFFBFLLL
+BBBFFFBRLR
+FBFFFBFRLR
+BBFFBFFLRL
+BFBFBBBLLL
+FBFFFFBRRR
+BFFBFFBRRR
+FFBBBBBLLL
+BBFFFBFRLR
+BFFFFFBLLL
+FBFBFBBLRR
+FBFFBBBRRL
+FBBBBBFLRR
+BBBFFBFLRR
+FBFBFFFLRR
+FBBBBBBRRR
+BFFBBFBRRR
+BFFBFBFLLL
+BFBBFFBLRR
+BBFFBFFLLL
+BFFFFFFLRR
+BFFFBFBRLL
+FBFFBFBRLL
+FBFFBBBRLR
+BBFFBFFRLL
+FFBBFBBLRR
+FBBBBBBLRR
+FBBBBFBRRL
+BFFFFBBRRL
+FFBFFFBLRR
+FBBFBFFLLL
+BBFFFBBLRL
+BBFBFFBLRL
+BBFBFBBRLL
+FBFFFBBLRR
+BFBBFBBLLR
+FFFBBBFRLR
+FBFBFBBLLL
+FBFFFFFLRR
+BFBFBFBRRR
+FBBFBBBLRL
+BBFBBFBRLL
+FBBFFBBLRR
+BBFFBBBLLR
+FBBFFBBLRL
+FBFBFFFRRR
+BBFFFBBRLR
+BFFFFFFRRR
+BBFFBBFRRR
+FBFFBBFLRL
+FFBBFBFLLL
+FBFBFFBRRR
+BFBBBBFRLL
+FBBFBFBLRR
+FBFBFFFLRL
+FBBFFFFLRR
+BFBFBFFRRL
+BBFFBFBLRL
+FBFFFFBLLL
+FFBBFFFLLR
+FBBFBBBRRR
+FBBBBBBRLR
+BBFFFFFRLR
+FFBBBFFLLL
+FBBBBBFRRR
+BFFBFFBLLL
+BBFBBBBRLR
+FFBBFBBLLR
+FBFBFFFLLR
+FBBFBFFRLL
+FFBBFBBRRL
+FBBFBFBRLL
+FBBBBFBLRL
+FFBBFFBLLR
+BBFFBFBRRR
+BFBFFFFRRL
+BFFBFFFRRR
+FBFBBFFLLR
+FFFBBFBRLL
+FFBBBBFRLL
+FBBFBBFLLL
+FBBFFBFLRL
+FBFFBFBRRR
+FFBBBFBLLL
+FFBBBFFRRL
+FBBFFBFLRR
+FFFBFBFRRR
+FFBBFBFRLL
+BBFFBBBLLL
+FBBBFFFRRL
+BFBBFBFLLR
+BBFBFFBRRR
+FFBBBFBLRL
+FFBFBBBRLL
+FBFBFBBRLL
+FFBFFFBLRL
+BBFBFFFLLR
+FBFFBFFLLL
+FFBBBFFRRR
+FBBFBFFLLR
+BBFBFFBRRL
+BBFBBBBRRR
+FFBFFBFRRR
+BFBFBFFLLL
+BBFBFBFRLL
+BBFBFBBLRL
+BFBBFBBRLR
+FBFFBBBRLL
+FBBBBFFLRR
+FFFBBBFLLR
+BBFFFFBLRR
+BBFFFFFRRL
+FBFFBFFLRR
+BFFFFFFLLL
+FFFBBBBRRR
+BFFFBFFRLL
+FFBFBFFRLL
+FFFBBBBLLL
+FFBFFBBRRL
+FFBFBBFRRR
+BFBFBFBLRL
+FBFFFFFRLR
+BBFBFBFRRL
+FFFBFBFRLL
+BBBFFBBLLR
+FFBFBBFRRL
+BBBFFFFRRR
+BBFBBFFRRL
+FBBFBBBRLL
+FFFBFBBRLL
+FFBBBBBLRL
+FFBBBFFLLR
+BFBFFBBLLL
+BFFBBFBLLR
+BBFBBBFLRR
+BBBFFBFLLR
+FBBFFBFRRL
+BBFFFBFLRL
+FFBFBBFLRR
+BFBBBFFLRL
+BFFBFFFRRL
+BBFBBFBLLR
+BBFBFBBLLL
+BFFBBFFRLR
+FBBFFFFRRL
+FBFBFBFLRR
+BFFBFBBRRL
+FFFBBFFRLL
+FFBBBFBRLR
+FFBBBBBRLL
+BBFBFBFRRR
+FBBFBBFRLL
+BBBFFFBRLL
+BFFBBBFRLR
+BBFBBFFLLL
+FBFFBBFLLL
+BFFBBBBRLL
+BBBFFFBLLR
+BFBFFFFLRR
+FBBFBBFLLR
+FBBBFFBRLR
+FBFBBFBRLL
+FBFBFBFLLL
+FBFBBBFRLR
+BBBFFFFRLL
+FBFFBBFLRR
+FBBBFBBRLR
+FFBBBFFRLR
+BBFFBFBLRR
+FFFBBBBRRL
+BFBFFFBRRL
+BFBFBFBLLR
+FFBBBFBRRL
+FBFBBBBRLL
+BBFFBFBLLR
+FFBFFFFLLR
+FBBFBBBRRL
+FBFBBBBLLL
+BFBFFBFLRR
+FFBFFFBRRR
+FFFBBFFRRR
+BBBFFBBLRR
+FBFFBFFRRL
+BFFFBFBRLR
+BFFBBFFLRR
+FBBBBFFRLR
+BFBBFFFLRL
+FBFFFBFLRR
+FFBBFBFRLR
+FBBBFBFLRR
+BBBFFFBLLL
+BBBFFBBLLL
+FBBBFFFRRR
+BBFFFFFLLL
+FBBBBBFLLL
+FFFBBFFRRL
+FFFBFBBLRR
+FBBBBFFLLR
+BFBFFFBLRR
+FBBBFBBLRL
+BFBBBFFRRR
+BFBFFBBRRR
+BFFFFBFLRL
+BFBBBBFLRR
+BFFFFFFRRL
+BBFBBFFRRR
+FFBFBFFRLR
+BBFBBFFLLR
+BFBFBFFRLR
+FFFBFBFRRL
+FFBFFBBLLR
+FBFBBFBLLR
+BFBFBFBRRL
+FFBBFBFRRR
+FFBFBFBRRL
+FBBFBBBLRR
+FBBFFBBRLR
+BFFFFBFLLL
+BFBFFBBLRR
+BBFFFBFRRL
+BBFBBFFRLR
+BFBBFFFRLR
+FBFFFFFLLL
+BBFFFFBRRL
+BFBFBFFLRL
+BBFFBBFRLL
+BFFBFBFLRL
+FBFBBBFLLR
+FBBFBFBRRL
+FFFBBBBRLR
+BFBFFFBLRL
+BFFFFFBRRR
+BBFBFBBLRR
+BFFFFFBRRL
+BBBFFFFRRL
+BFFBBBFRRL
+FBFFBFBLLL
+FBBBFFFLLL
+FFBBBBFLRR
+FFBFFBFLLR
+BFBFBFFRRR
+FBFBBFBLLL
+BFFBBFBLRL
+BFFBBBFLRR
+FFBFBFFLLL
+BFFFBFFRRR
+FBFFFFFLLR
+BBFBBFFLRR
+FFBFFFBRLR
+BFBFFFBRLL
+BFFBFBFRLL
+FFBBFFFRLL
+FBFFFBBRRL
+BFFFBBBRRR
+FBFBBBBRRL
+FBBFFFFLLL
+FBBBFFBLRL
+FBFFBFFRLL
+FFFBBFFRLR
+BFBFBBFRRR
+BFBBFFFRRR
+FFBBBFFLRL
+BBFFFFFLRL
+FFBFBBBLRR
+BFFFFFBRLR
+FBBFFBBRLL
+FBFBBFFRLR
+FFBBBFBLRR
+FBBFBFBLRL
+FBBFFBBRRR
+FFFBBFBLRR
+BFBFBBFLLR
+BBBFFBBLRL
+BFFFBBBLLL
+BBFFFFFRRR
+FFBBBBFRRR
+FBFBFBFRRR
+FFBFBFFRRR
+FFBBFFBRRR
+BFBFBFFRLL
+BFBFFBFRRR
+BBFFFBFRRR
+BFFFFBBLLR
+FFBBFBBLLL
+FBFBBBBRLR
+FBFBBFBLRR
+BFBFBBFRLR
+FBBBFBBRRL
+FBFBFFFLLL
+FFBBFBBRLL
+BBFBBBBLRR
+FBBFFBBRRL
+BFBBBFBLLR
+FFFBBFFLLR
+FBBBBBFRRL
+BFBBFFFLLL
+BBFBBBBLLL
+BFBFBBBRLR
+BFFBBBFLLL
+BFBBFBFRRL
+BBFBFFFRRL
+FFBBBFBLLR
+FBFBBFBLRL
+BBBFFFBRRL
+BBFBFFBLLL
+BBFBFFFLRR
+FFBFBFBLLR
+BFBFFFFLRL
+BFBBBBBRRL
+BBFFFBBRRR
+BBFFBBFLLR
+FBFFBBBLLL
+BFFFFFFLRL
+FBFBFBBRLR
+FBBBFFFLRR
+BBBFFFFRLR
+FFBBFFBRLR
+BBFBFFFRLL
+BBFBFBFLLR
+BFFFFBFLLR
+FBFBFFFRRL
+BFFFFBBLLL
+FFFBBFFLLL
+BFFFFBFRRR
+FBBBFBFRLR
+FBBBFBBLLL
+BFFFFBBLRL
+FBFFBFBRRL
+BBFBBBBLLR
+BFBBBFBLRL
+FBFBBFFLRL
+BFBFBBBLLR
+FFBBFBFLLR
+FFBFFFBRLL
+BFFBFFBLRR
+BFFBFFFLLL
+BFFBBFFLLR
+BBFFBBBRLR
+BFFBBFBLLL
+FBFBBFBRRL
+FBFFFBBRLR
+BFFBBBFRRR
+FFBFFBBLRL
+FBFBBFBRRR
+BBFFBBBRRL
+FBFBBBFRRL
+BBFBBFBRRR
+BBBFFFFLLL
+BFBFBBFLRR
+FBFFBBBRRR
+BFBBFBFRLR
+BBFBBFFLRL
+BBFFBBBRLL