Преглед на файлове

Initial commit. Solve two first puzzles

Jonatan Gezelius преди 4 години
ревизия
b84c70f5f9
променени са 7 файла, в които са добавени 1325 реда и са изтрити 0 реда
  1. 3 0
      .gitignore
  2. 19 0
      01/aoc_1a.py
  3. 21 0
      01/aoc_1b.py
  4. 968 0
      01/input.txt
  5. 39 0
      02/aoc_2a.py
  6. 25 0
      02/aoc_2b.py
  7. 250 0
      02/input.txt

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+    # Byte-compiled / optimized / DLL files
+    *.py[cod]
+

+ 19 - 0
01/aoc_1a.py

@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Oct 15 20:54:13 2021
+
+@author: Jonatan
+"""
+
+def main():
+    print("Yomanshit!")
+    
+    freq = 0
+    with open("input.txt") as file:
+        for line in file:
+            freq += int(line.rstrip())
+            
+        print(freq)
+
+if __name__ == "__main__":
+    main()

+ 21 - 0
01/aoc_1b.py

@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Oct 15 20:54:13 2021
+
+@author: Jonatan
+"""
+
+def main():
+    freq = 0
+    dupes = {}
+    while True:
+        with open("input.txt") as file:
+            for line in file:
+                freq += int(line.rstrip())
+                if freq in dupes:
+                    print(freq)
+                    return
+                dupes[freq] = 1
+
+if __name__ == "__main__":
+    main()

+ 968 - 0
01/input.txt

