summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2020-12-02 14:36:10 +0100
committerPatrick Spek <p.spek@tyil.nl>2020-12-02 14:36:10 +0100
commit329cccd89b2f6fb385ed185492cf41d2a7cb4e86 (patch)
treee11f7b9ff0e8581054aed5d68832a4684bd9f26b
parent4cb2f7039ea25ffcb6ebe22cbc8b917c01b41fe3 (diff)
downloadadvent-of-code-329cccd89b2f6fb385ed185492cf41d2a7cb4e86.tar.gz
advent-of-code-329cccd89b2f6fb385ed185492cf41d2a7cb4e86.tar.bz2
Add day 2 solutions
-rwxr-xr-x2020/02/bin/first46
-rwxr-xr-x2020/02/bin/second49
-rw-r--r--2020/02/resources/input.txt1000
3 files changed, 1095 insertions, 0 deletions
diff --git a/2020/02/bin/first b/2020/02/bin/first
new file mode 100755
index 0000000..2af14f7
--- /dev/null
+++ b/2020/02/bin/first
@@ -0,0 +1,46 @@
+#!/usr/bin/env raku
+
+grammar Entry {
+ rule TOP {
+ <range> <character> ':' <value>
+ }
+
+ token range {
+ $<min> = \d+
+ '-'
+ $<max> = \d+
+ }
+
+ token character {
+ \w
+ }
+
+ token value {
+ \w+
+ }
+}
+
+sub MAIN ()
+{
+ my @input = $*PROGRAM.parent(2).add('resources/input.txt').lines;
+ my $ok = 0;
+
+ for @input {
+ my $match = Entry.parse($_);
+ my %chars;
+
+ for $match<value>.comb -> $char {
+ %chars{$char}++;
+ }
+
+ my $min = $match<range><min>.Int;
+ my $max = $match<range><max>.Int;
+ my $count = %chars{$match<character>} // 0;
+
+ next unless $min ≤ $count ≤ $max;
+
+ $ok++;
+ }
+
+ say $ok;
+}
diff --git a/2020/02/bin/second b/2020/02/bin/second
new file mode 100755
index 0000000..af05dae
--- /dev/null
+++ b/2020/02/bin/second
@@ -0,0 +1,49 @@
+#!/usr/bin/env raku
+
+grammar Entry {
+ rule TOP {
+ <first>
+ '-'
+ <second>
+ <character>
+ ':'
+ <value>
+ }
+
+ token first {
+ \d+
+ }
+
+ token second {
+ \d+
+ }
+
+ token character {
+ \w
+ }
+
+ token value {
+ \w+
+ }
+}
+
+sub MAIN ()
+{
+ my @input = $*PROGRAM.parent(2).add('resources/input.txt').lines;
+ my $ok = 0;
+
+ for @input {
+ my $match = Entry.parse($_);
+ my $combed = $match<value>.comb;
+
+ my $first = $match<first>.Int - 1;
+ my $second = $match<second>.Int - 1;
+
+ next unless $combed[$first] ne $combed[$second];
+ next unless $combed[$first] eq $match<character> || $combed[$second] eq $match<character>;
+
+ $ok++;
+ }
+
+ say $ok;
+}
diff --git a/2020/02/resources/input.txt b/2020/02/resources/input.txt
new file mode 100644
index 0000000..7966e31
--- /dev/null
+++ b/2020/02/resources/input.txt
@@ -0,0 +1,1000 @@
+3-4 t: dttt
+5-7 l: llmlqmblllh
+3-10 g: gggxwxggggkgglklhhgg
+5-7 d: zxhddvxd
+5-12 s: sgscssssphxs
+3-4 b: lbbbbntqswsv
+1-11 h: hhhhchhhhjhph
+10-16 c: ccccqccchcccccjlc
+10-11 b: bsbdbblbbjbbbb
+3-5 j: jjrjfqz
+4-7 q: qqhqdzjqsc
+1-5 s: srjfsshkqmxw
+5-6 v: xvvzvnp
+5-12 f: ffmfffffpffffm
+4-5 l: lllllgwdfhl
+9-11 b: bgbbbsbbbnbbbvbbbb
+5-9 h: hnhhqhshnvhh
+7-13 c: cxccxcccglccs
+6-9 c: kckpcpgccvmznrccc
+11-15 x: xxxgxxkxgxxxxxtxbxkx
+11-12 s: sdssnnzzrssssss
+9-10 w: wwwwwwwwbxw
+10-12 v: dvvvpvrvvvvvv
+1-4 w: wdqptjk
+17-19 p: ppppppppppppppppkpx
+3-4 h: vhhh
+9-11 z: zzzzczzztzz
+2-5 s: shbfspgszs
+13-15 j: jjjfjjtjjjjjjjjj
+2-12 l: lhlllchlllcsmlll
+12-15 k: kkkxkkkkkkkkkrkk
+11-16 g: gggggggggglggggmg
+7-8 n: nnnnnnnn
+9-11 n: jnwnrmnlnqnnnnn
+4-7 x: xlqxxxxhxnpqxgx
+2-4 h: srfnbgffjcxhgqh
+3-4 t: pdtt
+6-10 w: wvwwwqdwww
+9-13 x: xzxxxxxxxxxxxx
+11-13 s: cmsfqnpwltsgs
+2-11 c: kcccqvfccvrcdc
+8-10 v: hvvhvwvvvv
+6-7 g: gggggdg
+7-10 m: mmmmmmmmmm
+6-7 z: zzzzzgz
+1-3 d: drdsdv
+3-5 w: wwxwk
+1-4 b: kgcrqkbrdb
+1-5 r: dckmrxgndprxlh
+5-7 d: dhddvdhx
+1-3 r: cpmqdrrfqz
+3-4 c: cccc
+9-10 h: hhhhhhhhrz
+14-15 h: hhhhhhhhhhhhphd
+2-6 c: qvmnbgsxjmkff
+3-5 r: rhrrf
+9-15 r: rrrnrxrrrpprsnrrz
+2-5 w: wzwtn
+3-7 t: tttttttt
+6-7 k: kkmphpsv
+2-5 w: wwgwwwk
+14-15 q: nqqfqpqqqqvqqcf
+12-15 n: nbnnnnnnlnnrnnnngn
+13-14 h: hhhthhhhhhvhpsh
+4-6 v: vvxvrv
+14-18 c: ccccccxcccccccccccc
+18-19 s: jhmfgbssnltrcplmxnp
+3-4 h: hhhh
+3-4 r: rrxp
+2-3 r: rqpwzvrk
+2-7 q: qqqqqqq
+4-6 v: bnvvvp
+1-4 v: vxvvk
+4-13 z: znlrnnzgzmjsznzszh
+3-4 s: dtwx
+3-9 c: ccgcccccc
+1-7 f: tfqfffkqfvh
+4-5 c: ccccccc
+6-7 r: rsrthgsrrbr
+8-9 q: vqbcqqhzqqgqjnqbqkm
+10-19 l: lllcxlzlnlchlbrzwpl
+11-14 r: prrrrrrrztrjrrnrrrm
+7-10 w: wwwtbwzwtwww
+2-4 w: wzcwvfrtdv
+7-12 l: fmljlbmlllfl
+1-3 n: nnnn
+4-5 m: mwmjxd
+11-14 v: wfhpfdxbjwvwtg
+2-7 h: qsxjzhn
+4-7 p: ptxtppcpcp
+1-5 j: ssjjqfjjgs
+4-7 d: fjpdhdddmb
+1-4 t: qjxsvdwttnktq
+3-5 f: fffff
+10-13 t: ttttttttttttftt
+4-8 v: bpqhvcmvm
+4-5 q: qqqpq
+10-16 w: dwpwsbcwwwwqxhww
+8-10 p: ppppqppppdpp
+2-4 k: kkwk
+1-4 d: ddcdm
+7-12 f: ffftfpbffffnp
+5-8 x: xxxcqxxzx
+3-4 t: ttzg
+2-4 m: mmmmm
+5-6 g: gggsxg
+2-13 j: jkjjjjjjjjjjjjjjjjj
+6-8 t: ttfrtftt
+7-9 l: lgljnlllllvl
+13-20 b: btbbbbbbbzbbkbbbbbbq
+1-2 c: cccch
+4-15 q: xcqbkmhzxlgswkqkc
+2-5 h: hhhhswhhhh
+1-5 s: sslss
+2-7 t: trttttktt
+14-15 k: kkkkkkkhkkkkkkvksk
+1-3 l: llllllllg
+6-8 s: ssshsjsk
+4-8 g: ggwgqbgg
+14-17 b: jbbbbdbqtbbvsnkzk
+4-5 b: bbbxbbb
+10-18 z: zzzzzzzzzzzzzzzzzz
+2-4 p: ppxc
+8-9 g: qmgsrggchgg
+8-9 j: jjjjjjjgj
+5-6 f: jfffff
+2-3 x: xhbx
+9-10 s: ssssmsssfgs
+14-16 l: llllllqlllllhrlllxl
+10-12 w: glwwwtwkdcgh
+3-8 p: pprjpppcpppppppkppp
+3-8 v: vxvkkvvvpvbz
+4-7 j: jlqgjnljxfwbjjj
+1-3 q: wqqddnzfsblvcjldq
+2-3 f: mdcqqfgxtcmn
+9-16 j: jjjjjjjtjjrjxvjj
+3-9 d: zdcndblvd
+1-8 w: cdxwltwg
+2-10 h: qgftvvwssfhhmjktwfj
+5-8 m: mbmmwmmmmmmmm
+2-5 k: ckklk
+12-18 m: mmmmmmmmmmmmmmmmmmkm
+10-13 n: sbnnbnwqwnncnflnkn
+2-4 q: qqqh
+5-6 w: wwwwxs
+1-7 m: smmmmmnm
+8-15 j: jjrkhjjjxjkjjwjrfjc
+5-6 j: jvjjzt
+1-12 g: cbggkptcgxgzt
+4-6 v: vvvvvkv
+1-4 j: jjjd
+12-13 k: kkkkkkkkkmkwmk
+2-4 d: jvdwxdk
+4-8 k: tfzklvgktd
+2-4 t: zlmtdmtz
+15-16 q: dkmpgqkzqwqjjqqd
+3-8 z: zvjzqmzrzns
+2-11 h: hhhhlhtrhhhhq
+1-3 r: rrrr
+12-19 b: mhfwhbskbpsrvrskphd
+2-3 x: pgsfjblxk
+2-4 k: cvjs
+3-6 s: bswshc
+2-3 d: vdstlpdzx
+10-11 t: ttnthtwwtpr
+2-4 j: jsmjjjj
+3-4 g: gggf
+11-14 z: hgpzzzzzzczznwkvzz
+12-13 v: vvvvvvxvvvdmmv
+4-5 w: wnwww
+9-10 z: zzzzzzzzzr
+3-5 l: tkkllllllllp
+1-2 h: hhgst
+1-2 h: wwvx
+1-14 v: hhcfklvvvvvxzq
+2-4 t: wwkttt
+6-7 c: jcccxhf
+11-16 q: qlxqqbqqqbqqmqqqnqqq
+3-5 m: mvmmmmm
+7-8 s: gsgsmslh
+5-9 m: mmwmjmnfmm
+16-17 w: wwlwtwkwwpzbfwbww
+3-4 x: mkdxsfxxjxj
+6-11 b: jdxkqbxcwvbx
+7-8 w: wwwwwwwdtt
+5-12 r: hcrrrzrfgbprwrtbr
+6-8 n: nnnnnzgw
+5-7 q: qhqqczbq
+3-8 d: dddcdqddpdddn
+6-7 g: ggggggggg
+8-13 w: wswwsmwcwdljnldw
+3-4 b: bbbdh
+5-6 p: pdvcppbkg
+7-14 n: qnkhcnmnfnnrcn
+12-18 v: zbvvwvvvvvvdxvvvvv
+10-13 p: pppppppjppppppp
+2-5 p: tvkplq
+1-5 g: gmdqggxbg
+1-3 s: sgtsrs
+11-12 n: nnnnnnnnnnnn
+12-17 v: vvvvvvvvvlvvvvvvrvv
+4-13 q: qqqqqqqqqqqqk
+5-13 w: wxwwwwwwwwwwm
+1-2 j: jnjvnxck
+11-13 n: nnvtnnrsnnnnnnxnn
+2-4 x: jxbxx
+10-11 b: bbbbbbbmbbpbzblbbb
+1-17 p: bpppppppppppppppppp
+3-16 z: lnmqwfvpbdzkmlqzbfg
+1-7 k: ktbklkmxkdk
+9-12 t: vtttctdttttptt
+6-8 v: xmvvvzgr
+3-7 k: wckkcwmkpxldc
+2-6 t: ljzwsxxfz
+4-5 v: ptvvv
+3-8 r: gmrzrvjct
+3-7 l: llllfltpsl
+2-5 p: rnzpp
+14-15 x: mxxgkxxxxvxxvxx
+5-6 p: pgppfmprwdjd
+9-10 z: vzzzzzzzsb
+13-14 t: ttttttttthstttttt
+12-13 w: wkwwwwnwwwwwfw
+7-10 d: wsldjfwdkqddd
+3-5 b: sbbbh
+1-4 t: tqdttt
+14-16 h: phhtkhdhdhpfrjwh
+15-19 d: dddgdjddpddxdbbndfd
+2-4 g: mgbgjjdgd
+3-6 d: bdhtwd
+7-13 p: bppsmwtqpxpfppqczpkw
+6-11 n: nnnwnnxntnnzvn
+8-10 w: nwhzwwjwcjgwwwnfwwwj
+6-9 g: gglkkgxkt
+2-4 p: pppp
+6-8 b: bbbbbfbv
+3-4 m: mmps
+14-17 l: lllllllllllllllll
+7-9 z: wzzzzfdzth
+2-3 d: gqdmlmxxldklkmdlngdh
+6-11 p: ppjppxppppp
+8-11 p: pppppppdppt
+1-2 m: hgmmmm
+2-5 g: gsjghqqrgqps
+14-15 r: rnrrrrrrrrrrrjd
+4-6 w: wwwtwh
+7-11 b: bhbbbbqqbbbbbbb
+8-10 d: ljsvsdkdxd
+3-5 l: lbxwmlx
+5-11 n: xdqnnnnnnnnnkn
+10-13 w: wfwwwdwwrwwxbw
+2-9 h: lvgzwwjzwlchvf
+2-6 h: hhjhhk
+2-3 j: njjvglndfmqcjfh
+11-17 n: hxnnnnnnntngnrnnn
+4-9 c: knsltvmnt
+9-10 z: xnzzlzzzztzzz
+7-9 q: qqqqqqqqnq
+11-17 p: ppppppppppppppppqpp
+8-12 w: wwptwwfltwbwww
+4-8 k: kkbskkgkc
+10-18 q: qnqcqqkggqcqcqqfqq
+3-4 p: bppqxptcpq
+2-3 s: sjfz
+4-7 j: rjdjtgjksznhhsg
+8-9 x: cxxxdfxtxrxxxx
+8-12 f: fffffffrffff
+4-7 c: ccccczn
+1-2 v: zzvv
+2-3 k: glfrfqkvzkk
+3-15 q: zqqbmqgqksnttjqgnq
+5-14 c: fzcvnxcccckccctc
+2-12 k: pkstjpkqvnnglxgkwffx
+3-5 q: qwqlqwbqw
+11-13 q: hwqqqqqqqqqqqqq
+18-20 m: mmmmmmmgmmmmmmmmmdrw
+2-5 j: djjgb
+16-17 m: mmmmmmmmmrmmmmmxg
+6-13 d: mbfgqrfrhtlxddnfcxj
+15-18 l: llllllllllllllllllll
+10-14 w: wwwwwwmpwwwdwlwwwrx
+7-9 f: glbffbbtff
+16-19 l: lllllxlllllnlllldls
+4-5 l: plllg
+6-7 c: rcpchcc
+7-8 p: ppppppslp
+1-8 z: zzzszzzz
+3-16 f: flkffclcklnffzfkw
+3-8 l: gnlfltll
+1-2 w: wrww
+10-12 h: hhhhzzhhhhhh
+12-14 v: vvvvvvvvvvwvvv
+5-11 h: hhhhhhhhhhhhh
+2-15 g: rwlvdlschqsbrzg
+6-7 d: thcdqdd
+4-6 r: jwvkfvjrd
+10-12 g: gggggggggwgfggggg
+1-7 d: rddddddd
+3-5 d: dgjhmd
+3-16 h: hhthhhhhhhhhhhhzh
+1-3 k: krtcnqklsw
+12-17 j: jjjgjcfvjjjdjptjbjkj
+9-12 k: kjkkkwkknkkkkk
+10-17 l: llllllllllllllllll
+6-10 g: gggzfgrgzgggsgg
+5-8 n: mnnxrnln
+3-6 l: lrlrlfflbllwklbcqd
+10-11 c: cccltccccsfxjcfc
+2-7 s: srssssssw
+1-17 t: tttttttttttttttttt
+7-9 w: fhwwdwmwswrhnwcw
+6-7 j: jjjjjqd
+13-14 x: vxgbmptxxxsxxp
+2-3 m: gmmdsm
+6-7 f: qfffffffw
+7-9 k: kjkkkmmkwkkk
+10-11 g: ggggdggggggg
+14-19 r: rrrrrrrprnvrrrrrrrrr
+1-3 t: rtttt
+5-6 q: qxqqsqq
+16-17 q: qqqpqqqqqqqqqqqlx
+5-6 v: vmbfvvvvvxdvvc
+10-13 l: llllllllllllm
+4-12 d: mgvcvfrdrfdddk
+4-5 v: vvbvv
+2-5 v: lvvnvgbssk
+5-8 v: fvvvgfvgv
+5-6 v: vvvbms
+13-17 q: qqqqqqqqqqqqgqqqqq
+1-3 t: lrtjw
+5-13 g: nnggglrkgjrgg
+1-5 n: nnbnn
+16-19 b: bbbbbbbbbbbbbbbzbbb
+8-9 d: dddddddddd
+7-10 h: hfslhhhkqh
+12-14 p: phpsppwpjppsppppppp
+2-6 s: ptkhqsztgjqrfqzd
+4-8 h: hhhqhhhp
+4-13 p: ppsjptpfppqkpv
+2-5 p: sppvp
+5-7 w: wqxmhbrvwlw
+14-16 r: rrvrrrrkrrrrrfzrrmz
+11-12 h: bpdkkghmqhhv
+10-20 r: hrxdwrqwrmrfrnrrqqrf
+11-12 v: bvvvvvvvvvvmv
+3-4 x: xzxmdxzxx
+7-9 v: vvvvvhvvcv
+4-5 z: zzzsz
+16-17 t: tttttttctttttttttt
+3-10 k: wdkkxtbgskkkkzkbvck
+3-4 l: dlsjt
+2-6 t: snmtntgglhrghnprpcv
+3-10 l: llvlllwllhrlljlll
+5-11 m: mzmrncmmgmwmrm
+13-15 c: ccccccccccccccjsc
+4-5 q: qqqffh
+2-8 j: jzjjjjjjj
+5-11 n: nnxqdnnnmnnnnpnn
+8-11 x: xxxxxxlxxxgxx
+7-11 g: gggcghggmglhglggx
+4-17 l: xllbllflllllllcvpll
+3-6 z: zzxqzbzz
+9-18 s: sssssstsssssssssms
+14-16 r: rrkrrrrhrrrrrrrr
+10-12 m: mmmmmmmmmrmtm
+4-5 z: zqtzzzlnpz
+6-16 c: kcwcjcrtchccmgdsdkc
+10-11 n: nnnnnnnnnnnnnnnfnn
+9-15 n: nnnncnnnnnnnnsnkr
+1-7 d: dddddddd
+12-19 j: jgvjmjnjkjjtjjjjjjd
+9-14 j: jjjjjjjmwjpjjtjhjdj
+6-7 j: jljjjjjqj
+2-5 n: nnnsxmjlvznn
+4-7 r: rrrzwhrhrm
+9-10 x: xxxxxxxxxx
+4-5 k: sqkgkm
+1-4 g: sgkmzgtgggp
+10-14 k: zkkkhkdkkwkkstkkk
+3-10 g: xglkpghggrqnwzxbvm
+7-8 s: ssssssss
+6-9 m: sbmxmmbmmbj
+11-15 z: hzzwzzzzzzrzzzz
+9-10 n: lvlnjnjgnb
+1-5 c: zmscfzg
+2-6 d: kxndkbj
+1-7 j: jfjqjqj
+12-13 w: nwwwwwwwwwwww
+7-8 v: vxcvvvkd
+3-7 f: fqfnvsfqvlhqqq
+3-12 b: hvsvcvmbbgjbncgdpq
+7-12 n: tpjprfntnpnnpnnsn
+6-11 g: gwgggmgbggxgqgg
+15-16 v: vvvzvvvvvvvvvvwv
+12-14 p: ppppppprpppgpgp
+3-11 s: ssvsssssssms
+8-9 q: qqqqqqwtqq
+4-5 d: ddddddddmddddd
+11-12 c: cccscccccnccc
+4-5 k: glzjkx
+2-7 j: fjfdqhq
+6-9 s: ssnwsssfm
+16-17 r: rrrrfwrprrrtrrrcrrr
+3-11 c: fcczfsxvcbmcwktn
+4-6 l: qllcllll
+7-10 h: hhkhhhwhhhhh
+4-9 x: xxdxxxxxmxxx
+2-7 t: ttrtrtt
+3-7 l: llblllcl
+1-2 g: jgtdt
+7-14 p: pgpdtkplcpfhppphqdp
+3-12 b: nbqpbgmbhfwbbbzbnb
+4-6 k: kkxcphk
+12-16 x: kqpkvpnqxgvxwxxmbnh
+5-11 p: pfppgcrhqcxpv
+2-3 w: lfdpwgk
+7-10 t: shktvjtztttqttt
+13-15 f: pffffffgffqfxflfl
+8-14 d: ddddwddddndddddd
+5-9 c: cbhvwcccsccxcw
+2-5 v: jwbrcvxssj
+3-13 q: gzqzqwnprgzjqrp
+5-9 w: wwwwwwwwwwwwwwwwwww
+3-4 p: pktgpzbzlps
+9-14 k: pkmkjkkkhgkkbkkmksd
+7-9 r: rrkfrgtrrkhrw
+2-14 q: qnqqqqqqqqqqqqq
+4-5 d: ddmdddds
+1-13 f: fffffffffffffkfffff
+5-6 f: ffffffffffflfcff
+5-9 s: dwswbrswbv
+11-12 j: rjjjjkjjjjjrjj
+2-5 v: vwdngzv
+2-4 p: spgkbpghbfmnhl
+8-9 c: cccckccxc
+6-8 m: mpkmkkhw
+3-4 q: qqqmq
+1-5 s: szpsz
+14-15 f: wffffffffffffnf
+16-19 d: ddddddddddddddddvvdd
+7-16 q: qfhqqqdqjqqqqqfvqsqq
+3-6 g: ggggggg
+12-16 k: kklkrkkkkkkkfkkkrkk
+7-11 x: xxxxxxhxxxcx
+12-13 r: bsrkmkwrwzsrv
+6-9 b: bbbbbqbkfb
+12-16 d: ddddddddddddcddqd
+2-10 t: ttxptzmfftbrsttgzlp
+6-7 z: zczzzwspzg
+6-8 z: whdrvzrzjwmbz
+5-7 d: fhxvdxdjsgdmgqxb
+5-8 h: qhhbvhhhhhw
+9-11 b: xbbbmbbqhdgbbbb
+6-8 h: hmcgnhmvwmrcqhkht
+6-8 m: mmmmmxmbf
+2-6 g: grgggg
+4-5 g: ggggg
+5-14 k: mhkkkkkgskkwrfkvkkkd
+1-10 g: mggxbcqggpgjg
+3-4 p: pplk
+4-6 j: jjjzjj
+16-17 x: xhxxxxxxxxxxxdvbx
+2-5 c: csxbls
+3-6 h: hhhhzhh
+2-8 r: rwrrkrrrrr
+18-19 q: clhbgqrkfsmnjmfxszq
+9-13 f: pffffffgfffffffff
+7-10 x: wxxxbxbtbfxxx
+5-6 x: xctnxg
+7-11 r: rrrchcrrrrr
+1-6 f: fsdjnfgffgr
+17-18 l: lllvlllflcsdlllllll
+4-15 j: pjjcjjjjjjjjjjrjjjj
+1-5 c: ccccckcdsz
+4-6 f: fgfqfg
+3-16 v: zvvpqxqsvtptqmpvw
+1-11 k: wgnzrddkkfj
+15-16 d: dpdddddddsddddrsd
+4-5 m: gmggcjg
+6-9 q: lfsltjpdj
+8-11 n: bdnnbjdnnvnrnchnd
+2-10 r: rrrvrrrrrrrjrrr
+1-4 h: mdwnzthhvg
+8-9 d: dddvdddbpdd
+1-7 n: hxrlndrnh
+19-20 x: xxxxxxxxxxxxxxxxxrxx
+7-8 b: bbbbhmcc
+8-11 p: ppppppppppr
+7-13 g: ztggpmgfgcgggjg
+5-6 m: gxmmmmxmbsvmdmvprlxn
+8-13 j: bjjgjmnjjjvjj
+4-9 q: qvqqqmnfqwqzjggrqqnq
+3-8 b: bsbnbjdbwbpbb
+5-12 j: vrnjjjmjpjnkrdjckx
+1-6 w: wwwwwwwwwqwwww
+9-11 j: jbjwjjjmjnqjjjj
+7-18 z: zzzzzzlzzzzzzzzzzszz
+8-9 j: jjjjjjjljj
+13-16 g: gggggggggnghvgglggg
+2-14 m: kvmqzmmmmmmmmpm
+4-5 f: fffffhf
+4-5 w: wwwwwwx
+4-17 v: vtvcvvkjvvvvsdvhptv
+4-6 l: qlllllwlljtbdlfk
+1-14 z: sqvjzdswcchfczvvq
+2-9 s: wshsspkcdnbcjcvl
+6-8 n: nnnngnnn
+5-8 n: nnnnndnn
+2-6 t: ftdrttqrt
+8-13 p: mpwpfpjfnppqmppmxf
+1-4 q: qqqq
+9-10 f: fcffpffrdfkfh
+1-3 v: vkvcxm
+9-10 j: jjjjjjjjjbj
+6-7 v: vvfrldv
+1-9 n: qnnnnnhqxnn
+4-5 q: qqqqqqx
+6-10 c: vcbpcclzmn
+3-4 j: jjjj
+9-10 n: nnnnnnzngn
+4-5 q: qxdqqqs
+2-7 l: hlhllhll
+8-9 d: dmdrddrqndddwddcdd
+4-6 z: zfzzzhz
+4-7 g: ggggggg
+4-6 s: njzwmgbw
+16-17 q: qqqqqqqqcqqqbqqmqq
+5-12 q: qqvqkwqqmqrdbqsqx
+2-8 v: vvvvnvvvv
+5-12 m: smhfmmmfxmhmmxmj
+3-4 f: fffmrjfhnfbpcmcj
+6-10 c: ccrhcqlczsc
+1-7 b: xbbbbblb
+19-20 m: mlhmdcwmxmmmmphqmkmm
+8-10 r: brrrrrrmrfrgr
+4-8 s: sssnsssdsh
+1-7 g: qgggtgsn
+19-20 w: wwwwwwwwwwwwhwwwwwwl
+1-2 x: xxqlxx
+3-5 g: ggwgg
+4-5 s: ssqsxs
+6-13 w: kxwwwwwwwwfjrw
+12-13 m: mmmmmmkmmmmmn
+15-17 h: jkhhqwhgbwhfhfvhm
+14-17 n: nnnnncsnnnnnngnngncn
+4-5 l: lldllj
+4-5 j: jjktv
+9-16 p: pppbpptppvpppnppgp
+3-7 m: pwtwglmqrfmfrsfwm
+5-6 x: bxqwxxl
+6-19 j: sjjvtjsgjgdfzjjsjst
+10-14 h: bhhhhhhhhxhhhwz
+8-10 x: xxtvxxxxxx
+6-14 z: zzrzzvzzzzzzzczczzz
+7-8 q: qnsjqwfqqzqgqdq
+6-7 l: rrlrhlw
+1-2 g: ggpgggggggggggggggg
+9-10 x: drdlgbxwphrnqmq
+1-7 s: swszthj
+5-6 w: kwvqkwwwww
+5-7 d: cdwndjddfghqdf
+5-10 z: zzzzzzzzzbz
+1-8 l: tplzsllbbndnltphw
+4-17 l: lckxdfblllccqlbll
+8-9 d: ddddddddd
+11-13 f: fffffffffpfffwff
+3-6 m: mmmtmm
+9-10 c: cccjccccccccck
+8-9 g: ggggggggg
+1-13 k: sdqlkcjxbhmkpskkwkb
+6-12 c: vbccrljmccdcccccf
+5-6 r: crbcrrd
+5-8 x: knxxxbxxxqltfxw
+3-13 g: npgcxgfndxgmg
+2-9 j: tnbnvvgghzcsjznqqln
+11-12 z: zzzzzzzzjzlzzz
+12-13 t: tttttrtttttcttvbl
+1-6 d: dxgldtdld
+17-18 s: wnnkgsmhrhtvjbmkmm
+4-9 t: ttdsttjttvclttgtt
+6-8 t: xgtztttqtttttt
+17-19 q: qqqqqqqcqqqqqhqqhqbq
+8-16 w: wwwwwwwwwwwrwwww
+8-11 n: nnnqnnspnnmnbld
+7-8 n: nngnnnnd
+6-10 l: lnltlcdwlmlslllz
+19-20 w: wwwwwwwwwwwwwwwwwwww
+4-9 d: gdddmdhbv
+6-7 v: vvvvvwv
+4-5 g: gggggg
+5-11 g: gggskbqgpgdgvlgg
+9-14 f: ffffffffffffff
+5-6 c: cwcctlc
+3-8 m: mdmzmzwmmfmxwzfrpm
+10-16 f: ffffmffplgfmhwff
+8-14 d: pkkbrdhfttjdfd
+1-10 n: sbnzncfxcqntzpnvcgw
+6-15 d: zxtdddnmntxvknbwdc
+10-11 g: gggggggjggggjk
+7-9 n: vnqnnqdggnnznw
+9-11 j: fjljjjjjcjgj
+8-9 j: jjjjjjjdj
+8-9 v: cgtlnjclqkprbmv
+13-17 f: fgwfffdfgffntfbfffft
+9-10 v: qvlvtvvrmwrvsvlvvkrr
+2-8 t: ttnrtmttlbtt
+2-4 k: kkrp
+5-6 k: kkpkkkl
+3-5 c: zwcwccc
+10-12 j: rjjjjjjjjjjjjj
+1-5 j: jjzjjjml
+4-6 f: hffffffff
+4-5 x: txxcp
+1-4 w: wwwk
+3-16 j: jjsjjjjjjjjjjjjnj
+2-4 n: nnngn
+2-6 c: cckdnz
+8-11 b: bbbbbbbbbbb
+4-18 g: crgqggghggggglgggdg
+11-14 m: glrtzmfgcnmmwmnm
+7-9 w: swwvwwwdszwwwwww
+4-20 v: vvvxvvvvvvvvvvvvhxvv
+2-3 q: qdxqq
+2-5 r: qrrrr
+11-13 s: sssssssssssshs
+3-4 s: zdnlshs
+7-9 w: wwwwwwmcnw
+5-8 q: qqqqqqqqq
+11-14 h: hchhdctlhhcphnhghhhs
+10-14 f: fvfffffffffffffff
+13-15 q: qfqqqqzqqqqqqqqdq
+7-16 l: phclwxgcghmlldljdlhd
+7-15 t: tttttwgqnbtdttrfft
+1-3 d: dcdsxfsqlcddsdfs
+1-4 w: wwwwchqw
+8-9 b: lgbbbdbbb
+5-9 j: lpcbjpxzjjsj
+11-18 r: rwhrfbpcwmzjtfjrrr
+4-8 x: xxxxxxhxxx
+3-8 k: kkkkkkkkk
+4-5 h: hhmfq
+7-9 j: jjjjjjjjj
+7-9 q: chvtrdgkndnqq
+10-13 j: jjjjjjjjjzjjjj
+1-3 j: jjqj
+8-9 g: gggggggvg
+5-9 t: ttwttbttt
+5-6 l: lqkklp
+5-9 f: fffffffffxff
+2-5 b: bbmbpb
+5-6 j: jjjjnj
+1-4 m: mknpnnmcbvt
+3-4 b: bbbb
+9-10 l: llllslnllx
+2-4 h: hhhg
+3-7 w: wwwnwwwwhw
+2-6 k: ddckrbrkk
+4-5 g: gzjnf
+14-19 l: llllllllllllllllllf
+12-14 h: hhkhhhhhhhhhht
+1-5 w: xkvrwzwwl
+11-12 z: zzzzjzzzzzzzznzb
+2-4 j: wjjzjsj
+1-6 h: hhhhhhh
+2-4 w: wrwmrsvws
+5-7 k: kkkkgkbkkkkkkkkkk
+2-5 g: gxncz
+3-11 h: hhhhhxhxhhmjh
+2-4 d: kdxd
+4-5 j: jjjjc
+1-7 q: qzxsgqqgvq
+3-5 x: kwxnnrxhxh
+5-9 r: rrrkgrrrsr
+4-5 g: gfggzghggmg
+10-11 l: lllllllllrl
+11-12 x: xxxxxxtxxxwx
+11-12 b: bbbbbbbbxbbjb
+7-8 b: bbbbbbbrj
+6-7 r: xnrrcrrrrr
+11-13 r: rrrnlrrrrrrrrr
+4-6 v: vhtvjv
+11-15 d: ddnddsdfpgcddwrddd
+12-13 q: zbdfqvxzqgdkb
+5-13 s: gqqbsccpjwrqsvsj
+9-10 x: xxxfxxxxxx
+4-6 s: zsssssbs
+4-5 q: qnqqv
+4-7 m: mzcmzmmmjmf
+1-6 q: qqxgmj
+7-15 d: djnfvjdkddddddtd
+4-5 s: sssfws
+6-13 v: jxxgmvmcvmccv
+12-13 l: lllllllljllzm
+5-6 l: mlljlqvfshdltbwbql
+2-9 x: xxkhxmflxxxgxxrfxxxt
+17-20 c: ccccccccccccccccjccq
+5-17 m: mmmmmmmbmmmmmmmtmmm
+15-16 m: mmmmmmmmmmmmzmmmm
+4-5 f: fffwf
+12-14 g: gggggggggggngz
+4-5 d: gqdqt
+5-8 h: hvhbsvvkp
+6-7 r: rrrrrrrf
+4-7 b: pbtdgxbvqdkrmpz
+6-9 v: bpvpnsvlf
+2-5 k: cbhkpr
+8-9 w: bgwzbxxnv
+3-4 c: ccctc
+3-4 z: zzzbw
+11-13 k: kpwbmdzbkgmctwhcp
+2-7 r: bcphdlk
+14-15 l: ldlllllnlllllhql
+10-11 f: fffffpffffw
+4-9 g: ggghggggz
+6-8 s: tdsxjsxs
+7-10 k: kwkrzhkckkkbkzdhpk
+10-11 s: rdsqsshhskb
+2-4 f: rscnkqfqdtnnglv
+3-6 n: qjvqnz
+7-8 j: jrjjjjpdpf
+6-7 s: rswksssss
+2-3 x: xxxx
+12-18 l: vljllllllvhlllvllln
+3-5 t: ftttt
+10-16 j: mjjhhjjjjfjpwjjrjc
+7-13 n: gnnnnntvggnwn
+12-15 q: qkqqqqqqqqlqqcvqq
+12-17 j: njjjcvjjsjsjjjdjjsj
+5-16 n: qfpvnrttbnfdjdbncdj
+15-16 j: jjjjjjjjjtjmjjvjjj
+6-14 n: nnnnnrnnnnnnnx
+1-4 x: xxxt
+5-12 c: cckfqcvwcqcpcc
+2-7 x: tkpwsfzfkpxbt
+13-15 h: hhhhhhhhhhhhhhh
+1-2 x: xwxkmm
+17-18 k: qkkkdjkkkkkkkkkkfxkk
+3-4 v: vwqf
+2-5 l: slzlllt
+8-9 z: gzztzzzjzjzz
+10-14 v: pzqkvvvvvgvxvvvzvvmp
+9-19 f: fzzffjffnffdslffcqk
+5-15 v: vxvzvvvvqtvvrvvvvvvv
+7-10 x: xxxxxxxxxx
+1-8 k: kkkjkkkqkkkkkbkk
+2-16 j: jwjjjjjjjjjjsjjgjj
+8-9 n: nnnnnnnrvw
+11-12 p: pppppppppppp
+5-7 h: hqhhhjthqphhbhhgppp
+7-9 k: zdkkkwkkvskf
+12-13 m: mmmmmmmmlmmrmm
+9-15 j: wjmjfjjjfqjjjmjjlj
+2-9 c: czcccccct
+8-10 c: cwcgcccfcwc
+13-15 v: vbfvvvvwvvvvnvjvvv
+12-13 j: jfjjjmjjchjjjjjjj
+2-7 s: sgcswlb
+4-6 f: fffccrfks
+4-16 h: hwqhhgdhqzhhfhhhh
+4-13 k: kvkkkkkkgkkkkkkk
+12-13 r: qdfwlrwxpqjsrdg
+1-8 k: bkkkkkkpkrk
+4-7 j: jjjxjjn
+7-9 m: mmzmkmvmmlm
+9-10 k: kpkkkbbkdknkkkd
+3-4 s: sskw
+8-9 b: bbbsbbblmbjbqbbbb
+11-12 g: gggggggggfgn
+1-2 f: fqrtz
+4-6 m: mmmmmm
+2-9 t: tmntbqqtd
+4-12 m: rwbfnkrmmttmn
+9-10 n: ncnnknnnzvn
+1-3 f: fffffffffffw
+3-5 x: lvxgxlx
+3-17 c: rjgsstrzjmhqcrcccmg
+9-10 n: nnbnnnnnnnn
+4-7 p: pppfpptpp
+4-5 l: lllhw
+10-14 q: lrccqhjkqqrnpqq
+2-9 q: jqqhqqqqqwdrxq
+11-15 r: xrrrrrrrrgdrrrnrcr
+2-5 b: cbbfcd
+6-13 l: fxlnjlklbglnln
+3-6 v: wvwrwkvtqnvgbvv
+14-19 p: prpppznppkrjwrtpspk
+5-6 w: khvwwwwsxwlb
+10-16 f: fffwcffzfffjfffflfn
+1-5 r: rhsrktwlkbmgs
+9-10 z: zznzzmznzzznzgzzrq
+2-6 k: kkkkkwk
+7-8 l: rllclllllvlmhbzlqct
+3-9 b: pwbbbbdwblzwxx
+2-5 d: cxrddddddfddrqt
+8-9 j: cknlrwqnnj
+6-8 j: jjjjjrjw
+1-5 g: gfqgg
+1-2 n: nktnn
+4-7 c: cccccchc
+1-5 d: dddddhdz
+14-16 f: vbwfxffmjfxjrdffwfxz
+2-8 m: npnwxrlhmmmwmf
+10-11 s: vssnrsksssssnswst
+6-10 z: zzhzzzvrzdh
+7-11 r: rfhdrrrrrrrrr
+3-4 v: gfvvcvrgv
+7-11 r: drxqrdrrrcrsrwrpjmrm
+2-6 f: xfnmxfhfwd
+3-7 z: ggtkmmzz
+2-4 m: mmkm
+6-7 v: pdvqvvsvvrfvvmxpfq
+2-7 t: nttnfcttlz
+6-9 f: fffxkfrnffgjrjfz
+2-4 s: nmpfs
+1-4 n: dhpn
+8-10 d: ddqdddddddddd
+4-5 x: xzxnwxxxx
+11-12 p: ppcppppppppn
+5-11 s: rgsssrqssss
+3-5 z: vjzzzq
+11-12 r: rrrrrrrrrrrr
+1-2 t: ttstnw
+18-20 b: bssdfwzspgjdglxnhqrb
+2-3 z: zzzhjkjklhwc
+12-14 f: ffmffffwfffpfffff
+10-13 s: kscrplsqsxsfcsbnszqh
+1-20 w: wkwcvwwfwtwpwwwjwwww
+2-5 k: kkkkm
+9-12 c: czpccccbbbcccc
+5-6 v: vxmvkg
+3-4 f: ffns
+7-13 t: thtttcgttttttmntct
+2-3 c: gqwb
+12-13 w: jwjtzwjwwwwwb
+13-16 n: nnpnnnnnwjnghnfnxknn
+10-12 b: bbbhbbbbbbbbvb
+16-18 n: nnnnnnjnnnnnnnnnpn
+4-7 s: wssstjs
+2-5 v: tvhbvmxzt
+2-3 x: fxtx
+2-9 q: mqpgsdvdsfdqgx
+4-6 c: cqfntrvjtdk
+5-7 f: ffffmfcq
+14-15 m: mjmmmmmmmmmmmgx
+5-11 j: gxjjjjjhbjjjhwxvjtg
+6-9 m: mmmxmfvjcgm
+2-5 j: jqjjrjjj
+13-14 h: hghrhhhhhhhhzh
+3-4 x: xxxs
+15-16 h: hhhhhhrhhhhlghvhkhh
+5-6 l: lllldl
+1-5 t: gtflt
+10-11 f: fvfrrfffpnczj
+8-13 s: sssvnsztsssdsssps
+13-16 c: ccqccccgcccczccnbcc
+7-9 h: hqszthxczlhthhhjbhk
+3-6 f: vrfwff
+11-17 f: fffffjffffqfffffgfz
+2-4 t: xstt
+2-7 c: ckccqcscccbc
+5-18 k: wkkkkkkhkkkkkkkfgq
+19-20 p: ptcpbpppppzpzrdkpxhk
+1-2 j: vsfjf
+3-4 f: bfffkffvk
+4-14 h: hhhghghhhhhhhlhhh
+15-17 p: pvdpppppppppppppp
+8-13 m: mkmmmmggmczwmmlmmm
+6-14 b: bfdhgncbhcbbqgmbp
+2-4 z: dzpzfzz
+7-13 f: ffffffffffffnf
+5-12 z: zgzkzfpzzzzzgqhz
+7-11 s: cssnpsrslshsszs
+8-9 f: fffffffff
+5-8 n: nnnnhnnnn
+11-12 j: jjjmjjjjjjxjd
+1-18 x: vjbxxxxmxxxrxwmsxxxx
+8-9 r: rrrrrrrrrr
+10-12 z: zzzzcrzzzzzzz
+1-3 t: ttttt
+2-6 h: hhhfhh
+3-10 w: wkwfdctzzwnv
+14-17 v: vvvvvvvvvvvvvlvvtv
+12-14 h: tmlhvrsscqphnhdtdtm
+7-9 f: fbffjxfszffg
+6-8 h: thhhsgjr
+4-14 s: fqnbddlrwqcsswnff
+11-12 d: ddddddddkxddd
+11-14 p: jhxpppcppphpppppp
+3-5 s: sssslk
+10-12 v: vvvvvvvvvqvk
+9-10 d: ddddddddgrdk
+12-18 s: swlsssssdsksvssspz
+2-4 k: nqfkd
+5-13 m: msxnwjwdqkssm
+3-7 k: kkkkkkgk
+14-15 w: wwwwwghwwwwwwwcw
+1-6 q: qqrqqqqqq
+3-4 t: tsbz
+9-16 s: sdsbwzzssssssssxc
+12-16 w: wwwzwwwwwwwzwxwsw
+1-3 p: gpnwgsstmpr
+5-6 m: gdmmbzm
+1-3 k: jkhkkkk
+11-16 s: sssshsspssppsssmsstv
+19-20 g: gggggggggggggggggghf
+4-5 x: xxxrmx
+17-18 h: hhhlhhhmhhhhhhhhhhh
+1-16 k: tkkkkkkkkkkkkkkkkkk
+5-7 x: xjrhxxxxwx
+2-3 t: ttcx
+4-5 m: vmsmmlmmmjh
+6-7 g: ggggggg
+7-11 r: drrvzhrrgqfrfr
+3-4 q: mqcj
+4-10 q: vqzbqzqqfqhdrncgpptk
+2-8 k: jkftkskk
+5-13 l: gfkxlbmczmzbhgl
+13-18 x: xxxxxxxxxxxxfmlrxh
+8-10 q: nqqqqqqgqqqq
+2-6 m: kcfqmcjzbw
+3-5 k: kkkszl
+3-4 h: hhfhh
+1-3 k: kbkzkqk
+5-6 l: shlznplzllvrk
+1-7 n: knnnnnnnnn
+5-7 n: csfnnmn
+5-11 x: xpxxxxwxxxxq
+3-10 f: fffffblffcffffd
+7-9 h: dghhhhscvhhhh
+3-4 q: qkwwq
+5-6 s: sszdsvss
+3-8 s: lshsslsslsss
+3-10 m: twmmwtcrpmz
+5-12 w: rwjrrcwfgwwnk
+10-11 g: npfbgvsgbmg
+6-8 w: vwwwxwwkgw
+1-3 n: hnbn
+8-10 b: bbbbbbmbbw
+2-11 k: fkgtskhzjzkf
+7-9 q: qqqtqqvqp
+9-14 b: bpqpbbldbqwbwc
+1-5 c: xrlwjm
+1-3 f: ffsv
+14-16 n: nnnndnnnnnnnnpndn
+9-13 x: xxmxwpxxxxxxlhxxxxx
+8-11 f: frhqgdcflvf
+3-7 l: zrbslhpbjgkcvbjfq
+1-2 h: thnkhhl
+5-8 b: bbbbbbbnxb
+6-7 b: bsgbtth
+18-19 m: mpmmmmmmmmmmmmmmmwmm
+14-15 w: wwwwwnwwwwwwwfx
+14-17 d: ddxdddddddddddddd
+13-16 k: kkkkkkkkkkkkkkkkkkk
+3-10 h: jkhhnknnthjbwxswqjc
+11-14 d: ddddddddddddddd
+5-10 h: xjrbhcsjjhn
+6-7 n: jgzqntv
+9-12 f: ffffffjfbffffqf
+1-12 q: wqqqqqqqqqqqq
+6-11 l: lllllqllllcqlhl
+3-4 r: rrrrfvrchslkldq
+1-13 s: szsssjscwksfssssw
+5-9 b: vjwtbkwbbnbbhbbbszbc
+1-3 n: kntnn
+8-9 p: pppppppqcp
+12-13 c: cccccqccccchc
+17-18 w: wwwwwwwwwwkwwwwwmdr
+2-3 h: hfrghmhh
+5-6 t: jxttttttttt
+1-3 m: vmnh
+8-11 c: cccqcxcjccj
+2-10 v: vvvvkvkvrvv
+3-8 j: ksjrzwqjnvfchjxq
+4-8 b: bbbxsbbtqrbb
+7-19 b: bbbbmbhkbsbbbbhbtbf
+2-4 g: lqsg
+10-14 z: zgzzzhzzkwzzzzpzhzz
+7-8 m: bmmmmvsqmpdjmtm
+4-6 z: cgmzlzwhfgkrhgzszvwd
+1-3 w: pbwwwq
+3-6 v: vvvvvv
+13-14 m: zmfpcmmxbwspmmkpx
+3-4 x: xtxrb
+8-9 p: ppppsxpppcpl
+7-9 s: qtsscqbjn
+5-6 q: qmcxqqqm
+3-4 n: nnnwqjknqf
+4-5 s: snssj
+8-16 v: vfvvhvvtvvvjdvvfvv
+3-7 m: mqcwmpxsm
+3-5 p: hrppp
+2-5 f: tkfff
+5-9 f: ffbffffff
+3-6 d: bxjdfdk
+8-12 l: lllllhlllvlllllll
+4-13 g: gggwgjlvmqgdgfg
+5-7 v: wvkkvbvcrvtvvmh
+14-15 h: hhhhhhhhhhhhhjh
+14-16 p: tpkppppppppppppppppp