commit 5054b0ba34e29840791aef08a8fc6c5f378b822f
parent 7f14e603d8cb16776ae5c789bf1fad9b9c328ac9
Author: amin <dev@aminmesbah.com>
Date: Sun, 2 Dec 2018 05:44:30 +0000
Add solution for 02-1
FossilOrigin-Name: 1107fa3cb5b891f228442fa04463f515053a047d9abc2f968fb0451036ae82b5
Diffstat:
A | input_02.txt | | | 250 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | main.zig | | | 326 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 576 insertions(+), 0 deletions(-)
diff --git a/input_02.txt b/input_02.txt
@@ -0,0 +1,250 @@
+luojygedpvsthptkxiwnaorzmq
+lucjqgedppsbhftkxiwnaorlmq
+lucjmgefpvsbhftkxiwnaorziq
+lucjvgedpvsbxftkxiwpaorzmq
+lrcjygedjvmbhftkxiwnaorzmq
+lucjygedpvsbhftkxiwnootzmu
+eucjygedpvsbhftbxiwnaorzfq
+lulnygedpvsbhftkxrwnaorzmq
+lucsygedpvsohftkxqwnaorzmq
+lucjyaedpvsnhftkxiwnaorzyq
+lunjygedpvsohftkxiwnaorzmb
+lucjxgedpvsbhrtkxiwnamrzmq
+lucjygevpvsbhftkxcwnaorzma
+lucjbgedpvsbhftrxiwnaoazmq
+llcjygkdpvhbhftkxiwnaorzmq
+lmcjygxdpvsbhftkxswnaorzmq
+lucpygedpvsbhftkxiwraorzmc
+lucjbgrdpvsblftkxiwnaorzmq
+lucjfgedpvsbhftkxiwnaurzmv
+lucjygenpvsbhytkxiwnaorgmq
+luqjyredsvsbhftkxiwnaorzmq
+lucjygedpvavhftkxiwnaorumq
+gucjygedpvsbhkxkxiwnaorzmq
+lucjygedpvsbhftkxlwnaordcq
+lucjygedpvibhfqkxiwnaorzmm
+lucjegedpvsbaftkxewnaorzmq
+kucjygeqpvsbhfokxiwnaorzmq
+lugjygedwvsbhftkxiwnatrzmq
+lucjygedqvsbhftdxiwnayrzmq
+lucjygekpvsbuftkxiwnaqrzmq
+lucjygedpvsbhfbkxiwnaoozdq
+lscjygedpvzchftkxiwnaorzmq
+luckygedpvsbxftkxiwnaorvmq
+luyjygedgvsbhptkxiwnaorzmq
+lmcjygedpvsbhfckxiwnaodzmq
+lucmygedwvybhftkxiwnaorzmq
+lgcjhgedavsbhftkxiwnaorzmq
+lucjugedpvsbhftkxiwmaoozmq
+lucjygedpvybhftkxkwnaorumq
+lucjygedpvzbhfakxiwnaorzpq
+lucjygedpvsbhftyxzwnajrzmq
+lucjygedpvsdhfakxiwnoorzmq
+luyjygeopvhbhftkxiwnaorzmq
+lucjygadpvsbhntkxiwnaorzmx
+lucjygedzvsbhftkiiwuaorzmq
+sucjygodpvsbhftkxiwuaorzmq
+euijygydpvsbhftkxiwnaorzmq
+lucjlgeduvsbhftkxicnaorzmq
+lucjdgedpvsbhfgkxiwnhorzmq
+lucjymedpvsbhotkxiqnaorzmq
+lucjygmdpvsbhftkxywnairzmq
+lucjggedpvsbhfxkxiqnaorzmq
+sucjygedpvsbhftkxiwnaorjmv
+lucjlgedpvsbhftkxiwnairzmg
+lucjygedppubhftkxijnaorzmq
+lucjyxedpvsvhftkxlwnaorzmq
+lucjygedpvxbhftkfiwyaorzmq
+lucjygedposbhftkniwnaorzmw
+lucjygewpvsbhftgxiwnavrzmq
+lucjynedpvsbmftkaiwnaorzmq
+lucjyhedpvzbhftkxiwncorzmq
+lucjygedpvsbhfikpiwnaoezmq
+lupjypedpvsbhftkjiwnaorzmq
+lucjygudpvsbhfwkxivnaorzmq
+lucjygrdpvsbhatkxzwnaorzmq
+lucjbgmdpvsbhftkxihnaorzmq
+lucjmgedpvpbhftkxiwnaorcmq
+lucjygedpvskhfukmiwnaorzmq
+lucjygedgvsbhftkxiwnvprzmq
+lucjzgedppsbhytkxiwnaorzmq
+lfcjypedpvsbhftrxiwnaorzmq
+lucjyqldphsbhftkxiwnaorzmq
+lucjygedpvsbhftzxewnaorzqq
+lucjygeapvsbhftkxiinoorzmq
+lucjygedpvszhftguiwnaorzmq
+luojygedpvsbhftkxawnaornmq
+lucjygedpcsboetkxiwnaorzmq
+lufjygedpvfbhftaxiwnaorzmq
+luciygedpvsbhftkxhwaaorzmq
+lucjygedpvnbhftkaiwnaorzmc
+lucjygedpvsbhftkxiwcaorbdq
+lucjygelpvsbhftaxiwsaorzmq
+lujjygedpssbhftkxiwnaorzmr
+ludjygedpvsbhftkxiynaorzmj
+lukjygeedvsbhftkxiwnaorzmq
+lucjqpedpvsbhftkxiwnaozzmq
+jucjygedpvsbhftkxgwnaorqmq
+llwjygedpvsbhetkxiwnaorzmq
+rucjygedpvsbhftkxiwndorymq
+lucjygedpvsbhftvxswnaorwmq
+lucjygerpvsbhfykxiwnaormmq
+lucjynedpvsbhftkxijnaorziq
+ljcjygedpvrbhftkeiwnaorzmq
+lucjygedpnsbhftkxiwhaornmq
+lucjygadpvsbhftkxibnaorzqq
+lucjqgedpvsihftkxiwnaorzdq
+lucjygedpvsqhfttjiwnaorzmq
+llcjygedsvsbhftkxiwwaorzmq
+lfckygedpvsbhftkxiunaorzmq
+lucjyeedpdsbhftkxiwnaotzmq
+lucjygedpvsbhftkoiwnaoqzcq
+huwjvgedpvsbhftkxiwnaorzmq
+lucjygldpvsbdhtkxiwnaorzmq
+lycxygedpvsbhftmxiwnaorzmq
+lucjygedpvsbhftyxianvorzmq
+lucuygedpdsbhqtkxiwnaorzmq
+lucjyggdpvsbhftkxiwnavremq
+lucjyggdpvsbkftkxiwnaorbmq
+luchyqedpvsbhftixiwnaorzmq
+lpcnygedpvsbhftkxzwnaorzmq
+lucjygedpvsihftkxiwfaortmq
+lucjygvdpvsbhgtkxiwnamrzmq
+lucjygodpvrbhqtkxiwnaorzmq
+lucjygedpfsbhftkxipnaorzma
+lucjygedpvsbhftkxpcjaorzmq
+lucjygodbmsbhftkxiwnaorzmq
+lucjygedpvsbhftkxipnaogzmb
+luxjygjdpvsbhltkxiwnaorzmq
+lucxygedpvsbhftkxzwnaorjmq
+luajygedpvsbhftzxiwaaorzmq
+lhcjygedpvsqhftfxiwnaorzmq
+lucjygecphsbhftkxiwnaprzmq
+lucjygedpvsbhptkxifnaorqmq
+lucjygedpvichftkpiwnaorzmq
+lucjygedpcsbhstkxswnaorzmq
+kucjygedpvsbhftkxiwbyorzmq
+lfpjxgedpvsbhftkxiwnaorzmq
+lucjytldpvsbhftkxiwdaorzmq
+lufjygedpvfbhftbxiwnaorzmq
+lucjygebpvgbhftkxipnaorzmq
+luujygedpvdbhftkxiwnaorzmd
+lucjygedpvsbhfbyxwwnaorzmq
+lucjygedpvsbhftkxiwnaoqpmw
+qucgygedpvsbhftkxiwnaortmq
+ludjtgedpvsbhftkxiunaorzmq
+lucjyiedovsbhftkxiwjaorzmq
+lucjygedpysbjftoxiwnaorzmq
+lumjygedpvsbuftkxiknaorzmq
+lucjygedpvsbhfokxgonaorzmq
+lucjygeqpvsbhftkfiwnaorzeq
+lucjygedpvskhftkxiwntorkmq
+luujygedpvsbhftkxiwraorzmt
+lucwygedpvsbjftkxiwnaorzmj
+jucjyfedcvsbhftkxiwnaorzmq
+luujygedpnsehftkxiwnaorzmq
+lucjygedpvszhfckxiwnaorzmi
+lucjyredpvsbzftkpiwnaorzmq
+lucjygedpvsbwfgkxiwnaorzoq
+lucjygedpvgbhftkpiwnaorzms
+lucjygedpvjbhftkxzwnaoizmq
+vucjycedpvsbhftkxiwfaorzmq
+luawygeapvsbhftkxiwnaorzmq
+lucjygetpvsbhftkxiwnaafzmq
+lucjvgedpvsbhftkxywnavrzmq
+luolygedpvsbgftkxiwnaorzmq
+likjygedpvsbhftkxiwnabrzmq
+lucjygedovsbhftkxirpaorzmq
+lucjygedphsshftkxqwnaorzmq
+uuqjygewpvsbhftkxiwnaorzmq
+lucjygedcvsbhftkxiwoarrzmq
+lucnygedpvsbhfakxiwnaorzms
+lucjygedpvsbhntkxiwnawrzmb
+lucjygedpvsblfxkxivnaorzmq
+lucjygedpvsghftkxiwnaawzmq
+yucjygedpgsbhftkxiwnaorzbq
+lucjyweapvsbhftkxiwnaoezmq
+lucjygevpvsbyftcxiwnaorzmq
+luejygedovsbhftkxiwnqorzmq
+lucjyqedpvsbhfbkxiwnaorzms
+lucjypedpvsbhftwxiwnhorzmq
+lucjygedpvsbhmtkviwxaorzmq
+lucjogedpvpbhftkxiwnaorqmq
+lucjygedpvsbhztkxkwnaoazmq
+lucjyaedpvsbcftkxiwnaorzhq
+lucjygbdpvkbhftkxiznaorzmq
+lucpygedpvzbhftkxfwnaorzmq
+lucjmgedpcsbhftkxiwnaoezmq
+lucjygedyvsbbftkxiwnnorzmq
+lucjyyedpvsbhftuxiwnaonzmq
+lucjygfdpvsbhutkxiwnaorzmt
+uccjygedpvschftkxiwnaorzmq
+lusjygedpvbbhqtkxiwnaorzmq
+ducuygedpvsbhftkxiwnaorzyq
+lucjygkdvwsbhftkxiwnaorzmq
+cucjyyedpvsbhftkxiwnaerzmq
+lucjygedavsbhftkxiwnkorzbq
+lucjygedmvsyhftkxiwiaorzmq
+lucjygeipvsbhfpkxiwnaorzpq
+vucjugedvvsbhftkxiwnaorzmq
+lucjyzedpvsbhftkxpwnaoozmq
+lucjygedpvgbhftkxiwtaorzqq
+lecjygedpvcwhftkxiwnaorzmq
+lucjyghdpvsbhfcyxiwnaorzmq
+lucjygedpvesqftkxiwnaorzmq
+lucjyjehpvsbhftbxiwnaorzmq
+lucjygedpvtbhdtkxignaorzmq
+lucjygxdpgsbhftkxivnaorzmq
+lucjygvdpvsbhftkpiwnaorzqq
+lucjysedpvsbhftkxiwnalrzmc
+lucjygedpvkbhjtkxiwnaorsmq
+lucjygedpvsbvfgkxiwnaerzmq
+lucjygedpvsihftkxilnaorzmu
+lvcvygndpvsbhftkxiwnaorzmq
+lucjysedpqsbhftkxiwnaordmq
+lucsygeypvsbhftkwiwnaorzmq
+lucjygewpotbhftkxiwnaorzmq
+lucjysedpvsbhftkxiwnanrzmv
+lucjygedpvsbhutkxiwnaoplmq
+wucjygedpvsqbftkxiwnaorzmq
+lacjygeepvsbhftkxiwnjorzmq
+lucjygedpusyhftkxicnaorzmq
+qucjyredpvsbhftkxiwnworzmq
+lucjygedevsbhftkgiwnayrzmq
+lucjygedpksbrftkliwnaorzmq
+lucjygedpvsbhfgkxisnaorzeq
+lucjygedpvhdhftkeiwnaorzmq
+lucjsgedpvsboftkxiwnaorumq
+luctygedpvsbhftouiwnaorzmq
+lucjygedpvsjhfukjiwnaorzmq
+lucjagrepvsbhftkxiwnaorzmq
+lucjkgerpvsbhftkxiwnairzmq
+turjygedpvsbnftkxiwnaorzmq
+lbcjygedpvsbhftkdpwnaorzmq
+lucpygedpvsbhftkxnwnoorzmq
+jucjygedpvsbhbtkxicnaorzmq
+lecjygedpvsbhftkriwnaogzmq
+licjyvcdpvsbhftkxiwnaorzmq
+lrcjygewpnsbhftkxiwnaorzmq
+ltcxygedpvlbhftkxiwnaorzmq
+luctygedpvhbhztkxiwnaorzmq
+lucwygedplsbhfakxiwnaorzmq
+lucjygedpnsbhftkxiwjaoezmq
+lucpygedptsbhftkxiwnaorzmo
+lucjygedpvibhqtkxiknaorzmq
+lucjwgqdpvrbhftkxiwnaorzmq
+lucjmgkdpvsbhftkxiwraorzmq
+lucjygwupvsbhftkxiznaorzmq
+lucjhgedpvobhftkxiwncorzmq
+lucjygedpvsbhftkxiwnaohtmj
+lucjygedpvsbeftkfiwnaorzyq
+lucjygcdpvsbpftkhiwnaorzmq
+lucjygedpmsbhftkxiwnkouzmq
+oucjygedpvsbyftkximnaorzmq
+lucjcgedpvsbhftkxywnforzmq
+lfcjygedfvsbdftkxiwnaorzmq
+ducjygedevsbhfttxiwnaorzmq
+ldcjdgedpvsbhftkxiwnavrzmq
+lucjymedmvsbhqtkxiwnaorzmq
+lucjygedpvabhftkxiwnasrlmq
+lucjygefpvsbhftkxmwnaorkmq
diff --git a/main.zig b/main.zig
@@ -12,6 +12,79 @@ pub fn main() !void {
debug.warn("01-1: {}\n", total_sum(input01));
debug.warn("01-2: {}\n", first_visited_twice(input01));
+ debug.warn("02-1: {}\n", checksum(input_02));
+}
+
+fn checksum(input: [] const [] const u8) u32{
+ var num_with_pair: u32 = 0;
+ var num_with_triple : u32 = 0;
+ for (input) |id| {
+ if (has_pair(id)) {
+ num_with_pair += 1;
+ }
+ if (has_triple(id)) {
+ num_with_triple += 1;
+ }
+ }
+
+ return num_with_pair * num_with_triple;
+}
+
+fn has_pair(id: [] const u8) bool {
+ // ASCII: [ 65, 66, ..., 122 ]
+ const ascii_range = u8('z' - 'A') + 1;
+ var counts = []u32{0} ** ascii_range;
+ for (id) |char| {
+ var count_index: u8 = u8(char - 'A');
+ debug.assert(count_index < counts.len);
+ counts[count_index] += 1;
+ }
+ for (counts) |count| {
+ if (count == 2) {
+ return true;
+ }
+ }
+ return false;
+}
+
+fn has_triple(id: [] const u8) bool {
+ // ASCII: [ 65, 66, ..., 122 ]
+ const ascii_range = u8('z' - 'A') + 1;
+ var counts = []u32{0} ** ascii_range;
+ for (id) |char| {
+ var count_index: u8 = u8(char - 'A');
+ debug.assert(count_index < counts.len);
+ counts[count_index] += 1;
+ }
+ for (counts) |count| {
+ if (count == 3) {
+ return true;
+ }
+ }
+ return false;
+}
+
+test "letter dups" {
+ debug.assert(!has_pair("abcdef"));
+ debug.assert(!has_triple("abcdef"));
+
+ debug.assert(has_pair("bababc"));
+ debug.assert(has_triple("bababc"));
+
+ debug.assert(has_pair("abbcde"));
+ debug.assert(!has_triple("abbcde"));
+
+ debug.assert(!has_pair("abcccd"));
+ debug.assert(has_triple("abcccd"));
+
+ debug.assert(has_pair("aabcdd"));
+ debug.assert(!has_triple("aabcdd"));
+
+ debug.assert(has_pair("abcdee"));
+ debug.assert(!has_triple("abcdee"));
+
+ debug.assert(!has_pair("ababab"));
+ debug.assert(has_triple("ababab"));
}
fn total_sum(input: []const u8) !i32 {
@@ -89,3 +162,256 @@ fn get_file_contents(allocator: *mem.Allocator, file_name: []const u8) ![]u8 {
const st = &buf_stream.stream;
return try st.readAllAlloc(allocator, 2 * file_size);
}
+
+const input_02 = [] const [] const u8 {
+ "luojygedpvsthptkxiwnaorzmq",
+ "lucjqgedppsbhftkxiwnaorlmq",
+ "lucjmgefpvsbhftkxiwnaorziq",
+ "lucjvgedpvsbxftkxiwpaorzmq",
+ "lrcjygedjvmbhftkxiwnaorzmq",
+ "lucjygedpvsbhftkxiwnootzmu",
+ "eucjygedpvsbhftbxiwnaorzfq",
+ "lulnygedpvsbhftkxrwnaorzmq",
+ "lucsygedpvsohftkxqwnaorzmq",
+ "lucjyaedpvsnhftkxiwnaorzyq",
+ "lunjygedpvsohftkxiwnaorzmb",
+ "lucjxgedpvsbhrtkxiwnamrzmq",
+ "lucjygevpvsbhftkxcwnaorzma",
+ "lucjbgedpvsbhftrxiwnaoazmq",
+ "llcjygkdpvhbhftkxiwnaorzmq",
+ "lmcjygxdpvsbhftkxswnaorzmq",
+ "lucpygedpvsbhftkxiwraorzmc",
+ "lucjbgrdpvsblftkxiwnaorzmq",
+ "lucjfgedpvsbhftkxiwnaurzmv",
+ "lucjygenpvsbhytkxiwnaorgmq",
+ "luqjyredsvsbhftkxiwnaorzmq",
+ "lucjygedpvavhftkxiwnaorumq",
+ "gucjygedpvsbhkxkxiwnaorzmq",
+ "lucjygedpvsbhftkxlwnaordcq",
+ "lucjygedpvibhfqkxiwnaorzmm",
+ "lucjegedpvsbaftkxewnaorzmq",
+ "kucjygeqpvsbhfokxiwnaorzmq",
+ "lugjygedwvsbhftkxiwnatrzmq",
+ "lucjygedqvsbhftdxiwnayrzmq",
+ "lucjygekpvsbuftkxiwnaqrzmq",
+ "lucjygedpvsbhfbkxiwnaoozdq",
+ "lscjygedpvzchftkxiwnaorzmq",
+ "luckygedpvsbxftkxiwnaorvmq",
+ "luyjygedgvsbhptkxiwnaorzmq",
+ "lmcjygedpvsbhfckxiwnaodzmq",
+ "lucmygedwvybhftkxiwnaorzmq",
+ "lgcjhgedavsbhftkxiwnaorzmq",
+ "lucjugedpvsbhftkxiwmaoozmq",
+ "lucjygedpvybhftkxkwnaorumq",
+ "lucjygedpvzbhfakxiwnaorzpq",
+ "lucjygedpvsbhftyxzwnajrzmq",
+ "lucjygedpvsdhfakxiwnoorzmq",
+ "luyjygeopvhbhftkxiwnaorzmq",
+ "lucjygadpvsbhntkxiwnaorzmx",
+ "lucjygedzvsbhftkiiwuaorzmq",
+ "sucjygodpvsbhftkxiwuaorzmq",
+ "euijygydpvsbhftkxiwnaorzmq",
+ "lucjlgeduvsbhftkxicnaorzmq",
+ "lucjdgedpvsbhfgkxiwnhorzmq",
+ "lucjymedpvsbhotkxiqnaorzmq",
+ "lucjygmdpvsbhftkxywnairzmq",
+ "lucjggedpvsbhfxkxiqnaorzmq",
+ "sucjygedpvsbhftkxiwnaorjmv",
+ "lucjlgedpvsbhftkxiwnairzmg",
+ "lucjygedppubhftkxijnaorzmq",
+ "lucjyxedpvsvhftkxlwnaorzmq",
+ "lucjygedpvxbhftkfiwyaorzmq",
+ "lucjygedposbhftkniwnaorzmw",
+ "lucjygewpvsbhftgxiwnavrzmq",
+ "lucjynedpvsbmftkaiwnaorzmq",
+ "lucjyhedpvzbhftkxiwncorzmq",
+ "lucjygedpvsbhfikpiwnaoezmq",
+ "lupjypedpvsbhftkjiwnaorzmq",
+ "lucjygudpvsbhfwkxivnaorzmq",
+ "lucjygrdpvsbhatkxzwnaorzmq",
+ "lucjbgmdpvsbhftkxihnaorzmq",
+ "lucjmgedpvpbhftkxiwnaorcmq",
+ "lucjygedpvskhfukmiwnaorzmq",
+ "lucjygedgvsbhftkxiwnvprzmq",
+ "lucjzgedppsbhytkxiwnaorzmq",
+ "lfcjypedpvsbhftrxiwnaorzmq",
+ "lucjyqldphsbhftkxiwnaorzmq",
+ "lucjygedpvsbhftzxewnaorzqq",
+ "lucjygeapvsbhftkxiinoorzmq",
+ "lucjygedpvszhftguiwnaorzmq",
+ "luojygedpvsbhftkxawnaornmq",
+ "lucjygedpcsboetkxiwnaorzmq",
+ "lufjygedpvfbhftaxiwnaorzmq",
+ "luciygedpvsbhftkxhwaaorzmq",
+ "lucjygedpvnbhftkaiwnaorzmc",
+ "lucjygedpvsbhftkxiwcaorbdq",
+ "lucjygelpvsbhftaxiwsaorzmq",
+ "lujjygedpssbhftkxiwnaorzmr",
+ "ludjygedpvsbhftkxiynaorzmj",
+ "lukjygeedvsbhftkxiwnaorzmq",
+ "lucjqpedpvsbhftkxiwnaozzmq",
+ "jucjygedpvsbhftkxgwnaorqmq",
+ "llwjygedpvsbhetkxiwnaorzmq",
+ "rucjygedpvsbhftkxiwndorymq",
+ "lucjygedpvsbhftvxswnaorwmq",
+ "lucjygerpvsbhfykxiwnaormmq",
+ "lucjynedpvsbhftkxijnaorziq",
+ "ljcjygedpvrbhftkeiwnaorzmq",
+ "lucjygedpnsbhftkxiwhaornmq",
+ "lucjygadpvsbhftkxibnaorzqq",
+ "lucjqgedpvsihftkxiwnaorzdq",
+ "lucjygedpvsqhfttjiwnaorzmq",
+ "llcjygedsvsbhftkxiwwaorzmq",
+ "lfckygedpvsbhftkxiunaorzmq",
+ "lucjyeedpdsbhftkxiwnaotzmq",
+ "lucjygedpvsbhftkoiwnaoqzcq",
+ "huwjvgedpvsbhftkxiwnaorzmq",
+ "lucjygldpvsbdhtkxiwnaorzmq",
+ "lycxygedpvsbhftmxiwnaorzmq",
+ "lucjygedpvsbhftyxianvorzmq",
+ "lucuygedpdsbhqtkxiwnaorzmq",
+ "lucjyggdpvsbhftkxiwnavremq",
+ "lucjyggdpvsbkftkxiwnaorbmq",
+ "luchyqedpvsbhftixiwnaorzmq",
+ "lpcnygedpvsbhftkxzwnaorzmq",
+ "lucjygedpvsihftkxiwfaortmq",
+ "lucjygvdpvsbhgtkxiwnamrzmq",
+ "lucjygodpvrbhqtkxiwnaorzmq",
+ "lucjygedpfsbhftkxipnaorzma",
+ "lucjygedpvsbhftkxpcjaorzmq",
+ "lucjygodbmsbhftkxiwnaorzmq",
+ "lucjygedpvsbhftkxipnaogzmb",
+ "luxjygjdpvsbhltkxiwnaorzmq",
+ "lucxygedpvsbhftkxzwnaorjmq",
+ "luajygedpvsbhftzxiwaaorzmq",
+ "lhcjygedpvsqhftfxiwnaorzmq",
+ "lucjygecphsbhftkxiwnaprzmq",
+ "lucjygedpvsbhptkxifnaorqmq",
+ "lucjygedpvichftkpiwnaorzmq",
+ "lucjygedpcsbhstkxswnaorzmq",
+ "kucjygedpvsbhftkxiwbyorzmq",
+ "lfpjxgedpvsbhftkxiwnaorzmq",
+ "lucjytldpvsbhftkxiwdaorzmq",
+ "lufjygedpvfbhftbxiwnaorzmq",
+ "lucjygebpvgbhftkxipnaorzmq",
+ "luujygedpvdbhftkxiwnaorzmd",
+ "lucjygedpvsbhfbyxwwnaorzmq",
+ "lucjygedpvsbhftkxiwnaoqpmw",
+ "qucgygedpvsbhftkxiwnaortmq",
+ "ludjtgedpvsbhftkxiunaorzmq",
+ "lucjyiedovsbhftkxiwjaorzmq",
+ "lucjygedpysbjftoxiwnaorzmq",
+ "lumjygedpvsbuftkxiknaorzmq",
+ "lucjygedpvsbhfokxgonaorzmq",
+ "lucjygeqpvsbhftkfiwnaorzeq",
+ "lucjygedpvskhftkxiwntorkmq",
+ "luujygedpvsbhftkxiwraorzmt",
+ "lucwygedpvsbjftkxiwnaorzmj",
+ "jucjyfedcvsbhftkxiwnaorzmq",
+ "luujygedpnsehftkxiwnaorzmq",
+ "lucjygedpvszhfckxiwnaorzmi",
+ "lucjyredpvsbzftkpiwnaorzmq",
+ "lucjygedpvsbwfgkxiwnaorzoq",
+ "lucjygedpvgbhftkpiwnaorzms",
+ "lucjygedpvjbhftkxzwnaoizmq",
+ "vucjycedpvsbhftkxiwfaorzmq",
+ "luawygeapvsbhftkxiwnaorzmq",
+ "lucjygetpvsbhftkxiwnaafzmq",
+ "lucjvgedpvsbhftkxywnavrzmq",
+ "luolygedpvsbgftkxiwnaorzmq",
+ "likjygedpvsbhftkxiwnabrzmq",
+ "lucjygedovsbhftkxirpaorzmq",
+ "lucjygedphsshftkxqwnaorzmq",
+ "uuqjygewpvsbhftkxiwnaorzmq",
+ "lucjygedcvsbhftkxiwoarrzmq",
+ "lucnygedpvsbhfakxiwnaorzms",
+ "lucjygedpvsbhntkxiwnawrzmb",
+ "lucjygedpvsblfxkxivnaorzmq",
+ "lucjygedpvsghftkxiwnaawzmq",
+ "yucjygedpgsbhftkxiwnaorzbq",
+ "lucjyweapvsbhftkxiwnaoezmq",
+ "lucjygevpvsbyftcxiwnaorzmq",
+ "luejygedovsbhftkxiwnqorzmq",
+ "lucjyqedpvsbhfbkxiwnaorzms",
+ "lucjypedpvsbhftwxiwnhorzmq",
+ "lucjygedpvsbhmtkviwxaorzmq",
+ "lucjogedpvpbhftkxiwnaorqmq",
+ "lucjygedpvsbhztkxkwnaoazmq",
+ "lucjyaedpvsbcftkxiwnaorzhq",
+ "lucjygbdpvkbhftkxiznaorzmq",
+ "lucpygedpvzbhftkxfwnaorzmq",
+ "lucjmgedpcsbhftkxiwnaoezmq",
+ "lucjygedyvsbbftkxiwnnorzmq",
+ "lucjyyedpvsbhftuxiwnaonzmq",
+ "lucjygfdpvsbhutkxiwnaorzmt",
+ "uccjygedpvschftkxiwnaorzmq",
+ "lusjygedpvbbhqtkxiwnaorzmq",
+ "ducuygedpvsbhftkxiwnaorzyq",
+ "lucjygkdvwsbhftkxiwnaorzmq",
+ "cucjyyedpvsbhftkxiwnaerzmq",
+ "lucjygedavsbhftkxiwnkorzbq",
+ "lucjygedmvsyhftkxiwiaorzmq",
+ "lucjygeipvsbhfpkxiwnaorzpq",
+ "vucjugedvvsbhftkxiwnaorzmq",
+ "lucjyzedpvsbhftkxpwnaoozmq",
+ "lucjygedpvgbhftkxiwtaorzqq",
+ "lecjygedpvcwhftkxiwnaorzmq",
+ "lucjyghdpvsbhfcyxiwnaorzmq",
+ "lucjygedpvesqftkxiwnaorzmq",
+ "lucjyjehpvsbhftbxiwnaorzmq",
+ "lucjygedpvtbhdtkxignaorzmq",
+ "lucjygxdpgsbhftkxivnaorzmq",
+ "lucjygvdpvsbhftkpiwnaorzqq",
+ "lucjysedpvsbhftkxiwnalrzmc",
+ "lucjygedpvkbhjtkxiwnaorsmq",
+ "lucjygedpvsbvfgkxiwnaerzmq",
+ "lucjygedpvsihftkxilnaorzmu",
+ "lvcvygndpvsbhftkxiwnaorzmq",
+ "lucjysedpqsbhftkxiwnaordmq",
+ "lucsygeypvsbhftkwiwnaorzmq",
+ "lucjygewpotbhftkxiwnaorzmq",
+ "lucjysedpvsbhftkxiwnanrzmv",
+ "lucjygedpvsbhutkxiwnaoplmq",
+ "wucjygedpvsqbftkxiwnaorzmq",
+ "lacjygeepvsbhftkxiwnjorzmq",
+ "lucjygedpusyhftkxicnaorzmq",
+ "qucjyredpvsbhftkxiwnworzmq",
+ "lucjygedevsbhftkgiwnayrzmq",
+ "lucjygedpksbrftkliwnaorzmq",
+ "lucjygedpvsbhfgkxisnaorzeq",
+ "lucjygedpvhdhftkeiwnaorzmq",
+ "lucjsgedpvsboftkxiwnaorumq",
+ "luctygedpvsbhftouiwnaorzmq",
+ "lucjygedpvsjhfukjiwnaorzmq",
+ "lucjagrepvsbhftkxiwnaorzmq",
+ "lucjkgerpvsbhftkxiwnairzmq",
+ "turjygedpvsbnftkxiwnaorzmq",
+ "lbcjygedpvsbhftkdpwnaorzmq",
+ "lucpygedpvsbhftkxnwnoorzmq",
+ "jucjygedpvsbhbtkxicnaorzmq",
+ "lecjygedpvsbhftkriwnaogzmq",
+ "licjyvcdpvsbhftkxiwnaorzmq",
+ "lrcjygewpnsbhftkxiwnaorzmq",
+ "ltcxygedpvlbhftkxiwnaorzmq",
+ "luctygedpvhbhztkxiwnaorzmq",
+ "lucwygedplsbhfakxiwnaorzmq",
+ "lucjygedpnsbhftkxiwjaoezmq",
+ "lucpygedptsbhftkxiwnaorzmo",
+ "lucjygedpvibhqtkxiknaorzmq",
+ "lucjwgqdpvrbhftkxiwnaorzmq",
+ "lucjmgkdpvsbhftkxiwraorzmq",
+ "lucjygwupvsbhftkxiznaorzmq",
+ "lucjhgedpvobhftkxiwncorzmq",
+ "lucjygedpvsbhftkxiwnaohtmj",
+ "lucjygedpvsbeftkfiwnaorzyq",
+ "lucjygcdpvsbpftkhiwnaorzmq",
+ "lucjygedpmsbhftkxiwnkouzmq",
+ "oucjygedpvsbyftkximnaorzmq",
+ "lucjcgedpvsbhftkxywnforzmq",
+ "lfcjygedfvsbdftkxiwnaorzmq",
+ "ducjygedevsbhfttxiwnaorzmq",
+ "ldcjdgedpvsbhftkxiwnavrzmq",
+ "lucjymedmvsbhqtkxiwnaorzmq",
+ "lucjygedpvabhftkxiwnasrlmq",
+ "lucjygefpvsbhftkxmwnaorkmq",
+};