@@ -0,0 +1,968 @@
++11
++9
++15
+-17
++8
++16
++5
++13
++8
+-6
++12
+-17
+-16
++13
++16
+-15
+-5
++11
++19
++5
+-8
++20
++18
++15
+-4
+-12
++8
++2
++15
++12
+-13
+-4
+-1
+-14
+-15
+-6
+-9
+-13
++18
++13
++6
+-8
+-3
+-19
++8
++17
++8
++5
+-11
++15
+-7
++9
+-18
+-9
++17
+-14
+-19
++4
+-6
++4
++1
+-12
++4
+-1
+-9
++4
++19
++20
++11
++8
++19
+-13
++17
++6
++8
+-11
++5
++9
+-15
++17
+-12
++6
+-19
+-2
++17
+-18
++7
+-5
++19
++15
++5
+-6
++2
++5
++18
++11
++2
++5
+-14
++17
++17
++1
++17
+-9
+-1
++5
+-11
++5
+-17
++2
++14
++16
+-3
++17
++18
++1
+-16
++19
+-11
+-10
++3
++8
++17
++19
+-18
++6
+-1
+-2
++14
+-2
++12
++11
++1
+-19
+-1
++18
++13
+-6
+-10
+-13
++12
+-11
++19
++14
++17
+-2
+-18
+-4
++11
+-12
+-2
+-21
++7
+-1
+-5
+-13
+-18
+-18
+-7
++9
++12
++6
+-12
++20
+-19
++6
+-19
++3
+-16
++20
+-17
+-8
++4
++8
+-21
++18
+-6
+-13
++2
++5
+-14
+-16
+-19
+-17
++4
+-15
+-11
+-3
++6
++13
++18
+-16
+-16
+-15
+-15
+-2
++1
+-3
++13
++25
++1
++14
+-8
+-8
+-19
++7
++11
++20
++5
+-9
++8
++19
+-9
++3
++1
++1
+-12
++18
++15
+-5
++11
+-1
++18
+-2
+-18
+-14
+-1
+-16
++12
++12
+-20
++10
++25
+-13
+-17
+-20
+-13
++11
+-40
+-19
++5
+-21
+-9
+-15
+-6
++3
++13
+-5
+-2
++33
++3
+-7
++42
++32
+-13
++2
++37
+-1
+-20
++30
++3
++8
++10
++11
+-5
+-26
++35
++16
+-12
++9
++16
++18
+-13
+-15
++19
++6
++18
++16
++11
++16
+-2
+-10
++1
+-2
++17
++7
+-1
++17
++6
++15
++7
+-5
+-6
++9
+-4
+-17
+-14
+-1
+-21
+-2
++15
++3
++8
+-18
+-17
+-14
++6
+-17
++20
++13
++14
+-1
+-1
++3
+-11
++19
++19
++7
+-18
+-9
++11
+-12
++11
++4
++2
++8
+-2
++6
+-20
++5
++6
+-13
+-8
++6
++11
++8
++2
++7
++11
+-7
++18
++11
++15
+-16
+-18
++6
++10
++6
++15
++13
++4
++4
++14
++14
+-47
++17
+-7
+-20
+-1
++19
++16
+-23
+-13
+-17
++13
+-8
++6
+-20
++4
++15
++4
++19
++19
+-7
+-24
+-17
+-19
+-2
++19
+-13
++8
+-4
+-19
+-9
++29
++21
+-29
++2
++15
++22
++1
++21
+-13
+-14
++12
+-57
+-5
+-49
+-10
+-19
+-19
+-6
++7
++21
+-12
+-13
+-13
++4
+-15
++9
++21
+-7
++19
++32
++31
+-27
+-21
++25
+-101
++69
+-75
++26
+-22
+-45
+-30
++5
+-40
+-15
+-880
+-60727
++14
+-13
+-18
++7
++2
+-5
++6
++14
++5
++5
+-18
+-15
+-9
++7
+-10
++19
++4
++7
++6
++3
++21
++2
++5
+-19
++15
+-11
+-19
+-7
+-1
+-16
++4
+-12
+-15
++3
++5
+-6
+-14
++11
+-16
+-7
+-15
++8
++12
+-2
+-9
+-12
+-17
++19
+-5
+-19
++16
+-10
+-13
+-14
+-1
+-10
+-18
+-6
+-11
++8
+-11
++4
++14
++9
++8
+-18
+-9
++8
+-19
+-5
+-14
++13
++19
++13
++16
++19
+-4
+-4
++3
++19
+-4
+-7
+-15
++6
+-9
+-15
++12
+-14
++6
+-17
++9
++13
+-4
+-20
++17
+-9
+-12
++16
++6
+-9
++19
++10
++11
++17
+-19
+-1
++12
++12
++1
+-6
+-1
++4
+-12
++11
+-14
++19
+-3
+-9
+-6
+-23
+-2
+-13
++18
+-2
++10
++2
++8
+-9
+-20
+-17
+-21
+-14
++11
+-5
+-15
++2
+-9
++4
+-7
+-12
++9
+-1
+-11
++1
+-10
++11
+-17
+-10
+-17
+-3
+-10
++11
++15
+-19
+-14
++1
++2
++18
++17
++3
++17
+-18
+-15
++2
+-3
+-14
++9
++9
++6
+-18
++13
+-21
+-18
++12
++7
++13
+-11
++20
++12
++1
++15
+-14
++4
++11
++18
+-2
+-7
+-12
+-11
++5
++10
++6
++8
++18
++6
+-13
++19
+-5
+-3
++14
+-3
+-20
+-3
+-3
++16
+-15
+-12
++8
+-24
+-16
+-13
+-3
++13
++6
+-12
+-31
++7
+-18
++17
+-13
++1
+-15
++16
++4
+-1
+-17
+-1
++16
+-4
++13
++8
++3
++33
++8
+-6
++20
+-4
++2
++13
+-29
+-17
+-22
+-24
+-5
++2
+-12
+-1
++2
+-15
++2
+-11
++6
++1
+-2
++5
++4
+-22
++5
++19
+-13
+-7
++16
++6
++2
+-22
++19
++9
++8
+-9
+-12
+-18
+-13
++1
++5
+-9
++10
+-11
+-10
++16
+-15
+-2
+-16
++1
+-15
+-17
+-3
++6
++11
++4
++11
+-16
+-3
++6
+-1
++13
++18
++6
+-2
+-6
+-4
+-5
++20
++19
+-8
++1
+-13
++16
++1
++10
+-25
+-19
+-4
++9
+-8
++17
++6
+-19
+-2
++5
++12
++7
+-21
+-12
++3
+-7
+-11
+-3
+-18
++2
++12
++20
+-23
+-19
+-17
++9
+-19
++1
+-14
+-5
+-4
+-9
++17
++4
++3
++15
+-13
++1
+-12
+-17
++8
++8
+-20
+-17
++15
+-16
++10
++7
++2
+-10
+-2
++8
++19
+-6
+-17
+-8
++9
++17
++25
+-5
+-18
++4
++18
++9
++18
+-14
+-2
++11
++14
+-17
+-15
++38
++12
+-2
++14
++4
++21
++16
++12
++15
++23
+-1
++6
++9
+-24
+-6
+-13
+-3
++33
+-13
++62
++81
++11
+-5
+-27
++9
+-7
++20
+-19
+-4
++27
++28
+-29
++82
++11
+-10
++8
+-22
++42
++34
+-24
+-15
++19
+-66
+-70
+-34
+-18
+-548
++408
+-1249
+-60542
++6
+-17
+-4
++6
+-7
++3
++14
++2
++15
+-6
+-5
++19
+-17
+-10
++6
+-11
++2
+-4
++10
+-5
+-11
+-13
+-12
+-14
+-10
+-9
++17
++9
++15
++1
+-10
+-10
++14
++16
+-17
+-15
++7
+-6
+-16
+-10
++15
+-2
+-7
+-3
+-5
+-14
+-8
+-9
++16
++7
++17
+-22
++12
+-16
++18
++5
++15
++10
++20
++11
+-5
++12
+-16
++8
+-16
++13
++14
+-5
+-12
+-9
+-16
+-5
++16
+-18
++21
+-9
+-13
+-8
+-10
++14
++18
+-17
+-16
++8
+-15
++2
+-4
++3
+-21
++17
+-16
++18
++18
+-3
+-21
++1
+-19
+-3
+-2
+-4
+-5
+-20
+-19
++6
+-19
++3
+-12
++124236

