diff --git a/2/1/main.go b/2/1/main.go new file mode 100644 index 0000000..25670de --- /dev/null +++ b/2/1/main.go @@ -0,0 +1,70 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "regexp" + "strconv" + "strings" +) + +// Your flight departs in a few days from the coastal airport; the easiest way down to the coast from here is via toboggan. + +// The shopkeeper at the North Pole Toboggan Rental Shop is having a bad day. "Something's wrong with our computers; we can't log in!" You ask if you can take a look. + +// Their password database seems to be a little corrupted: some of the passwords wouldn't have been allowed by the Official Toboggan Corporate Policy that was in effect when they were chosen. + +// To try to debug the problem, they have created a list (your puzzle input) of passwords (according to the corrupted database) and the corporate policy when that password was set. + +// For example, suppose you have the following list: + +// 1-3 a: abcde +// 1-3 b: cdefg +// 2-9 c: ccccccccc + +// Each line gives the password policy and then the password. The password policy indicates the lowest and highest number of times a given letter must appear for the password to be valid. For example, 1-3 a means that the password must contain a at least 1 time and at most 3 times. + +// In the above example, 2 passwords are valid. The middle password, cdefg, is not; it contains no instances of b, but needs at least 1. The first and third passwords are valid: they contain one a or nine c, both within the limits of their respective policies. + +// How many passwords are valid according to their policies? + +type password struct { + min, max int + letter, password string +} + +func main() { + file, _ := os.Open("../input.txt") + defer file.Close() + + passwords := []*password{} + + inputRegex := regexp.MustCompile(`(?m)^(\d+)-(\d+) (\w): (\w+)$`) + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + text := scanner.Text() + minString := inputRegex.ReplaceAllString(text, "$1") + min, _ := strconv.Atoi(minString) + maxString := inputRegex.ReplaceAllString(text, "$2") + max, _ := strconv.Atoi(maxString) + pw := &password{ + min: min, + max: max, + letter: inputRegex.ReplaceAllString(text, "$3"), + password: inputRegex.ReplaceAllString(text, "$4"), + } + passwords = append(passwords, pw) + } + + correct := 0 + for _, pw := range passwords { + if count := strings.Count(pw.password, pw.letter); count >= pw.min && count <= pw.max { + correct++ + } + } + + fmt.Println(correct) + return +} diff --git a/2/2/main.go b/2/2/main.go new file mode 100644 index 0000000..f71ced7 --- /dev/null +++ b/2/2/main.go @@ -0,0 +1,65 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "regexp" + "strconv" +) + +// While it appears you validated the passwords correctly, they don't seem to be what the Official Toboggan Corporate Authentication System is expecting. + +// The shopkeeper suddenly realizes that he just accidentally explained the password policy rules from his old job at the sled rental place down the street! The Official Toboggan Corporate Policy actually works a little differently. + +// Each policy actually describes two positions in the password, where 1 means the first character, 2 means the second character, and so on. (Be careful; Toboggan Corporate Policies have no concept of "index zero"!) Exactly one of these positions must contain the given letter. Other occurrences of the letter are irrelevant for the purposes of policy enforcement. + +// Given the same example list from above: + +// 1-3 a: abcde is valid: position 1 contains a and position 3 does not. +// 1-3 b: cdefg is invalid: neither position 1 nor position 3 contains b. +// 2-9 c: ccccccccc is invalid: both position 2 and position 9 contain c. + +// How many passwords are valid according to the new interpretation of the policies? + +type password struct { + first, second int + letter, password string +} + +func main() { + file, _ := os.Open("../input.txt") + defer file.Close() + + passwords := []*password{} + + inputRegex := regexp.MustCompile(`(?m)^(\d+)-(\d+) (\w): (\w+)$`) + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + text := scanner.Text() + firstString := inputRegex.ReplaceAllString(text, "$1") + first, _ := strconv.Atoi(firstString) + secondString := inputRegex.ReplaceAllString(text, "$2") + second, _ := strconv.Atoi(secondString) + pw := &password{ + first: first, + second: second, + letter: inputRegex.ReplaceAllString(text, "$3"), + password: inputRegex.ReplaceAllString(text, "$4"), + } + passwords = append(passwords, pw) + } + + correct := 0 + for _, pw := range passwords { + firstChar := string(pw.password[pw.first-1]) + secondChar := string(pw.password[pw.second-1]) + if (firstChar == pw.letter && secondChar != pw.letter) || (firstChar != pw.letter && secondChar == pw.letter) { + correct++ + } + } + + fmt.Println(correct) + return +} diff --git a/2/input.txt b/2/input.txt new file mode 100644 index 0000000..98f857c --- /dev/null +++ b/2/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 \ No newline at end of file