summary refs log tree commit diff stats
path: root/2020
diff options
context:
space:
mode:
authorAndinus <andinus@nand.sh>2020-12-06 20:48:41 +0530
committerAndinus <andinus@nand.sh>2020-12-06 20:48:41 +0530
commit48ae4e67b9bc53fb3c7329142621ddef4fa8a16a (patch)
treebbcca991578fd8c3ac9789f72e1a0935944d5920 /2020
parent65034fdf98420f54468b8b57d428389f00baa74b (diff)
downloadaoc-48ae4e67b9bc53fb3c7329142621ddef4fa8a16a.tar.gz
Add day-06 solution
Diffstat (limited to '2020')
-rw-r--r--2020/day-06/README.org152
-rwxr-xr-x2020/day-06/day-06.raku24
-rw-r--r--2020/day-06/input2262
3 files changed, 2438 insertions, 0 deletions
diff --git a/2020/day-06/README.org b/2020/day-06/README.org
new file mode 100644
index 0000000..508800c
--- /dev/null
+++ b/2020/day-06/README.org
@@ -0,0 +1,152 @@
+#+SETUPFILE: ~/.emacs.d/org-templates/level-3.org
+#+HTML_LINK_UP: ../../index.html#2020
+#+OPTIONS: toc:1
+#+EXPORT_FILE_NAME: index
+#+TITLE: Day 06 - Custom Customs
+
+* Puzzle
+- This puzzle is taken from: https://adventofcode.com/2020/day/6
+
+As your flight approaches the regional airport where you'll switch to a
+much larger plane, customs declaration forms are distributed to the
+passengers.
+
+The form asks a series of 26 yes-or-no questions marked a through z. All
+you need to do is identify the questions for which anyone in your group
+answers "yes". Since your group is just you, this doesn't take very
+long.
+
+However, the person sitting next to you seems to be experiencing a
+language barrier and asks if you can help. For each of the people in
+their group, you write down the questions for which they answer "yes",
+one per line. For example:
+#+BEGIN_SRC
+abcx
+abcy
+abcz
+#+END_SRC
+
+
+In this group, there are 6 questions to which anyone answered "yes": a,
+b, c, x, y, and z. (Duplicate answers to the same question don't count
+extra; each question counts at most once.)
+
+Another group asks for your help, then another, and eventually you've
+collected answers from every group on the plane (your puzzle input).
+Each group's answers are separated by a blank line, and within each
+group, each person's answers are on a single line. For example:
+#+BEGIN_SRC
+abc
+
+a
+b
+c
+
+ab
+ac
+
+a
+a
+a
+a
+
+b
+#+END_SRC
+
+This list represents answers from five groups:
+
+- The first group contains one person who answered "yes" to 3 questions:
+  a, b, and c.
+- The second group contains three people; combined, they answered "yes"
+  to 3 questions: a, b, and c.
+- The third group contains two people; combined, they answered "yes" to
+  3 questions: a, b, and c.
+- The fourth group contains four people; combined, they answered "yes"
+  to only 1 question, a.
+- The last group contains one person who answered "yes" to only 1
+  question, b.
+
+In this example, the sum of these counts is =3 + 3 + 3 + 1 + 1 = 11=.
+
+For each group, count the number of questions to which anyone answered
+"yes". What is the sum of those counts?
+** Part 2
+As you finish the last group's customs declaration, you notice that you
+misread one word in the instructions:
+
+You don't need to identify the questions to which anyone answered "yes";
+you need to identify the questions to which everyone answered "yes"!
+
+Using the same example as above:
+#+BEGIN_SRC
+abc
+
+a
+b
+c
+
+ab
+ac
+
+a
+a
+a
+a
+
+b
+#+END_SRC
+
+This list represents answers from five groups:
+
+- In the first group, everyone (all 1 person) answered "yes" to 3
+  questions: a, b, and c.
+- In the second group, there is no question to which everyone answered
+  "yes".
+- In the third group, everyone answered yes to only 1 question, a. Since
+  some people did not answer "yes" to b or c, they don't count.
+- In the fourth group, everyone answered yes to only 1 question, a.
+- In the fifth group, everyone (all 1 person) answered "yes" to 1
+  question, b.
+
+In this example, the sum of these counts is =3 + 0 + 1 + 1 + 1 = 6=.
+
+For each group, count the number of questions to which everyone answered
+"yes". What is the sum of those counts?
+* Solution
+The answers are stored in =@answers= & =$count= is kept for keeping the sum
+of counts.
+
+=%yes= is a hash that'll store the number of times each answer was marked
+"yes". =@individual_answers= holds each individual's answer from that
+group.
+#+BEGIN_SRC raku
+my $input = slurp "input";
+my @answers = $input.chomp.split("\n\n");
+my $count = 0;
+
+for @answers -> $answer {
+    my %yes;
+    my @individual_answers = $answer.split("\n");
+    %yes{$_} += 1 for @individual_answers.join.comb;
+
+    if $part == 1 {
+        ...
+    } elsif $part == 2 {
+        ...
+    }
+}
+say "Part $part: ", $count;
+#+END_SRC
+
+For part 1, we just set =$count= to number of keys in =%yes=.
+#+BEGIN_SRC raku
+$count += keys %yes;
+#+END_SRC
+** Part 2
+For part 2, iterate over keys of =%yes= & increment =$count= by 1 if that
+answer is marked yes by all individuals.
+#+BEGIN_SRC raku
+for keys %yes {
+    $count += 1 if %yes{$_} eq @individual_answers.elems;
+}
+#+END_SRC
diff --git a/2020/day-06/day-06.raku b/2020/day-06/day-06.raku
new file mode 100755
index 0000000..24f55f4
--- /dev/null
+++ b/2020/day-06/day-06.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+sub MAIN (
+    Int $part where * == 1|2 = 1 #= part to run (1 or 2)
+) {
+    my $input = slurp "input";
+    my @answers = $input.chomp.split("\n\n");
+    my $count = 0;
+
+    for @answers -> $answer {
+        my %yes;
+        my @individual_answers = $answer.split("\n");
+        %yes{$_} += 1 for @individual_answers.join.comb;
+
+        if $part == 1 {
+            $count += keys %yes;
+        } elsif $part == 2 {
+            for keys %yes {
+                $count += 1 if %yes{$_} eq @individual_answers.elems;
+            }
+        }
+    }
+    say "Part $part: ", $count;
+}
diff --git a/2020/day-06/input b/2020/day-06/input
new file mode 100644
index 0000000..6320c10
--- /dev/null
+++ b/2020/day-06/input
@@ -0,0 +1,2262 @@
+gqraplu
+jmwftidynvozkhe
+
+cbhejsplztndvig
+duzpteclshfgbinvj
+zvbhdtnigplsej
+ztsbdixmegljhnvapy
+
+syrulqjamnixpwz
+yrjinauqxlz
+yrazqnujxli
+zlnorxjiayqhu
+
+n
+gn
+n
+
+yx
+oxh
+fx
+
+joewxkpzyvldqfricsn
+xqfsnyevltrmcdpiwz
+pvyxdlnzcqwrseif
+cagnvpqwfbzxuyreidl
+
+lqbpai
+quplimxcojkrt
+
+sziyc
+lsvkuhei
+kctsidr
+xkmousi
+sbjnqgafwi
+
+ur
+nu
+u
+u
+u
+
+kgehjantorqdumzfwpivlb
+dvziasuthgmplfwnrqok
+
+ejo
+zs
+
+fgbmsua
+gimuqbfv
+lfzugbm
+uvbfmgp
+iagmbpfhu
+
+bqntdexkfvpwl
+evjblkfxcduyn
+trmxfbvklynz
+svginkxflabh
+
+gdtafy
+dtygafo
+dagfyt
+ydaftg
+gdatyf
+
+ygwkouhpmqseb
+plokghuzxwybeam
+hncokugxmbpsye
+ogfkejuvbmyhp
+hmpnlcregoukqysb
+
+qgm
+xhgjcpmt
+elswfzdgvnoyiu
+mgx
+kagbr
+
+jxiaofcy
+vrtpbkhles
+
+d
+d
+d
+n
+d
+
+yidoljquknxpeaz
+jxevznrpdlkqsiumao
+opilqzajdxnemukr
+hewjdganufopkizxlqb
+
+prwydlbnkhgoqvsxmafeuj
+hwegbjqxrlmfpvysnakduo
+
+ntdzifwmhxkcpg
+gmciznhtu
+
+bvrcmgo
+gvbrcom
+movrbgc
+vrmobgc
+
+uq
+qeu
+yequ
+qpbumck
+nqu
+
+m
+wlgkmze
+m
+
+ytazsmxvhpw
+wphytzvax
+zaxwyfthvpc
+aphzswtxvyok
+
+xmd
+xmd
+
+q
+u
+u
+y
+
+nrwzuibkxy
+yjekmus
+
+iah
+liah
+hapimu
+auhi
+whtia
+
+waxngytpedkcohu
+nicsaypkvztwujleofxrh
+qhopntywekxabuc
+cpawenqyokthxu
+
+ztpgmojkuasni
+tkgipajonszum
+snzpkiaugmojt
+uzniostakjpgm
+
+uvlxwrgyb
+unywtravxlg
+frglqxuiwy
+
+hnybo
+nhyo
+onhy
+
+qbiayve
+tbmrhxc
+
+ifgubhacvkwndempsqyto
+oeikgsmwvathyfqupzdnrb
+aopbwqgtxfeikhvsdnumy
+
+sdcoulxfwkyh
+ylshkufxod
+kdptsfuohvxly
+
+lpinkvcmbjgfzstoyr
+yonrjzpktmfbisc
+ifkzmcopsrybtjn
+zscptibfykromjn
+
+djfzwn
+lsvbyqth
+cfxed
+dnzgw
+
+ukbx
+bh
+
+mrxewvdultgp
+pkwvlgjtmxid
+
+pax
+xa
+rjlxa
+axp
+
+blpq
+uyfaqwbpls
+lnbqp
+qplbzn
+bnqpl
+
+viezwmdhxnbpcuq
+snwlzhdycvbikqpu
+
+xjoarpudhzcqvbklsf
+puqhzfxcraobkvsdl
+svalkqorzuhxndcpfb
+zqhkvusbcoalprfdx
+
+qrav
+qrav
+avqr
+avqr
+vqar
+
+mgizycqbaksjofwtdphn
+qshodcwfbygpmtikjna
+gbhdawmjyofsqtnckpi
+mgufwjpithybodqscnak
+
+drkwnmigxc
+xndwkrmi
+kdxranwim
+krxdwiynm
+
+nzvgidp
+dzvpig
+vzgdp
+vpgdzh
+pvzgd
+
+owzvyrsqlaefxut
+afslqrywvueoztx
+wzxqartvuioyelsf
+evqlwzxustarfyo
+zetoqsulxyfvawr
+
+rvydefukzonxmshw
+yhxenwmdvsfz
+hnzwxivsmdfbey
+
+hzqkpmrgeldniwo
+nelihzrkpwmgdoq
+zhdixrmpownegqbkl
+lpjkgzhnurwymodesiq
+hrgevlonqmbcdzikwp
+
+zmxskldyfobp
+efwzjdyok
+zyihvutofadk
+dokzeryfgc
+
+inbs
+bsni
+snib
+sbni
+inkbs
+
+kuhimvsfetnobjayzrxpclq
+mpyqbtfncerkujzlivaxhos
+khxmojcyuvpqrbitlafzesn
+yjckvrfontsphzabmleuixq
+lhpjmaefbnkyciuortsqxzv
+
+zrlyvkgwsinbteaxcuqdmf
+sqnagelwkbydrxtmufcizv
+dicxqvlgoenabwrtkufsymz
+exvqrkmulnsayzbwdcfgti
+vkgulsxywafinecrbtzdmq
+
+whpx
+hwpxtme
+nwrvhpx
+hpwx
+rwxhp
+
+q
+vz
+q
+x
+
+wyaum
+ouzj
+
+nrqsahcif
+bnia
+nzia
+
+neditjrwlm
+ncovfirzdl
+qrhabpxkus
+
+ypbtzriv
+dsgj
+bfk
+nq
+
+xuegjwzf
+xbjonevumgf
+
+stxl
+tsl
+lstyf
+
+vcpja
+pjacv
+cvajp
+jyacpv
+
+hurbisxv
+vrusibhwx
+khxiqsbturgl
+szbahofeinjurx
+
+cdgbs
+smpb
+
+nxapgmhuise
+hlgafojqykxpwuv
+rbhigaceuxmp
+
+ia
+ia
+ia
+ia
+ai
+
+romdclz
+sbpyaqjeicfxwv
+ogdhrcun
+dklct
+
+bwpjlzmakrhtgcyd
+lywtdgmrpzahkcj
+zcywdpokjahmgrlt
+thkcypzljgfadrmw
+ahtdmzlrygpjfkcw
+
+lqozhpxswn
+aegvhkjo
+
+mvrhzutxkewbyfdnqjgoics
+efnzyojvstdhgqrcxwukbim
+
+eiqctujxmbovyapflhsnrd
+amlunxrvdkpswzfcyoebqjti
+
+ftmj
+fxntmhgzyva
+rpamxuvse
+trsxyfbg
+wdcqkoli
+
+xsovbqdiaztnm
+mjospzaqdcbvlyixn
+obdqizsmavnx
+
+lyqonstrvwk
+oswnltrkqvy
+oqvlnkyswtr
+
+pzyxdkcb
+msuyp
+
+jbtfnimyhgeau
+ubjenfatihg
+ipheugjnatbf
+
+bohtinfxd
+whiofqdx
+ifjgmrdeco
+
+i
+i
+i
+ji
+i
+
+ojvu
+juv
+ujv
+jvu
+ujvn
+
+qvjyraeugi
+jaigryeuqv
+auirgyvejq
+
+l
+l
+l
+l
+
+wcvneqijzlu
+jpfmawgnrts
+tndmxhwjo
+
+ikybgcsdhfjqewramz
+zdyiuchgwkreqbjafxp
+
+hwxbvmodf
+vwfmbxdoh
+bovxmfdwh
+hofvwmdbx
+wodvfbmxh
+
+kvqer
+kverq
+vqrke
+kevqrmg
+
+lmcprdquzfojbwg
+uzdljoqrphgcbfm
+rpmnvlucjgzbfdqox
+
+anevrywoscfgmd
+pkorawscmf
+rcumfipoaws
+
+udfjiq
+urqvjitfd
+jfduqi
+
+al
+l
+
+hqmtedniw
+tnqdihmwez
+
+y
+qy
+y
+ley
+
+ph
+hp
+
+czogpbqrswyemujkdxvh
+hbycpwtxueksovzrdgmnqj
+ukoegrcvsbpwqymdjhxz
+
+ihly
+nyd
+vydw
+
+sjvkuolzixacqnbfm
+milvqkuzfaxbjcnos
+
+vptqewkl
+
+jitqrhcebp
+hmdjfebzynqoic
+jehbiqsxcvw
+
+yvejfgpdhwr
+sclkjzqgdaitbx
+
+molycdpuqtezsaikfgb
+rawhmiuxgbsjkqpftzceyldo
+ykpfmgcadezvsqtuboil
+
+cfy
+fyc
+fycjz
+ycf
+
+nvgokp
+dvlrym
+vbxq
+viec
+
+tshpkilmfn
+rahptloqnmwze
+hcdtgmlpjn
+
+warkbezshofylgpvc
+smfyaicelhvpk
+chpnfkyeaxqvsluj
+hcqpatlmdvsfkyei
+
+mdvxgrpbnaeohkitc
+cmkixqptgeo
+mflsxckyzgjpuoe
+pmdcxqevkorg
+
+jsqdlxcmrnkahgwipfeuz
+zmbjurenytxsaglqpvfwhkic
+ipxjszkgrwdhufaqcelnm
+kelwzuhjsmxngripqfcda
+
+qjeilf
+li
+mswnadl
+
+edlsrkoungwibthcp
+skwbtjpcervoldi
+fseklbitcpomwqr
+ktcprsbzweihol
+
+htdqfkovwjyezu
+thobwyfzuldvjem
+yvduezhfjtow
+eyhwunjzkdvfto
+fhejnzdytovwixu
+
+fwhtnj
+hjwfntl
+ftujnwh
+hbtwjnf
+
+t
+e
+t
+t
+z
+
+nqxcusyotzefvph
+yeocxkiutgmsqf
+ckjyemquxsofwtgd
+
+tmzfevydagckuhqlx
+byvufxtmcrlaqzed
+upctzjfxaleysmdvq
+evcxlnmfdtuyqza
+tqoecfdzivxmuyabl
+
+shgxmojtwil
+dzkqounrelcxw
+bwfyohxl
+
+mcvryskujtwfegnqzpoabl
+kqviphnbclosfegjw
+
+cm
+cm
+icm
+
+bgaxzljdmnikfwty
+inflydazkjwrvmcb
+mblkduehjyaqziwfn
+ifbmwdjznyxgakol
+imfdlwabhkynzj
+
+jlrwutvxeh
+jlrdwhtvxeu
+rjkhluwetxpv
+
+lwikdzhvmc
+cyredwfnkizs
+
+gxb
+x
+x
+
+yeguzh
+zgh
+hpzc
+
+paglzktcsyewuvboq
+cgloauxwzvqsyktepb
+
+y
+m
+b
+b
+
+jogqmp
+imogpj
+mgnpjoa
+
+icgwq
+cwig
+
+piyuamfk
+idyufmopea
+acfuzgniypm
+
+ipkmh
+ibhklmp
+phimk
+tihpkm
+pcvkhuzmyni
+
+jugsl
+lujh
+luyirmj
+ljgsu
+jlu
+
+gzbesjik
+pzisbjekg
+zjksigbe
+
+mdp
+mdcp
+omd
+xqmwcdp
+ikrfdyjlm
+
+wgdjmfbrntluzkysipq
+pfiknrqtbzglyuwjsmd
+
+wgbfixvksaejo
+jph
+
+wtsyo
+ysw
+qyl
+
+ulsbickanygpxqwzhmjf
+faqugxicyljwpzhsnkbm
+
+zhrdfgxw
+xgzqfmd
+flkjdgxz
+yzfcbdxvneg
+ndxfgzo
+
+ilkpncyqfbvorhtwexjds
+iaebcyqudfprh
+mqefrdbhcpyi
+cdrhypiefbgq
+
+zefqwirsglpjv
+hdivwsnqb
+
+vzcexgstnfk
+farxkgzcsbnevt
+sfczvtgnxke
+txepoknzgsvfc
+ksnevtfxcgz
+
+yrlnqwvpmeiuxt
+xqpirlhnymowuv
+
+xan
+jpfa
+aczoup
+cja
+aibgwevkh
+
+m
+sml
+opu
+
+rdbchfwvyamizs
+bofxszcamyrjdh
+rzsntcpmalgyh
+
+ftevgjrbkxmnuidsaqz
+gexasrutkivfbdzqnjm
+dnimrtkeugfzajsxvqb
+quaxkivgnjdrtfbzems
+qxriuendmbagfjzvkst
+
+wthspyrxaijgbkzumvolqe
+ovrgyukexzmpqjhflwit
+tizgwxorvepjkyhlqum
+urlwhtzkvjdqgoximype
+revuqwpogzimyhlxtkj
+
+edpukhotxswnb
+dstnhbueokwpx
+
+yhqwopgnutivk
+qiotnupkvyw
+
+znjofavtsgrkh
+jvahkzotsfgnr
+vhfnrsgtkzoaj
+gfathnzrkosjv
+tvzfsrkjohnga
+
+evyutzwhmxdk
+zxrmsqvfbiwojpg
+
+re
+ktrhjfiz
+c
+aldugvpqybnx
+
+waexnqfbrul
+ertydvxu
+urxe
+echxuor
+rxeu
+
+qtnxbpklyjiw
+dmvocgqbp
+berqpiuz
+hrbkzqp
+jrypbsqa
+
+brhqpmziaxfgle
+rwuzlfenmihpg
+lfcmprhazeig
+
+suzhwbrpe
+clpusebrwai
+pbeasgrofnwu
+dvjwstpxqerkymub
+
+kbouvjnqaysmgrhtwp
+szdvbjhwpxygunfomkt
+gtkleonjbyhmipvsw
+
+mub
+bmu
+
+cfhsjuqrin
+jfinqcrbshu
+nwyjcuflmsrgxdeqhi
+fhiucqjrnso
+
+kdznqiyxu
+emzsrpac
+cszabv
+
+idvqsgemlu
+sdlmevqu
+qlmspeudv
+
+lo
+ol
+
+zcdu
+bcqmdupjzr
+luazkdc
+
+wrju
+wuj
+jauw
+cuwgj
+jurw
+
+sypfjcxmkzh
+vrgpzcytm
+pcdzmyo
+brmwegzynqcp
+auzvcpqmy
+
+qdtxj
+dpjq
+qluajd
+
+bgvldaj
+cxb
+bxc
+rubxf
+
+ziadtsbvuchlofeyjg
+oajlevkdyirbtgqc
+egldjvaiqtybkcor
+litcrbeaojmdvgyx
+
+itcn
+csjftqn
+ntwc
+tncw
+
+aqlmydwfn
+nwliqmfjca
+qwhlmnfa
+nfamqlw
+
+igxtv
+gvxt
+
+dlrkztoe
+gbcdeotf
+dyeoit
+gcdetxo
+
+yuso
+xaesw
+zfsy
+su
+
+wq
+wq
+wq
+qxtw
+qw
+
+fynaektqvcbozhdxpuw
+wzirdbecylampuqs
+
+r
+wcpazh
+pbnyxkt
+lgk
+evdsiuq
+
+tshrjadlymb
+hrftismyjald
+emwljutyarqsdgho
+stjxdhrlmapy
+tajsdhmlrpy
+
+amb
+jvadbm
+fms
+ramjv
+hgtnqywzmkx
+
+skmwcopgnfhuab
+mpjvx
+mrtp
+tympq
+mp
+
+j
+vjtu
+scf
+t
+
+avwomuriqfelzsdnhjybptkg
+yeltqzspmdkihnjvuwfgboar
+
+nhkequsi
+huifnmwsqg
+mnosihugp
+iuyhaslbjvntxr
+piuzshno
+
+rdguywbhevoaf
+aojdgvhbrqyew
+
+dtcipqw
+dktic
+cetsfid
+idctm
+citd
+
+xjnzvmlpi
+vduwgtsy
+
+xfybrjwtkndm
+guxtyvfabjn
+jetfoqnxplyzi
+
+brosek
+soberk
+borsek
+skrboxdze
+
+uadtqoi
+itaqud
+udqtia
+
+ijqrfe
+ijqe
+oqvj
+
+vernidqwmzpho
+wpvzhmoeid
+mviodhpzwe
+
+ikultrxhjoz
+kihjlutzx
+xihkzlujt
+tuixjzhelk
+jxhlutzik
+
+ztnmevyjlbisdfupgkrwq
+iaxytmouwljksngh
+
+ya
+y
+y
+y
+y
+
+dfizts
+fvslqiwtc
+xdsgzitf
+siptfmh
+iskrnutyfe
+
+czlaqjrxoeivgpbsnkym
+bxwldzaikpemjfyosqtgvhcrn
+sqgaroynvkcbejiuzxlpm
+
+adtcenfvy
+ajmwvsdkf
+
+hgpyaov
+fqnaidbgruokxzhy
+oawshgty
+
+vztswelufacbk
+adkfuvmo
+
+ceqrx
+ylgrm
+xr
+zihukwvrno
+rjfm
+
+c
+c
+c
+c
+cy
+
+nkzfxij
+pevkoxydw
+uamtrbhlgcsq
+
+k
+vk
+xgk
+nk
+rk
+
+rokqypnfjm
+fvkrpjygnibqmo
+mpqykofjrn
+fjnpqkmoyr
+jqoymprnfkw
+
+sgpv
+pumasyv
+
+euhbkzytq
+khqdzyeno
+gsfmzkhjeil
+
+g
+g
+g
+
+xnmucpeqvjizwhklbg
+hesokupzcjlrt
+uypfachlzejk
+ekjuchltdfpz
+
+pwaefhvgskymuql
+pykgwvcsqomhfbnajzeu
+reqmsxkgpyfuwvaih
+agqumvpyfktshxdwe
+
+npokjeqbiucfamxyrtw
+haglxndtebiqojymwuzfr
+iymxjtonrfbweqau
+ecwbxyarjmtoqnuif
+
+wmv
+qmof
+
+lvno
+rupsvno
+vfon
+vdno
+
+r
+rf
+
+cruektys
+ckwuqeltbyr
+cektyur
+
+omwygfcpaliuqvteshzdxn
+vqbctzumoikefahdpnwglsx
+litasvmxnoeudqgfphzwjc
+desovqwhuimxzptngrflac
+
+zmyebqukpivjhorctsnldxag
+snckjqrluyzwihaxmvpdoe
+
+awtsrxfhc
+tiqphvdywaz
+ihwta
+
+rfqnegxpmjtzcihskvab
+etmvrxifkqsgjnpbzcah
+
+nabdje
+aezxjn
+bnezoa
+ean
+qrenga
+
+rlhxpyo
+r
+mnorl
+tgwizrqvcbe
+dr
+
+vpqbjyseizrtn
+bljrtepdyqnvszi
+zbtrnysjpvqei
+bhgyqpvjenrtzis
+
+hkzcxmwug
+wygxkuzm
+wumxzgk
+
+rq
+pq
+fu
+ibzwnx
+hr
+
+duabykztcwnqxmflpse
+qxzdpbnfwmstcuakryl
+nlbctapxmkzuwdsyqf
+dyslfpuwbitqnzxahjckom
+
+qoacdtzusvixrh
+euzrowdtglmcikav
+
+outyzds
+bdlyztwso
+kbosyzwedgvjlt
+
+a
+a
+a
+a
+a
+
+poejxws
+jwoexsq
+exjsow
+oexswj
+
+iwqaesxpufgmr
+uxpwmfsaigq
+awmuxpisgqf
+
+ycxhlrfpmnwtab
+rulhtdsf
+
+jbgewroydxaiqfmkzv
+kdvyifqtazmocnws
+ktvhwaoiydqmfz
+vmdokzqwayif
+tkfwaimdzyoqv
+
+sjqhftbamkzwyorlpve
+rsefbmpzhwvkajtqoyl
+ajpmbotsqhevlyrwkzf
+tmslfhqerjkvgxwayopnzb
+tpseohzrvqyjmwlkabf
+
+rtuekjwpcabm
+krbupeminyha
+
+lcgnpwvkeuaxsqhimzorbydft
+hpjksmytlavfzcrundigqboexw
+vhpbzfqemyockrxgniadtuwls
+yowhvzpldfbtqgsxamcnkireu
+kvfbynscmrdaupegltzixwohq
+
+g
+igk
+mwfen
+
+bujfzi
+fbj
+rfjb
+
+kzxnlwcj
+cyezomtkwlj
+cujwlzak
+lawjczk
+ckwsjlzx
+
+fwhyzdn
+qjhcdaew
+
+ibrx
+uqosfw
+xiyre
+gixryl
+
+ck
+kcs
+ukca
+cks
+
+ex
+w
+ijmhbvkoe
+alhq
+
+at
+ta
+uat
+ga
+
+dcgitapjnokhsx
+cbrxumnqijlfvozsy
+
+wfvcx
+kop
+ygensbhta
+crqi
+mdz
+
+dwhcuniof
+ihwmnfu
+ohnudfwi
+kpnirgwjhuef
+ihnwufq
+
+rlga
+sparg
+
+hytsabludcfv
+jewgmrznp
+
+vlmqbx
+pwrcexfhkzgyns
+
+w
+w
+
+av
+zvma
+
+cpjklr
+dyvns
+a
+
+yn
+ny
+gcyn
+umznyhv
+yn
+
+wnvsafjgr
+wfngjiasrv
+
+ievwnudhstf
+fsuvhtiew
+bheutiswvf
+
+udtnwkbheaf
+kucylwvjxiqt
+
+hljtmwnzcdkrfisv
+wdjhtlcnrskivz
+wjdvntscexqlripkbzhgay
+
+bkjmqivtuanscydxp
+cwqxidgpvbntusmakjy
+tbjkvyaixsdcpmqun
+
+ftl
+e
+e
+u
+
+hkjcgexiqbs
+kbehocig
+higkycoblet
+nblicogkeh
+gehikzbc
+
+waingcjboqylezdsu
+nmyukizxdbwvoqgcaspf
+tyqdnbgcsoujiazrw
+
+lfchjito
+vlutojfcsh
+
+jovtwiuheqkrdxapcsfgm
+cvawpxumglirokdtfqjhs
+
+kswydazphxc
+xwhsayzkncde
+
+lahity
+vfgipmabtyrn
+yhidtsa
+yati
+aitqyh
+
+d
+g
+
+rphofvxebzy
+uzqfyd
+
+xyowpfhvtdkjersgalzi
+bgalejwmkrhycopfvtidsxz
+jauyptlhwrvgszfoexkind
+rvkihpgyfawtlzdjxseo
+
+uqbnrhlasgdopwcvfemztkyjix
+oafnpqgtdezrwlxkvmhcubsijy
+
+kgrovfpiatd
+sdrxfik
+hfibczyekmqrlu
+
+oydl
+dohl
+doyl
+
+bkvnawhqodjcrzpfxtl
+lmxcgkfbtqnwyphrouzjvia
+twpvoxkhaqzsnjlrfbc
+
+no
+bnix
+nabv
+tdumsrc
+a
+
+k
+qsj
+aqjs
+
+tzfuo
+fzvxspjamchgio
+fozbq
+ozf
+
+atnxcrdus
+rinqbdasxf
+caursxdnl
+zandsxr
+
+saryuioetn
+apemtnioyr
+alotvfiyngerq
+ntpaoweruidy
+
+q
+it
+c
+q
+
+hzoiptgj
+wzpd
+hpzdj
+bzqkpv
+
+zsa
+za
+
+ol
+o
+h
+
+xf
+zndqlyf
+fk
+
+ubaplvgsfqn
+vlbqefsgpn
+bqlsgnpfv
+lbpvqgnsf
+
+nphoablwjs
+hubyic
+zfmgibxeh
+hdbuyrg
+
+mtdi
+dhntuckim
+dtim
+sfmeidt
+dipxftm
+
+fxwnjhitovpde
+vokwtfjspmedib
+gqftcrelpovyzwid
+dwepovfitan
+
+naphmuwlztbxsiqy
+brpnyfqxto
+dqtrnpykbxe
+npdbjtoyxq
+dvpqtbxyn
+
+tlhrgk
+tkjh
+cxbtov
+tjy
+
+ukjgpahefm
+eiajkdwmt
+dxawynmebikj
+
+ozpmc
+pmzco
+pcmofz
+mcpojz
+zmovdcp
+
+szyamqourexh
+qesympcalfokh
+
+fmlotwur
+zdgwyiqmnk
+
+cyeqwlbki
+dnufjzstpvhr
+
+w
+w
+w
+
+efzqnjvhplgrmy
+bzmovalwqkyjgrxpf
+riydsvtqcufp
+
+tclrg
+rlycb
+edzkrlc
+clr
+
+ljpfkhrzgmno
+zlhpkojfmrnxg
+hgprkymfnzljo
+dbhrgzklvnpioajtmf
+
+vybn
+vybn
+bynv
+vnyb
+vnyb
+
+pvakljgcefuyxzwr
+uwcevpkflrxjgzay
+
+d
+d
+d
+d
+d
+
+siy
+z
+c
+
+fpusnocme
+okum
+wmubojtyiazg
+lfxrkuqmdo
+xoum
+
+z
+i
+i
+
+exoimtjhqap
+xzbmulsdo
+
+nrkvlyhj
+rqhjnkyv
+nhkeyrvj
+
+fgdilbrjovqkxe
+riknjxmocevudl
+koyixrdeljv
+
+fv
+vf
+fv
+ovf
+vf
+
+e
+qcdu
+yk
+aiwrtg
+
+aosmzekcfbg
+cogzvamfkestxb
+wucsqojzbfynrekgmap
+mszbokgefalc
+cbegakfsomz
+
+l
+lr
+l
+l
+
+ipbrflxjntmyzwh
+xthbpywzonkidrfj
+vxtzirpjbnfwkyh
+jbzfaiwtnuxyhgcspr
+tkqhyxbnfizpjwr
+
+idz
+ngmuvotyjqlw
+fdpbz
+bi
+sfk
+
+u
+u
+
+xiwtjalesvy
+itsvdehxwy
+wzbkiovpnesmxgrt
+
+hqalfwptvmydruokzejincgbsx
+fuyjneqibopgvmdlratwhxkscz
+
+soehbfdlunqayzixpcg
+djfeosucbgplqh
+svpwhkurtfgqbdoe
+
+srjgvqtldz
+vzqrdgoljt
+lzsjqgdvrt
+trlvdjzqg
+
+v
+h
+p
+p
+
+cjnm
+mcjn
+pncjm
+mncj
+mjcn
+
+iok
+iok
+iko
+iko
+
+xcwgjue
+kgju
+azogjuft
+jgmuxwc
+
+msajntrlkxqeiohfv
+getnrvjoflqxma
+hfqmjnvagxlotre
+jyovtledxrnfmqab
+qxtverwjialonmf
+
+hksfi
+beqrfzgoul
+
+czlmtbnrqjduah
+rdzgbnmhiauslct
+tcazsudprlhnbm
+nwctrlxbhvudzmfea
+tbcqnyzdrlmuha
+
+s
+m
+m
+
+qmxkiv
+sqcxm
+
+kvtbyfazojer
+rofevztkyajb
+tkazojvbfery
+
+jrwld
+ijward
+jpyrdbwe
+rjwd
+rdwjm
+
+iwartbsghcj
+itgwajlzs
+
+uoebjyairqxpn
+ijauenbyxorq
+arobqyxieunj
+ruhiodexbyqja
+jibecuxoryqa
+
+nk
+nm
+n
+mwn
+nw
+
+rkzdeiufl
+knibderzmufl
+
+ophtrmdneysl
+oelpndymtsrh
+ptndroyehslm
+trsendlympho
+tmpnhyseolrd
+
+vjdes
+avps
+vs
+
+lrokj
+rlvgocjwmnhpxye
+ljrof
+jqfzlro
+jrlo
+
+ajz
+mztjnk
+dojlgbzv
+jzy
+
+nqg
+xgef
+
+qytgos
+qgt
+
+uixtyzmjskabndwl
+xzkujfpqrwtmdsioanb
+gdztwsjmkxieuan
+zwumkxqjdaivstn
+
+ybekpljqhwaozrsunvc
+wabijepnshzvlmkucqoyr
+
+ywq
+vwa
+
+ozxvnabjchsurkyit
+hrcxntaiujfkbsvy
+cvytrqdikuahbsjxgn
+vkybjratchnfxius
+
+xkozfm
+fthk
+ujyprq
+
+dmavqeft
+facmbgevqtk
+qaftmev
+
+nqftsomeiwkh
+kodtfarsqmpnwzev
+gnwfskouxqmte
+kqymjenlstowf
+gqwmeckxfobstn
+
+w
+f
+f
+f
+f
+
+ynouhdazs
+uhndzsqaoy
+dyarhuzsnwo
+
+twvzmsuek
+tulsmekz
+sxmlidpuekz
+zmsenujko
+
+pyid
+pidy
+irsmdz
+
+nglvrjkmh
+altmnwkhfro
+jrlzntym
+unqrimlexbsc
+
+rzmfbjnvtuhalspydkq
+kdctavibrufjzmpwhseql
+
+quj
+uq
+uirqdc
+uq
+
+csorknptwzehgvx
+olzknwjieyhv
+aebwnhvqkoz
+
+onqbzfcsykjrhpuelmdvwt
+gyunqefdoszkptcjlmhwb
+aqbywdnxhjfuselkztopcm
+pnlcosjfhymdwzvbutqeikr
+
+ncs
+ey
+dc
+ypt
+qhvgowiuabkrx
+
+o
+o
+o
+o
+
+si
+s
+sq
+ezsaux
+rsf
+
+mxtindkegroflbps
+wopfiexsrnylgd
+
+cdpszukwehnqyotbarjg
+gohpwlyketrsza
+hyokzsrgeapxltw
+
+ozbaxtrhsnjydpqfmlvckw
+ykpqahmucslrzfwxodtv
+
+dro
+dolr
+idro
+odr
+drojmps
+
+f
+f
+j
+f
+f
+
+x
+cxs
+xm
+xm
+yx
+
+lmjxn
+cdou
+aqekouwci
+
+asqkcwirotd
+iqctslwpkagro
+qwvfrjeixoctasdk
+ksfvrtcaoweuqi
+
+rcxjokgweimzaqlsyvh
+eiszkpamocvhux
+
+svbneghqi
+wlngkm
+
+yx
+yx
+yx
+yx
+
+zgmtedunpharcvifyxsq
+cdwyhxupfamtgzqjnosrevlik
+rtshdumnvfxieypcgbqaz
+nepzuxfaqbtmyrdhgiscv
+yvcmtepxzqadfhrnuisg
+
+odvngjmuw
+nmjguvo
+ipsjlgvboumnyh
+ujvmgond
+
+ibte
+lbj
+
+vnyazpoqm
+nyvouxaepms
+mpgyvjoacwn
+dymapvnkoh
+
+zvqmtfcbeikxwsgjudo
+zjodgqbamcwnevukftx
+tdwevmbqojukzfcxg
+qwykzudcbgmofexajvt
+
+hagrex
+egrxah
+
+z
+z
+
+gmx
+wxtmg
+
+vh
+izshx
+
+vejrthqgixubla
+xwroqnjvzkptfbh
+
+ngpauyltq
+qftxapncled
+qnpbwyualght
+pytqnal
+pwhqktlnua
+
+ofelsiqtakyvgcdubhprm
+arucvsxkezgifobqp
+
+sybhmruftp
+qmbyfrphsu
+qyfrphbusm
+fpusrhymb
+
+haekngcs
+gahj
+
+ycatzehdimog
+fvh
+hqk
+hq
+
+at
+i
+v
+v
+v
+
+fwsecblarvdo
+sdoravlewcfb
+ewjofrlavcdsbz
+drfwcaoslvbe
+
+rwetumkldsgjfbqianohzv
+svfkorqaduhlzigjtwben
+nfwougzjylprdqtvhsbaeki
+
+zdwskmcux
+tcpmxog
+fudcnzxm
+
+wmcleqrfozgstuhandipbykv
+wrfugkoblvazmsxpycjhtdqine
+okzimeadcrpwybvlghstqunf
+
+croutqsxvyfg
+qelbwgca
+gcq
+gqcilm
+gqbpwcz
+
+vbjx
+xfeojybgw
+jbxu
+ujxb
+
+humzypcl
+mlcuh
+mlchu
+mwclhu
+mcuhl
+
+slqntvhwxeby
+vhwxbltseyqn
+wtsxhvblneqy
+
+ikby
+i
+it
+i
+
+loheyfgpaibvmkxn
+auivtdszjelhmcgxp
+iykrlbagmevnhxp
+
+itnaqvyzbjluexgposwc
+xcoqgbusthpnvakzwlyie
+unqgycsvtwozxiblpea
+inzlgatuybvewqcxops
+xtlqgaezvcuyionwbsp
+
+sdbugmnzcwfqyvakjerx
+rebfqgcdmunxsyavwzjk
+szdwkavcbujngmryexfpq
+qevfkmrbxyungjzscadw
+gquzdwsykraxjnhelfvmcb
+
+zocknmwfbitjuv
+cbiojlnuzwt
+nyzbcwitjuo
+zocxjqntwiub
+oajubtzrncwi
+
+iys
+syi
+wzispyhgb
+insy
+
+udpvgixzhyobecns
+hugvxskpeoc
+sgpfoemxcujhvlw
+gxcqoeuvhsp
+coavprushteqygx
+
+zsqtvr
+hqej
+sicqg
+hetqad
+qlkmpyxuowbfn
+
+lopqfgtzsbny
+puyfqbnlzsio
+jnblqypsofzm
+sbyzolfqpn
+pfqblykunsoz
+
+iegjxynurlcftbzkph
+gynlhpdrfezukxcjbst
+cuzteyghlrxikfnbjp
+kzenfpyhrugblxtvcj
+
+hlupx
+fqpsux
+xsqup
+pxuwf
+
+gzt
+zmgt
+ngrmzlt
+zgtcs
+
+nsp
+s
+is
+s
+
+zsixudhgpcfblnqmve
+qxgpsczindufeblvmht
+xfnueqghlmsdbvcpiz
+qibfmhgselxcdznpvu
+
+fkxcogmz
+cxfmkogz
+gxfokmcz
+ayhgxkoqfclmz
+ocxfkgmz
+
+qxtd
+hxmwdgt
+cdtix
+
+vfyb
+epdk
+p
+npz
+
+bkvrjsygeczfpqomhuwdi
+wlrodcybkztqujmheapig
+
+kftsrqpxazb
+zfkxpqbs
+
+guysto
+ysf
+sfy
+ysh
+ys
+
+sh
+o
+vi
+z
+uh
+
+lbqrpxwsuvdec
+fselpdtqkvbrgu
+
+hmwjzxectfnsiqyl
+isxtqjywcnhfmze
+
+uefgopcqnktavdhljir
+dvceuhtlqnkpfi
+ficqudvlhntkep
+invtfpzhldcuemkq
+
+gjlhmdyun
+hlujdmgny
+
+zupwyo
+wyonzpu
+yozpuw
+yojwpzu
+ywpuzoq
+
+atculpzvwro
+vazwctrpuo
+tapwuzgvroc
+
+kwaxzer
+kwerxza
+wkrxeza
+akzerxw
+xwezark
+
+pazsg
+apwsz
+
+tshprib
+phisbr
+pihrbs
+phbsir
+hrsibp
+
+ishtmycqw
+thymsc
+smtchy
+ytscmh
+
+fwuhmsnvjclaipgbd
+huogmlpcvdjwniazs
+givwhcujkmsdnlzpax
+
+kfi
+f
+f
+f
+
+rotszqynjuwvdcmb
+utodajecnvhy
+
+xhmqfursgt
+uthagrnfxscm
+sqhtmfgwixrlyu
+lwrfxytpgushm
+
+l
+l
+l
+j
+l
+
+jfgqrstv
+izaod
+
+rdzqnehxmwlpobuskvjiy
+uhkxpldyqnbwoszmiverj
+zrgpckwdusmixnebvloyfqhj
+uobekwirqxynzdmhvlspj
+
+qauvodcszfhleypxbgjrknt
+yvfdoahkxjnslpgqbrcuzet
+uqrdlzsnpyahtfboxcgvejk
+yjqelcdxrzusghfabktnpov
+oetuxsfzyvlrkhgbnqcdpja
+
+lsgzdmvcykr
+zblvifkcpesjda
+qulndsmtcwzokv
+
+gyvnbcsaljqrfo
+jhbfxlmqizayrswnu
+blsfnraqpyj
+afhylsrjnbq
+
+gaklz
+kaz
+zatnkc
+
+ksgcejpyt
+vtisnmp
+ontfspa
+tsp
+
+gpnklyvzdei
+iylnwvzke
+ziketylvun
+vznyklebi
+kvziajyqnhmcsel
+
+r
+o
+r
+o
+z
+
+ug
+lug
+ug
+
+ydgtezlosuirxqhck
+zhgsqoeyxidctukrl
+ritqhczsuekgdyxlo
+reluzxtksoycdhqig
+dcrziheolgsqkxuyt
+
+pxgmjlwzycrtuonv
+xvrnlpyjzoutwgcm
+lxgtpyuzojcwnvrm
+ncvrlpmyjgzwutxo
+lgcvojwxnuzmrpty
+
+tklvywfzjhx
+uzkftyhvlbxw
+ykhwftxzvl
+
+jukhnepb
+nbukephj
+puenjkhb
+punjherbk
+
+ixsmkpvzqryd
+xifdkpoejy
+
+ghldsu
+orutphgf
+uhgc
+
+pnkdgfcbmwlqjxh
+uwkgyhnsjblmqcd
+
+cui
+iucqvj
+uxprfci
+iwxcu
+iurcx
+
+fomuvtrxj
+txjumv
+uvtyjmx
+mujxtpkvd
+utfyemxvqhj
+
+kahpnit
+zdgtbcjehip
+guwjihbtplr
+mtxsivpqh
+
+hbmuerdji
+pqjyxrlhnbi
+
+blup
+fupb
+bpu
+pub
+ubwmp
+
+ntyhgwjekrxsudz
+bvdkzoprfutcjqgn
+gsaekrjtnmzud
+gnktzjxudr
+nzgtjkulidr
+
+kvamjswfgoul
+fmagujslv
+jcugaslvfm
+
+bdtqeimuzpnhgavrw
+ptmhzulsvqgnfrwkd
+kcyturwmqhzgvdpn
+
+lkvzyhnug
+zuglkyef
+
+xnsqbdhtiagwvrlpezyf
+dlntjkpzugsqwaxeryhf
+rpehgncayztmsqbfiwodlx
+
+fsbv
+ryoptdf
+
+ebxfakjriydp
+yijedfkprqba
+praekbjifdy
+ibaejpfrkdy
+
+myfvdnqsxiazjpg
+jefvmxpaisdozlbcqn
+hkxqjdpnafrmsztv
+
+faoknlebqpy
+kpfylnaoeqb
+oankeqybflp
+nyeqkpfblao
+kobelfpaqyn
+
+b
+qierm
+by
+
+rdhgxubnkcot
+kbcouhmxtgd
+smbtgcahuikyoxd
+
+csuqvbzmopehfanytxlrwkdigj
+qrexnzoakupicfgthdsjybvmwl
+wpfkachnjtxgdysboilmuezrqv
+
+ul
+lu
+lu
+
+qrb
+bycr
+pwe
+
+sbfiuhzw
+msouybvlzrhwdfj
+ihvzblw
+xpbcqazwtekgn
+
+vouxdfiamelztswy
+iflgzytmwsbduxe
+iyfkjmspzwutxlde
+ncldmpithsuyekwfbxgz
+
+ijxcbyp
+jbpiycx
+xybijpc
+
+wanuhtdyskljicxzebmfpvq
+lyguehpfsvcmtbkndwao
+pkbdywhsvmealfctrun
+
+ahbftkwivsczonj
+nwkzvahfbycjitos
+jmznkbieoswtvafhc
+vztkiqjanhsbfwco
+
+olxzgkrjcandtwupehsqbify
+rzcaekovyijgxtwnbdsqhpul
+
+azhycqgnxjpudrvfko
+oxfnhvkqpdcrzjgay
+hrebsqyjpaoglktdxznmcfv
+rjvzcyhdqpagfonxk
+jygkqxfhrcvodznpa
+
+pqkfrztwhgybncd
+yhgpobeuwatmkzqxnrd
+dzqgrvbyptkhnw
+snyhilgrzwvqctkpdjb
+
+zcljnxvohbuqtyf
+cyqlfrhnxujobz
+bwxzhyoeusclfqnjmi
+
+gixeoy
+igoeyx
+gxoeyi
+
+xvfowdzkineas
+dpinwxejkfsavoz
+evkoxiznadfws
+
+pfrxj
+dqearfgnt
+
+sfhkce
+nvbdk
+knv
+
+oxpa
+poxa
+nxvah
+pxa
+xam
+
+lafch
+hafnxlc
+
+dorcjz
+aolei
+
+nszybcuheqmt
+szhjpvencm
+zhnedscmp
+
+wfdatxbsk
+ucwklisqtfn
+
+vguconbkqjmw
+jnqvmgkwu
+nqjwukgvm
+jwvguqnmk
+
+grajfdibqoknsu
+xecwhajtilpz
+yihpzjam
+
+kjzlpfao
+eprntujdzhxwql
+vjlmcyazsp
+
+eyvi
+tiye
+iey
+
+mjlgsacntvyzqrdufhxpk
+ftlzrhsjgvmnkupdxcqay
+dyvhtcruxmapsnljzqkfg
+
+shj
+lzsvj
+sjh
+msj
+js
+
+zhoselpidtvnqac
+cqitodanpuxvzh
+
+ih
+tzhe
+whe
+mrdvh
+
+htacu
+niatchu
+yucath
+
+adhflbns
+plhbdfas
+afshldb
+sdvhaiolqbgf
+ksfdlhba
+
+frsy
+frsy
+srfy
+
+dcq
+dkmeqcv
+qdc
+cdq
+cdyq
+
+awgp
+wp
+fpyw
+
+kjph
+xhkjp
+
+fjplvwnihqotkcsyd
+tdvusiypqkjcfowlh
+
+quyzmxeprlgona
+hwkseitjocfxr
+dzpqolenxr
+brpeyox
+
+bnjhzetoldk
+ftnizogykhamjbul
+zobtjesnklh
+qbkrtjlnohsz
+kbjpwoqznstlh
+
+w
+t
+wgq
+sanxjuzypkf
+
+wkpzeigcxqob
+wbgipzkqeoxc
+ceqkgxbpizwo
+qbozgixckepw
+
+vibupghywqco
+vwiqhcgbpyou
+vycqgohubiwp
+obcguhvipqyw
+pbujhvewogqyic
+
+qol
+los
+oghrfxa
+
+slorfjctxvw
+jdfcyrtoxv
+xuozvcernibftj
+vcjfxwoytr
+
+awrehc
+aicze
+caeh
+
+qxvuhyp
+hxvcpy