+ 39 - 0
02/aoc_2a.py

@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Oct 15 20:54:13 2021
+
+@author: Jonatan
+"""
+
+def parse_line(line):
+    ret = {}
+    cnt = {}
+    for c in line:
+        if c in cnt:
+            cnt[c] += 1
+        else:
+            cnt[c] = 1
+            
+    for dupes in cnt:
+        if cnt[dupes] == 2:
+            ret[2] = 1
+        elif cnt[dupes] == 3:
+            ret[3] = 1
+            
+    return ret
+    
+
+def main():
+    two = 0
+    three = 0
+    with open("input.txt") as file:
+        for line in file:
+            res = parse_line(line.rstrip())
+            if 2 in res:
+                two += 1
+            if 3 in res:
+                three += 1
+    print(two*three)
+
+if __name__ == "__main__":
+    main()

+ 25 - 0
02/aoc_2b.py

@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Oct 15 20:54:13 2021
+
+@author: Jonatan
+"""
+
+
+def main():
+    dupes = {}
+    with open("input.txt") as file:
+        for line in file:
+            better_line = line.rstrip()
+            for c in range(len(better_line)):
+                index_list = list(better_line)
+                index_list[c] = '_'
+                index_str = ''.join(index_list)
+                if index_str in dupes:
+                    print(better_line[:c]+better_line[c+1:])
+                else:
+                    dupes[index_str] = 1
+            
+
+if __name__ == "__main__":
+    main()

+ 250 - 0
02/input.txt

@@ -0,0 +1,250 @@
+rmyxgdlihczskunpfwbgqoeybv
+rmyxgdlksczskunpfwbjqkeatv
+rmybgdxibczskunpfwbjqoeatv
+rmyxgdlirczskuopfwbjqzeatv
+rmyxedlrhczskunpfwbyqoeatv
+rmyxfdlicczskunpfwbxqoeatv
+rmyxgvlihkzskunpfwbsqoeatv
+rmyxgdaihczvkunpfwblqoeatv
+nmyxgolihczskunpfwbjqieatv
+rhyxgdcihczskunifwbjqoeatv
+rmfxgdlihczskunpfwbvqgeatv
+smyxgdlihczskunsiwbjqoeatv
+rmyxgdcihcxskunpfwbrqoeatv
+rmyxgdlihczckuiqfwbjqoeatv
+rmyxxdwihczskunifwbjqoeatv
+rkzxgdlihczskunpfwhjqoeatv
+rmypgdlihczskunpfwbrqoeafv
+rmyxgplihczvkunpkwbjqoeatv
+rqyxgdlihdzskjnpfwbjqoeatv
+rmyxgdlihczskqnpswbjqoeaov
+mcyxgdlihczmkunpfwbjqoeatv
+rmyxgdlohczspunpowbjqoeatv
+tmyxgdlihczskunpfwbeqoeltv
+rmyxgdlibccskunpfwbjqoegtv
+rmyxgdlehczsaunpfwboqoeatv
+rmaxgdlihczseunpfwbjqojatv
+rmyxgdlijczskynpfwbjboeatv
+kmlxgdlilczskunpfwbjqoeatv
+rmsxgdlshczskenpfwbjqoeatv
+rmbxgdlihcmskgnpfwbjqoeatv
+rayxgdlihczskunpfwbjqoeaef
+umyxgdlisczskunpfdbjqoeatv
+rmyxgdlihczskunsfwbjqieatg
+rmbxgdlihczhkunpfwbjqoeamv
+rmyxgdlihczskeypfwbjqxeatv
+rmyxgkrihczskunptwbjqoeatv
+rmyxgdlihczskunpawbjqoexiv
+rmyxgdlihcrskqnpfwbjqceatv
+rmyxgblihczskjnpfwbjqieatv
+rmyggdlidczskunofwbjqoeatv
+rmyxgdlghczskunphwbjqomatv
+rmqxgdbihczskunpfnbjqoeatv
+rvyxgdlihczsgunpfwbjqoeanv
+royxgdlnhczskqnpfwbjqoeatv
+rmyxgdlihczskugpfwbkqreatv
+rmyxfdlihczskunppwejqoeatv
+rqyxgdlipczskunpfwbjqoeqtv
+rmyxgdlicczskunpnwbjqotatv
+rmyxodlihczskxnpfwijqoeatv
+rmyxrdyihczskunpftbjqoeatv
+rmtxgdyihwzskunpfwbjqoeatv
+tmyxcdliiczskunpfwbjqoeatv
+rmyxgdlihczskmnpfwbjjoeadv
+rmyxgdnihczskunpqwbjqojatv
+bmyxgdlihczskcnpfwboqoeatv
+rmysgdlihcyskudpfwbjqoeatv
+rmyxgdtihczsmuupfwbjqoeatv
+rmyxgdlihczssunpffbjqolatv
+rmyogdlihczsklnpfwbjqoxatv
+rmyxgjlihczskunpfwsjqoyatv
+rmyxgalshczskunpfwbuqoeatv
+rmyfgdlihczskunqfwbiqoeatv
+tmyxgdlihczskunotwbjqoeatv
+rmyxpdzihczskuopfwbjqoeatv
+rmyfgdlihczskunpfrbgqoeatv
+rmyxgdlwhczskhnofwbjqoeatv
+rmyxgdlihczsmudpfrbjqoeatv
+rmyxgdlihczokanpfwbjqooatv
+rmyxrdlihczskunppwjjqoeatv
+rmyxgdjihczskwnpowbjqoeatv
+mmyxgdlihczikunpfwbjqoeamv
+rmyxgflihczshunpwwbjqoeatv
+rmytghlihczskunpfwbjqoeatk
+rmyxgdlipczmbunpfwbjqoeatv
+rmyxgdlihczkkonpfwbjqomatv
+rmfxgslihczskunpfwujqoeatv
+dmyxgdlihczykunqfwbjqoeatv
+rmyxgalihcbskunpgwbjqoeatv
+rmyxgdlinczqkunpfwbjqopatv
+rmyxgdlihwzslunplwbjqoeatv
+rmypgdlihczskdtpfwbjqoeatv
+rmsxgdxieczskunpfwbjqoeatv
+rmyxgdlihczskwnpfxrjqoeatv
+rmyxgdlihzzskunpflbjpoeatv
+rslxgdlihczsnunpfwbjqoeatv
+rmyxgdlmcczskunpfwbjqoealv
+fmkxgdbihczskunpfwbjqoeatv
+rmyxgdiigczxkunpfwbjqoeatv
+rjyxgnlqhczskunpfwbjqoeatv
+ymyxgolihczskunpfmbjqoeatv
+hmyxgdlihczskuncfwbjqoejtv
+rmyxgqlihczzkunpfwbjqojatv
+rmgfgdlihczskunpfwbjgoeatv
+rmyxgdlfhczskunpfwbjqweaxv
+rmoxtdlihczskunpfwdjqoeatv
+ruyxgdlihczskunpfmbjnoeatv
+rmnxgflehczskunpfwbjqoeatv
+rmyugdlihczskunpfwfjroeatv
+rmyxddbihczskunpfwbjqoeutv
+rmyxgdlipczskunofbbjqoeatv
+gmyxgdlihczskunpfkbjroeatv
+rmyxgdllhcpskunpfwbjqqeatv
+rmyxgdlihchskunpfwbjqoelcv
+mmyxldlihczskuncfwbjqoeatv
+ryyxgdlxhczskcnpfwbjqoeatv
+rmyxpdlihczskyntfwbjqoeatv
+rmhxgdlibczskwnpfwbjqoeatv
+rmyxgdlihczskunpfwojbkeatv
+qmyxgdlihczskunpfwbjqoyatm
+rmyxgdlzhczskunpfwbjqoealr
+rmyegdliqczskunpfgbjqoeatv
+umyxgdlihczsvunpfwbfqoeatv
+rmyxgdoihfzskunpfmbjqoeatv
+rmyxgdlihcdskanpmwbjqoeatv
+rmyxgdyihczskunpfrbjqoeaov
+rcyxgdlihczskuegfwbjqoeatv
+rmyxgdlihgwskunpfwbjkoeatv
+rpyxgdlihmzskunpfwbjqoeatp
+rmyxgdlihhzskunpfwbjaoeapv
+rmyxgdsrhczskunpflbjqoeatv
+rmrxgdlihczskunpvwbjqoeabv
+rmcxgylihczskunpfwbjyoeatv
+rmkxgdlyhczsounpfwbjqoeatv
+rmyxgdqihczskunmfwbjqoratv
+rmyxgdlihczskunpfibjqofath
+rmyxgdliqczskunpqwbjqoeaev
+rmhxgdlizcjskunpfwbjqoeatv
+rmyxgdlfhcwskunpfwbjqoeaqv
+rmyxgdlchclskunpfwbdqoeatv
+rmyxgdluhczswunpfwbjqoeatt
+rmyxgdlzqczskunpfwbjqoeatq
+rmdxgdlihszskunpfwbwqoeatv
+rmyxgdlihszsvunpfwbjqueatv
+rmyxgdlhhczskunpffbjaoeatv
+rmrxgdlphczskunpfwbjqreatv
+hmyngdxihczskunpfwbjqoeatv
+rmyxgdlizczpkunpfwbyqoeatv
+rmyxbdlihyzskunlfwbjqoeatv
+rmyxgdlipczsqunnfwbjqoeatv
+rmyxgdlihcsskunpfxbjqoaatv
+rmyxgdljhcznkunpfwbjqfeatv
+rmaxgdlihczspunpfwbjqoqatv
+rsyxgdlihczskunpfwbjqoehcv
+rmyxgjlicczskunpfwbjqoeitv
+rwymgvlihczskunpfwbjqoeatv
+rmyxgdlipfzskunpfwbjqweatv
+rmyxgglihczskunpgwbjqoealv
+royxgdlihczskhnpfwbyqoeatv
+rmyxgdlihczskvnpfabkqoeatv
+rmyxgdlihczskunpfwhjwzeatv
+jlyxgdlihczskunpfwbjqzeatv
+rmyxgdlihccskunpfwwjqopatv
+rmyxgxlihczskuupfwbjqoeahv
+rmyxgdcihcbskungfwbjqoeatv
+tmyxgdlihczskunpfwbjmoeftv
+rkyxgdlioczskmnpfwbjqoeatv
+rmyxgdlrhczskulpfwbjaoeatv
+rmysgdlihczikunphwbjqoeatv
+rmyxgdlihczskuvpfwbjqoeyty
+fmyxgdlihczscunpfqbjqoeatv
+rfyxgdlihzzrkunpfwbjqoeatv
+rmyxgdlikczskunpfwbjqolath
+rmyxqdlihjzskunpfwbjqoeamv
+rmuxodiihczskunpfwbjqoeatv
+rmyygdliucuskunpfwbjqoeatv
+rmyxgdliwczskuppawbjqoeatv
+rmyxgdlihczskunprwbjqgehtv
+imyvgdlihczskunpfwbjqouatv
+rgyxgdluhczskunpflbjqoeatv
+rmgxgdlihczsdunpfwwjqoeatv
+gdyxgdlihczskunpfwbjqoeavv
+rmyxgdlihczskunpfwljjoektv
+rmexgdlihczskunpfwxjqoeytv
+rmyxqdlihcyskuwpfwbjqoeatv
+rmyxgdlihczskunpfiyjqcebtv
+amyngdlihczskunpfwbjqseatv
+rmzxgdlihczykubpfwbjqoeatv
+rmyxgdlihczhkuopfwbjsoeatv
+rmyxgdlihczskunpfwbaqowztv
+rmgxgdlihczslunpfwbjeoeatv
+rmytgdlzhczskunrfwbjqoeatv
+rmyxgdtihczskunafobjqoeatv
+rmyxgdlihczskuflfbbjqoeatv
+rmdxgdlihczskunpfwbjqoealj
+rbyxgdlihczskuppdwbjqoeatv
+rmyxhdiihcwskunpfwbjqoeatv
+rmmggdlfhczskunpfwbjqoeatv
+rmbxgblihczskuypfwbjqoeatv
+rmyxgslihczsjunpjwbjqoeatv
+rmyxgdlohczsaunpfwbjboeatv
+rmaxgdhihczskunpfwbjooeatv
+rmyxidlihczskunpfgbuqoeatv
+rmyxgdlihfzckznpfwbjqoeatv
+rmaqgdpihczskunpfwbjqoeatv
+rmyvgdlirczskunpfobjqoeatv
+rmdxgdlihczlkunpxwbjqoeatv
+rmyxgdlihczseunpfwbjvdeatv
+rmyxgdlihczskuhpfwbjqneath
+rmyxrdlihciskunpfwbjqoratv
+rmyxgdmihczsqunpftbjqoeatv
+rmyxgdlbhczskulpfbbjqoeatv
+rmoxgdlihczskunpfwbjqoeesv
+rmyxgdlihczskuijfwejqoeatv
+rmyxgdlihczskunpfwnkqoxatv
+rmyxgdvihmzskuupfwbjqoeatv
+rkyxedlihczskunpfcbjqoeatv
+rmyxgdjihczskunprwbjqieatv
+omyxgqgihczskunpfwbjqoeatv
+rmyxydlihczskunpfwkjqoentv
+rmbxgdlicczskunpfwbjqteatv
+emyxgdlihczskugpfwbjqneatv
+dmyxgflihczskunpfwbjqjeatv
+umyxgdlihczskunpfwbjloextv
+rmyxgdlihczsbunpfwbyqpeatv
+rmyxgdrihczsvunpcwbjqoeatv
+qmyxgdlihcwsknnpfwbjqoeatv
+ymyxgdlihczskunpfsbjqowatv
+rmyxgdlbhczskunpnvbjqoeatv
+rmyxfdlixczskunpfwbjqoertv
+rmyygdlihszrkunpfwbjqoeatv
+rmyxgxlihcpskunpfwbjqoeanv
+rmyxgdlihczskjnpfwbjqoprtv
+rmyxgdlisczfkunpfwbjqoeath
+rmyxgdlihczskunpfkbjqoeaji
+rmyxgylihczskunpfwbfqoeatl
+rmsxgdbihczskunpfwtjqoeatv
+smyxgdlihczskunpfwbjqcwatv
+rmyxgdlihczskunppjljqoeatv
+rmyxgdlihczskulpfdbjooeatv
+rmyxgdlihczskunpfibjqcebtv
+rmyxadlihczskunpgwbjyoeatv
+rmyxgdlihczdkunpvwbjqoeytv
+rmyxgdlihcvskunpfwbjxohatv
+rmyxgplihczskunpfgbjqoeauv
+rmyxgdlihcysrunmfwbjqoeatv
+rmyygdlihczskunpfwbjqvewtv
+rmyxgdlihczsmunpfwdjnoeatv
+rmyxgdbibczskunpfwbjuoeatv
+rmyfgdlihczskubpfwbjqoeatp
+rmyxgdlihczskuopfzijqoeatv
+rmyqgdlihczskunpwwbjqoeanv
+imyxgdlihczskunpfwbjqoqytv
+rmyxgdlixcoskbnpfwbjqoeatv
+rmyxgrlihccskunpfwbjqteatv
+rdyxgdlihcpskunpfwbjqoratv
+rmyxgdlihkzskunpfwbjmoeatj
+rmyxgslihczskcnpfjbjqoeatv
+rmyxgdlihczsqunqfwdjqoeatv
+rjyxgdlyhczbkunpfwbjqoeatv
+rmyxudlihczjkunpfwbjqzeatv