diff --git a/res/21/input.txt b/res/21/input.txt new file mode 100644 index 0000000..aae01fd --- /dev/null +++ b/res/21/input.txt @@ -0,0 +1,2027 @@ +vbrb: chdt * bjwg +fjbm: jwfq * rghb +pqdf: sthb + lfsh +mcpm: 13 +wgvm: 8 +ljtb: lhfz + swzh +qbgq: wbtc * gvpc +lmhg: bdms * mlnv +nlfm: hfvj - snpz +blfg: zsmt - qbvp +vmdh: wttr + whjh +dtnd: 3 +svmj: 2 +jctp: lbtn * qwsb +gzwp: 12 +ngzm: 5 +bcsc: hrvn + jncv +tdmr: 4 +lcls: rrbm * glgc +hjzm: vdpq * scgm +vwrp: 1 +wwtw: bjwc * sfvn +lzzh: 5 +bjwc: qscl + qbbp +rqfs: bqsl * dptf +pmcg: spjd * frjb +bmgr: 1 +qdpn: frpm * dlbd +rhtp: 9 +qnhh: cwlj * rmsn +qfwr: 2 +zscw: 3 +dwsr: dfmp - nvdj +wpmz: wmzt + fgbg +gglg: 5 +vdsh: nltw + whlp +mdvl: 2 +qlrn: 4 +qgfr: rnsj / qncv +twsd: zwzd * rqtc +phwf: 9 +wbsd: bmvp + shwc +hrvf: 3 +lrcz: 5 +zbnm: wtrw * hzcc +qrjs: rjbz + tvzh +mhmv: 5 +pjbd: 4 +hmtl: 3 +ghpf: rdgh * gfdr +fjvq: rglj * rpsf +jncv: hwrh * frqm +qmwj: 4 +jlwr: 3 +bwjf: 2 +jbvp: 5 +dwsb: cbmq + frmc +mhzp: 19 +ncsr: 3 +pbcg: bbmn * qrvw +zpbj: rsrl + znqq +qbvp: 3 +rjbz: dqcj * qqbd +hslf: 3 +zjdf: ndjb * jqqh +tvgm: lpwt * hhjr +drjh: 2 +rqvn: jsjg + zvhj +tfds: 3 +wtzb: prqq + ptrm +cpqd: qlwc * hnsd +jsgt: vnzw * bncf +smbr: 6 +zqsc: hwgd * fzbq +wwdv: 2 +crrg: mzwv - bdgc +hrvn: tzgt * pswg +mcdt: fmlp * zhpm +bmrl: gwqj * pztj +tgsc: nltt * mmbs +mdjf: 4 +nwcb: 1 +qhzc: 3 +qgsn: 3 +fvsw: ndln + clbh +pvwp: 3 +frsf: fslb - bnsh +ftqs: 5 +mzjc: ndlv + dwsb +hqhv: vdsh * pdnv +rqjp: bhfs * qbjv +mdpt: plgj + cjmw +sgqb: 2 +vsgd: fhcm + nmnd +jgsj: nfdt * lfjp +jzrp: 2 +fmlp: 3 +gdhf: 5 +nwlt: qmqw * fdps +wqjh: 2 +bcwb: dlrt + bhmj +qblm: 3 +mbtq: 2 +wcgd: 17 +nwvl: 10 +pcdc: 2 +smrd: 4 +qvww: sgnf * hjrh +qvhr: phjh * pjdp +qrvw: cqsh + rhtg +lqwj: 2 +snpz: fszc + fdhr +hdrv: 2 +wmnp: 2 +fcgr: 2 +ljqd: 2 +ddsn: 5 +wlph: gsbv * scpf +nfbj: rqfs * tdhp +ztzh: mmrg * dmgg +hltt: 2 +tztg: 4 +jvnc: 3 +htjt: jtfh / tztg +vlzg: dqcg * cfdq +zrsj: 3 +blrh: 5 +gsnm: dcgs * gjns +fzzf: 9 +gfdr: wntj + cdpw +tddv: rbpz * tclc +gpnj: zfqd * gnwp +prqq: jddp + qtdr +rtdc: 7 +ftpp: 11 +bfgt: ptgv * dfdm +rdgh: 2 +sbmf: 3 +mfpj: 2 +bmhj: mmnm * pphg +mzmv: 4 +jrst: tjgd - mphq +vbtl: cgtc * jnvg +qrph: bdft * sttt +chhc: 2 +clng: vlzg + nrgj +gbst: jpbv * zrjs +mwfs: dmsm * hpcm +mglh: 2 +bplp: 2 +fdhr: 4 +fgdm: vlfd + qdcf +cjht: qtzt + rvgq +gpfn: mqvd / srpg +qflz: wghm - mpqf +nqdj: wsmm / wghp +cslr: 2 +jhhw: tfqg / pmws +gmrs: dgpn * tczr +vzph: ftlc * smzf +gfcl: hvjm * gzjb +lghg: 3 +vjpt: 5 +ttjf: 3 +cfdq: qsdr + cwlr +cnts: 19 +nlgl: 3 +rpsf: mtmg + bhld +mznz: clqz * nhwz +hvgl: qllb * qwrw +smgz: 4 +dvbw: psfb + bdcr +svzr: hnbd * gndz +jrsd: gnsq + dmzs +sdrp: qcmm + nlcz +rjhc: fjdn + jdmz +whjp: 4 +flhz: rgcf * jzrp +rwzh: 5 +vfjj: 17 +gjtl: tzsr + tdtv +qmbl: 3 +pwvj: pvwp * nbcd +fngw: 11 +jqhc: 4 +lscz: 3 +fcsq: cvfs * rqqq +nnjz: wnrn / blwc +glfs: 5 +nvpw: nfjt * bsql +jmfw: 5 +qrsw: gpfn + ghpf +hzbg: 2 +wdfq: tqtd + pzjh +cggn: 7 +fpdq: lsht + vmlb +pwsd: 2 +rhlp: vvgm + ngzm +pzjl: 7 +nbcd: 7 +bzch: 5 +cvbp: 7 +qgql: 5 +wwsq: dhzp / bhrr +zwnq: 2 +jbwh: 11 +tdcp: 3 +zcfn: 10 +fwwz: 5 +grfb: lgvj * bclh +dsqn: prdr - mzhs +fpgn: lbfv + qhbr +cwwt: 2 +lqmv: nsnt + vtps +djjr: 3 +vvgm: 6 +jgzw: lcvv / djzm +bznq: 9 +nlwj: 6 +nzvc: 7 +nrjd: 5 +mnff: 2 +nstp: 5 +sbcc: 9 +tnpf: nbdd * vbhz +zwtt: 2 +jwmj: 11 +njsr: 20 +phjh: 5 +szrn: bgqj / mbtq +ccvw: rthp * bnbv +whjh: 3 +fzsw: bgct * vbrb +lhfz: 3 +rsqz: mmtl + mhnl +gphw: pbfr + lcrw +qmqn: ggst / lfzg +mmln: nqrc + sjhq +frjb: ctff + cjzh +sqbd: wbdl + cncc +mjtn: hzwf + wrzp +zwtw: 2 +rjrt: 2 +wrwb: 4 +gwrr: 8 +zwnj: zdsn * zvsw +pmqq: 3 +jzlf: 7 +vvpn: fvsw + dzgp +gbjm: jcnw / lzwb +mwwv: 2 +ftsp: 4 +ftgc: 5 +hgsf: splb * cvpd +cdjr: 4 +btrz: 3 +hnsd: rjqm + stmg +lhsz: fsqj + mznz +jpgr: thpr / ltln +zqnr: 5 +qzsj: nlwj + mglq +nsrt: bhqg * ldtb +brnc: bspd * gnnd +llcs: fbjj - ffrb +pdpr: gzzw * rjhg +lcnf: 5 +gndz: 15 +zmmn: jspj * bdhm +plft: 3 +zjlw: qdjp * qnhm +lhhv: rhzv * hmtp +jhrj: 5 +fdzt: glfh + zcfn +gmvj: frtc + gmnn +wnqs: sqsf + gbdt +qdnw: 14 +vbmj: nrmn * bgtp +ptnw: 2 +zlhb: 5 +rsbn: 5 +qhbr: 20 +qnhm: 2 +gghs: lbjd + mrtm +nblh: 5 +vmmr: 3 +qscg: wqjh * bcwb +rlbs: vqwj * qnhp +bncf: 4 +ttfm: 18 +tqbs: 2 +nlzh: wpmz + hwvj +bvbm: 17 +lcvv: pqqr * szfn +smnb: jmvt * vtsq +mwqj: 3 +dwcs: 3 +nvrt: wbjs + zmgg +dlbd: rjzn + tlpl +dgvj: sqcf * dctd +vplt: swcp * ssdb +dbhd: pqcq * jbww +hpfg: brwb * dtnd +cbws: 3 +lsht: gnsp * dvrw +lqdt: dsqn / cspc +nqqh: gzcc - fzww +tlwf: 2 +vpgs: 1 +tqjf: 4 +hwfn: gwwp + lvjt +hszm: pqgm + bgfc +hdcc: gghs + wpsm +hwch: 5 +mlvt: 6 +nfjt: 3 +ccsf: 14 +nblb: 5 +gbtr: phtb * nqqf +qscw: 2 +cszf: 6 +rvjb: 3 +smhp: 2 +btgr: rszj + pldr +jrbm: trhv / wprj +vdpq: 6 +cbvz: 3 +qfmp: 9 +qnmq: 4 +lvrf: ptsq + hvdh +stlz: 7 +lptg: 2 +wrgg: 2 +nwwl: 7 +ccfq: lzsq - vbdm +sspj: 11 +wzwg: 3 +frfb: 3 +pfpj: tddv + gvhp +zzdg: 4 +dzjn: pnnb + ndbv +ltpc: 5 +htwc: 2 +mpbf: 2 +ntvh: 5 +bwsg: 4 +zbps: 14 +nltt: hdrv + mzsv +cnvw: 2 +fqmj: 2 +psfb: hzbg * mhsf +wsmr: 2 +njvh: 11 +bpnp: tqbs * bwsg +slfj: zcnl * fwwz +blsh: 2 +dfdm: hvgl + hphc +cncs: tfds + gvbd +jzrs: hgsf + wgsd +ndbv: mhsj * npjp +tbzm: bnwt * fbgq +wjzg: dqtw + fgsj +bbmc: jmfw + bhtp +drjd: qvzd * bfts +bnqh: 4 +bfbp: 6 +frcr: cvbw + qqgf +cfsc: drgr * mvsc +mmcv: 2 +rlvj: dhdm + lhhv +qvdf: 6 +vjfd: 2 +wlzb: pslg * qjwm +ngpn: cbpz / fcgr +lchm: 3 +ttjh: 3 +bjwg: mfcf + vvpn +hhtw: htwc * hrsh +rqdj: fmqd + mztg +dnft: vqnj / fcnc +dnsq: 2 +mlnv: 8 +bqdc: cvbp + ltzz +pfww: sjww + fsnd +vvhp: 19 +qjwm: 3 +zltt: 2 +srpg: 2 +cnrp: fwzr + qmhg +thpr: ztls * ptmg +qlwc: 2 +gmnn: wmmb * ntvz +wghp: 2 +bnwt: 2 +mztg: smnb + jtdr +ljzb: 11 +ttjw: clfn * mhjt +psvd: zjdf + fhnr +nmgh: 5 +gcnb: dsrj - hzdw +rrgq: 5 +rjhg: hplr - zphz +plgj: ttls * tdmd +fbzt: hqwv + rllf +wgtw: 2 +vnrn: srbg * sqbd +hcnq: qvww * pdww +tqdb: dcqq - nwcb +znmv: 6 +bvvf: 2 +gchm: 14 +nsrp: fpdq * wrjb +zfcb: wbpf + slfj +cbnl: mddl + qfsd +rlmf: 13 +nfsp: fgpn + tbbp +fdgc: 11 +zwzd: gsvf + mnml +jngd: dflt * zcgs +tdch: 6 +qfrn: 3 +dwnc: jphm * htdw +vlfd: vfzq * pvwd +gfwh: 2 +fbdd: 19 +jfbz: 5 +gfwl: dtqd + lgrv +cbcl: 2 +bcqp: qrtj + mtqj +dmvb: wnth + wgtw +bwsw: mmln * gmnp +hhmc: lzqs - tmlw +bnsm: 4 +rzvm: 7 +zctj: qgsn * qstr +gdqd: clnq / vfwc +hzdb: 5 +wbpf: bgzz + hjzm +hrwf: 5 +ptsq: nbqf + mblc +bwdz: 1 +cbhp: 5 +sgtr: bgpt + fgfh +rgcf: cmzt - zwtv +znls: crlb + rfqj +djzm: 2 +rcdb: 1 +scpf: 11 +bdgc: 1 +jnct: 5 +hplr: hbmb / pqrw +dprz: 11 +pnnz: 4 +brvt: svzr + qtbt +gchp: 1 +pmnh: gscv * cmqc +mlrh: fjct * zgrh +qfnj: 13 +vfrz: 10 +qrmb: 3 +lcmn: mdzq * fpzc +mprz: dtbr + rrgq +fpqf: 2 +tbnm: 4 +dbgr: lcmn + dnjz +wntj: dwcs * dnft +rhgc: 2 +bzhw: sgll * nbgz +dgpn: 4 +qjzh: mllc / wjdv +vmmf: qmqn - qdpn +bjzp: swvv - bmnl +bqhr: psgm + jsdm +tqqv: 2 +jcqs: jnps + rlbs +jbww: 3 +hhwc: pbgp * rtnj +dmsm: pqdf / pgpd +gczb: gchw - bqnb +hmww: 5 +dqnb: 18 +chgf: cpgb / cczr +zmvl: 7 +rwbs: fcff + mjqv +dprj: 3 +dsjw: 2 +qmpn: humn - twsd +dhvg: 6 +fgmg: jbtg * qfwr +chqt: mtss * gtnj +clbh: lcnm * dbhd +gdbh: 18 +sqcf: 2 +bbzc: 3 +dhdm: 1 +qwpv: htjt + qrph +qbzs: thjq + mzbj +nglc: srbp - tbzd +brfg: 5 +mlst: lbsv * qjsc +vqsq: 3 +cfmz: vmgd + lqmv +plhz: sbjb + qvdf +ddgf: 3 +bhjp: 2 +wlwg: 4 +hjrj: 4 +cbgr: zstg * ffjj +rzrj: mcdt - fzzf +trfc: 1 +nbcg: 2 +zrzq: wgvm * ttdj +vslc: zbnd / zqfr +fppw: bjrg * qrjs +ghqj: mzjc + sjjh +bjrg: dfcm / ftsp +fpdn: 2 +fnll: cfsc - hpfg +fcnc: 4 +hmtp: 3 +zsjj: 9 +cwlj: 3 +dtbr: bztm * qtlg +vmrb: mmtb * cgwr +lmmc: qmzf * hqlp +drfp: 3 +nfdt: swnq + gmrn +qzft: 17 +hfvj: vwzt * rswp +rcsz: sphh * mglh +bmnl: bsjp + mhgl +qstr: 2 +rllf: htsm * wmwj +hwvj: 6 +wvtb: lvqw + rbrt +mllc: bcql - zwnj +frpm: zbps + qpwd +bhvq: 4 +mwmc: 2 +zwtv: 8 +rglj: 3 +bwhj: jvbr * dmwm +gztn: 1 +nbdd: rnpz + zdvz +pmws: 2 +jtnj: 3 +zgds: 10 +vbww: 2 +rmqg: fdjc * bwsw +hfhj: mjsz + rhwv +frnq: 9 +wmmb: 2 +tsvc: 9 +swvv: drjh * hsbq +sthb: tzhb + trrt +rhgr: 1 +mpfn: jpgr + czzc +rtgs: 5 +gsbv: 5 +cgwr: 5 +lvmd: 3 +nfrw: cszf + vzht +vtsq: hlhf / zjtg +ngzw: 2 +mhmm: 9 +lhzt: 6 +lnnq: 8 +mjpv: pvds * wnvh +hzwf: zmrl * wlwg +pqwb: 4 +qrzf: wlzb + ccgs +bcns: 1 +tbsw: vcnz + tvgm +fhzl: pcmj * lghd +vmbr: qmbt + vtwd +gmrn: ttfm + lltd +mdzq: 2 +qfll: 9 +jbtg: 13 +ccgs: 11 +mcnw: rpzm * tgsg +rrwt: qzqs + qfmp +stwh: 8 +zdqq: tglb * nscl +tftw: gchm + qzft +cjtm: 1 +fvdb: rqsp + jjnc +bbbj: 4 +hsbq: lvvl - jflw +zbdc: lnrw + zflr +dnzl: 3 +gnjj: 2 +ffmh: 3 +hvhf: 2 +fmqd: 19 +jttj: jlwr * psgc +bcwh: dcff + rqjp +jlfc: bnfv - dbhw +dzgp: 18 +fszb: 2 +rllv: zwbb * dbth +prdr: vjnb + fdcc +jrvp: mwzr + mhmm +gtbc: dcrr * tmww +nvvd: 4 +mbtd: 6 +ctff: 2 +ddwp: 3 +hnbd: 3 +mtms: qgmw + cjgj +nnjb: 4 +bsvj: cnts - pwsd +lfjp: 2 +hjjh: qscg / fdnm +mtnb: zgzd * rwqm +dlrt: qblm * jzlf +vtps: mjnn + bzhw +fldd: jqbv + rcql +pfsh: vhcm * frfb +lljh: 4 +wpsm: ctgv + lthh +lqrz: blsh * qrmb +blhf: djjr * bhwl +glzq: 5 +nsnt: ggsf - mdpt +ndjb: 8 +hjcq: tmng * nprw +zflr: mjwn + rrdz +jmtd: 3 +bhld: 13 +dsnm: 2 +hvdh: 3 +fcff: 8 +qdws: fgdm - fmlr +nqrc: 5 +bcql: whcs / lqpp +fvpn: tdcp + vrhl +gnwd: 1 +hcfz: jnct * ntln +jtdc: rncr + wgll +fjbn: pwfg + vrfc +scgm: 3 +tfqg: fznl * zczg +dtnp: 13 +mlfw: lbrq * tvtf +mtss: 4 +mjqv: 5 +zrjs: 4 +gzsm: hnwr * bpws +whmv: psvd * qqrd +tmhm: gtvn * cswd +qpjt: chgf * cvmp +qvqs: 4 +bjcf: 2 +wgsd: 8 +tdmd: 4 +dptf: 2 +pqpw: 3 +lhcv: ntdq + fbfm +rjqn: 3 +vdtc: 3 +tzsr: svmj * qflz +nmgf: 3 +jqbv: tlsb / sdgp +pnnb: hdwd * wqvr +frms: 2 +cdwd: 2 +jdpn: nmhr / snzf +jphw: 2 +wgjw: 4 +cnsm: 4 +cgtc: 2 +cvbw: pcnd + vslc +cjgj: djdz - szjs +zqfr: 2 +mcfb: 13 +nbqf: gpnj - bvbm +fgsj: nnjb * zjjw +rqjh: rnbh * lstr +slzr: qrsw + mwfs +hwrh: 4 +fnrn: hjcq * wvsd +thvj: bnsm + cwpb +tmvt: 6 +jssj: cqfw * cdfs +cmqc: 2 +zczg: sgdg + wnsr +tdtz: 3 +nvtp: vbtl * zrqs +vlww: 2 +wgll: 2 +twdw: lddq - tzqg +dcmw: 2 +ztfs: pcgf + qpjj +ztls: lsfn * jfnf +htnc: cqld - vnms +dqtw: rccb - fptp +vbhz: zrhg * vmbr +bdhm: 5 +gbwq: 2 +wvmt: rvjb * jrst +dmdn: jlwf * tngp +rfqj: vqsq * mwqj +fznb: 3 +gqwg: 8 +jcsg: hrvf * cbws +jdmz: wvtb * rzvm +qmbt: 5 +fbrv: ztfs + crrg +tvhf: chrm * clng +wmhs: 3 +tvjr: nzqn * ppzv +pdww: vzjg + djhf +vdsq: 5 +ljnh: 4 +bztt: 1 +flrt: fslr * lcgf +vhcm: cqrc * bdsb +cmzt: rrch + cqbl +jmvt: 2 +qsdr: llvs * gdqm +pjdp: nrjd * pntq +rqqq: 3 +vsnc: hqcb * jjhv +mhjb: 2 +vhnm: 3 +sddr: hlbq * qvqd +qvpp: phwf + fjdl +sdgp: 5 +tssr: 5 +btmc: qpbn * zwrz +fdjc: cqhs - gchp +bvhl: mbgm * lvdm +cjvf: 4 +wmfl: bzmm * dqcq +mgqb: 5 +cpgb: rnnf * gtbc +rwgh: gbld + bpcd +qllb: jqsj * dpdw +stht: 2 +spvw: sbmf * chgz +fbfm: dvbw * zmvl +cqld: rwtt * rfmr +rrfr: 1 +htdw: hgmc / pzjl +lvqw: 3 +tvms: jrbc * vqnp +pppn: 3 +whzm: 2 +hwfz: zctj + vwrp +nzqn: fcbr * wrwb +jhrd: 2 +vjqg: 2 +gnnd: 2 +smcs: nhnm + hzdb +pcgf: 10 +ngzt: vzcf * cnvw +pvbp: rbhl * qsmf +zftm: mlpj + jcsg +vrjv: ccvq * rtmc +pfhl: bsvj + rgjw +plzw: 5 +nhpj: gsvq + dtnp +rwff: 3 +tngp: 5 +qpvz: 1 +cbmq: vlfl * cbvz +qncm: 5 +fcbz: trrr * cdnj +blvm: wmpz + lvgp +gdvv: cdjr * vnhg +qqmp: dqlz + bqvw +zdbr: vfrz + bznq +jjnc: 4 +sjww: lddw * ddgf +jjhv: hcdb / rbgd +lwnt: 5 +sjvz: zfpq + stzq +lsvn: jgzw * pjbr +csfc: wmfl * dfbg +jdpd: 16 +bbdr: 2 +fcbr: 4 +ptmg: ssnj * pmtp +rfmr: 4 +szwb: 7 +wbdl: ddtn / tshm +smzf: wdzb + ttjw +ntcq: hcnq / mpbg +dsrj: jrwv * mmcj +stwg: fflp * rblw +sjmp: 3 +wbbq: qmjd * prrt +zscz: 2 +ppzv: jlmn / cjpr +slfw: 1 +dfvf: gdqd * gtfw +vdsf: rvjh * htzf +zhzd: fpdd + rtdc +pmtp: 7 +gqtg: 6 +vmmc: lscz + zsdz +vhtj: 3 +vjlf: nwwl + cbnl +wnvg: 10 +rfzh: dmdn + gwrz +qpbb: 2 +wmwj: 16 +mwgh: jhhw * rdfn +qpbn: 2 +swnq: qwpv / hgbw +bdtq: 4 +gbld: 12 +bmwp: 7 +hpcm: 2 +pzrg: mcnw / hpgr +sjbl: rzrj - rnrs +csch: 5 +wttr: 18 +hplm: 3 +qnnf: dhvg * vdqb +lcgf: gdhf + zgds +qhwg: 4 +dqcg: 3 +dmwr: ngvv * mhmv +btcb: 5 +qscl: qfjs * mnss +fsbj: pqsm + gljn +lstr: zscw + mrds +gzzw: 2 +wmzt: phbv + crgl +dhhn: sddn * ljnh +vqnj: nzvc + jnfm +gvbd: 4 +llvs: 2 +cfbc: 5 +qwsb: 11 +bslc: bpnp + flms +lvdm: 10 +lbtn: 2 +frmc: jcpw - trfc +dpdw: nhnc * wqtt +gjcw: 3 +whlp: fgmg + pwvj +qlnm: lsls * qcqq +zcgs: 2 +rvgq: 4 +lddw: cbnb * ptnw +wqtt: 3 +vvlv: 1 +mhjt: 5 +dflt: zjbv * tzjz +rwtt: 9 +ddlb: npcw + lchm +vqnp: 2 +sbvw: pqsz + jllj +jhsh: vzph * lvsf +mchc: hbrj + fvdb +hwgd: 4 +tlvn: 4 +mhzd: nsch * vmmr +rpzn: 9 +zgrv: wnbq + jrsd +wbtc: fvjb * nrsc +rcql: wlbf - nsrt +qlcw: 3 +rbrt: 4 +ncsw: 8 +hwqq: 5 +fdnm: 2 +sczc: 2 +htzf: 2 +lvrh: vmdn * wlbc +spwr: 2 +jwdm: 2 +pfhn: bbbj * fhzl +zgpc: cncs * btrz +qncv: 5 +pzgf: 3 +lvbs: hlbb + fpns +bgqj: sdrp * mdvl +nqpj: bplz * cnrp +lvgp: ftqs * rjrt +crgl: glfs * zdlc +vjmp: 5 +rmms: fnll - sdhs +qtbt: fpdn * dswc +tclc: 11 +qpwd: jrrp + tvsq +tlpl: qnnf / hgnb +vtvf: 2 +jzvg: 4 +wnth: 5 +hbrj: 12 +mmnm: 5 +zrhg: 3 +tbzd: zppw * mlfw +nhcb: 14 +jzjg: 3 +cnlm: ccvw - jgqh +lmnj: 1 +ghtq: dclw * hvfd +fsnd: 4 +mfmj: 12 +stsm: 9 +jvcb: 2 +grrl: 2 +rzrp: 5 +pjbr: 3 +npbj: sbvw + sbvj +npjp: 5 +gfmq: rcsz + njmj +gsvq: 8 +lvvl: mpfn / rhtp +dcff: 6 +fgfh: hwqb - dgjb +cljs: vflp + cdbc +fdps: 3 +tvgc: 3 +pqsz: cbhp * gzcz +pvds: 2 +bhtp: 2 +sjph: 8 +wpwd: hdzc * rsqz +crth: vvzf - smhp +tcfd: rgjv + hnrs +mvpm: vjps * fszs +zpgq: lfqs * mbtd +tmng: 20 +czdb: 4 +hqlp: 3 +tdbs: hhhj + cjws +swcp: 3 +fdmv: pwqp * hwqq +tzgt: 3 +sfqb: 1 +ltln: 5 +wnvh: jfqn * zllr +jzmw: wbbq + nqpj +chrm: 5 +mwbc: jrld * ldql +fldv: vfct + tggr +wdnh: dzhl * gbrf +zsdz: qrwt * bplp +rmsn: rmqg - nqdj +dsjc: lcwv * zpgg +bhmj: sdwc * hthn +fbgq: zqnr * fdgc +zqfb: qscw * jfbz +hphc: vjmp * ffld +tmwt: 5 +nvbj: 9 +fvjb: 7 +qpjj: nhpj * bssf +szwq: dhmn * qgql +jgwc: ghcp / bpjn +prdz: jtdc * jlfc +jjmb: 17 +fjtw: 2 +plsg: 3 +tgqf: 8 +bljd: 8 +gdqm: 5 +tsvl: vdsg * ngms +qsbv: ffjd * vfrl +rpzm: 3 +qdjp: 13 +mqvd: snlq * dqjd +hlbb: jwdm * ldtd +gdzr: jrbm + rctq +fmlr: 5 +fdbv: 3 +cncc: 20 +vtwn: 9 +qmqw: ndwj + gwrr +zvhw: zczv * lpfl +fqhj: lhsz * jbrr +cdbc: mrjw * sncr +vzcf: 4 +bvsp: 3 +mhgl: vdnb * plzw +qdcf: vvhp + dqnb +stmg: bgvt * gzjm +tggr: fvpn * fsvd +lwdt: vrjv + rmsl +qmvj: wwsq + phtm +nmhr: hlsp + pplj +qmdh: 3 +zhmz: bncj * bslc +bgtt: qsbv / fdcm +wqnm: brnc / njrw +shwc: lmhg + dwnc +gljn: nzlb * rwnd +gwbf: jphw * dsmm +lccq: 9 +mvsc: cjtm + flhz +dqlz: 2 +tczr: 2 +jnps: 3 +vprt: rhfb * cggn +dbbw: 3 +nhnc: 8 +ztdf: 2 +nlcz: pfww + pvnb +vrhl: 4 +ctgv: 2 +lszf: zwnq * dsmb +drfh: dzjn * qlbh +mqgn: 16 +zppw: 2 +wgnl: qfll * qfnj +sbvj: qzsj + hhwc +jftb: 4 +ntlq: 12 +thjq: fbzt * sgcq +zwbb: 3 +fslb: rpdc * tmcs +vvvc: hcfz + tzgw +mjwn: ldlw - gfwl +jnfm: jhrj + bgmg +tmcs: 2 +szjs: 13 +gwrz: 18 +vcjn: 8 +jfwb: cbrg * vjqg +ldtb: 12 +zwmg: 5 +lrcs: 3 +zrqs: 2 +dsvp: 3 +gvpc: 2 +bfts: 11 +prpq: 3 +fszc: lhzt + lqqc +rtmc: 12 +tglb: 7 +qlbh: 2 +gdcc: frcr / cbcl +fptp: ttww * lzzh +dfbg: 4 +cdnj: 2 +dsmm: bfbp * zblh +vflp: rqdj - hmht +zlml: 2 +qqrd: mqzv + nlzh +tlsb: sggt - dwgc +vjnb: tqqv * zjlw +ndns: qqbc * lrcz +hgmc: plhz * sjvz +bdft: blvm * jftb +nnwl: 5 +tgpb: ztjb * ngzw +lcjj: 2 +cswd: 7 +vfzq: 3 +tvtf: 2 +jszt: zzdg * zwrj +pmjb: hnvd + fdzt +gbdw: 8 +cfsf: ztzh + cstb +cltq: 2 +twmc: rhgr + wgjv +tdbg: 2 +gtgm: 3 +mrds: 4 +gvjc: 2 +jphm: 3 +hdwd: 2 +trpw: grwq * jzcq +jrdf: 2 +zsmt: 11 +vwzt: 2 +nbgz: 2 +hfvh: 2 +ttww: 3 +rcbw: rrvm * dhcl +zlzr: 2 +cqhs: wgjw * fngj +ztjb: vvvc * jrdf +qwrw: zbqs + nbwz +vnms: 8 +cqsh: 1 +fjdl: 13 +humn: 909 +zbnd: qqmp * vqzl +fjct: 2 +rbfl: swnd + fwqb +nltw: lljh * bqnt +cvjc: pdgc - mjqq +ftdh: 3 +pqwg: 10 +cstb: bpcv * stht +hlbq: blfg + ddsn +ndlv: 2 +hzcc: 11 +ggsf: msgs * rpqb +pgzz: 2 +flnw: 5 +zdsn: 7 +hjrh: 6 +dgzf: fzsw * wgnt +mphq: 1 +mjrq: vlcs * mnff +jwvv: 2 +wgnt: grrl * gdvv +drvc: 5 +bhdv: 3 +ndln: qqfj * szwb +lcmf: cdzd + hblw +hltf: lcmf * lrcs +bczb: 2 +dctd: vpgs + nwvl +ftzb: bwbq * qdnw +hnpm: pfsh / rjqn +vdsg: ccfq * cnsm +jfzt: bjcf + bqhr +ddtn: mwwv * lvrf +tfvq: 18 +jspj: 5 +nfjv: 4 +gwqj: 15 +vfvh: 2 +djdz: lvrh - drjd +rjnp: dbbw * jtgl +wrjb: 5 +hgdc: 3 +wprj: 2 +czmg: rvvw * qgbn +wsjr: zqfh * qhwg +vmgd: qmpn / qncm +vmlb: 2 +cwlr: vplt * prpq +jvbr: 2 +hgbw: 2 +nlpg: nblh * qchf +mfcf: mzmv * zbnm +mqzv: bcns + sdhq +vzjg: rppf * vhjr +zmqf: 10 +sjjh: 4 +mblc: bmgr + tmvt +mglq: 13 +fcwg: 3 +vzht: 1 +pdnv: dgzf + wwtw +bwpn: 2 +vqpz: 14 +qwbt: 4 +vbzd: zdbm / gfcl +cfdl: drvc + slfw +gcph: 2 +jcgf: tdbs / mjpv +phzw: zltt * plft +hjsl: 5 +sggl: 4 +ghcp: hwfn * gnjj +hvst: 3 +mzhs: ftpp * pfrj +rpqb: 2 +gplz: 6 +pswg: 3 +nmmf: prmp + hnpm +pqrw: 2 +rcjh: zpdf * dprj +mddl: gmrs - zbns +grwq: tftw * hgbb +znzc: njsr * bnqh +ssdb: 3 +bztm: 4 +gmhb: 8 +vhnl: 2 +dlsv: 5 +bclh: 2 +hgbb: 3 +fflp: 5 +nlpr: znnm * tlfm +tbrs: gmdn * ttjh +vnhf: tvjr / nfjv +nbrr: 6 +prmp: 4 +jbrr: 3 +qtzt: 3 +bvwj: 7 +bqjn: hmww + whcp +vqdb: 4 +gvwp: bmsr + vbmj +qvzd: 2 +mrjw: 5 +nrgj: tbpv * vmrb +jrbc: 8 +ldql: 3 +rdfn: 2 +dspw: 2 +snzf: 2 +fszs: cgvz * vflw +wtlf: dwsr - jbmb +rwqm: qdws * hchc +chgz: fcsq + hwql +dsmb: dgdw + wmnp +jrld: 3 +rrst: zwmg + bljd +qhwt: bcnh - fdmv +fdcm: 3 +lbjd: nvbj + gbtr +wqfs: 5 +tdjn: 3 +rbcz: pjgc / llcs +bnfv: rqdl / zlzr +hpvh: 9 +zgrh: 3 +qqbd: 3 +lbtt: 14 +mpqf: 1 +dmgg: 5 +wlbc: 4 +sdhs: mcnt * bqnh +sfvn: rrwt * gvmt +fngj: 2 +pntq: dlsd + bdtq +jtfh: pmnh * sldv +pqqr: 2 +fznl: 2 +gvfh: fbdd + gbst +tdtv: vjpt * vnrn +cnzs: 3 +fvcs: 7 +bbmn: zbdc + grts +jwqm: 7 +wsmm: rblh / sqds +wrtj: rnwc * djpf +gscv: sgcg + vpmt +pcjv: 2 +vrnp: bqjn + sthl +sllv: 4 +dqcq: 3 +bbmr: 3 +pjzg: 4 +jnvg: gztn + tbrs +pphg: mlrh + lmnj +rvvw: ddlb + tqdb +zllr: 2 +cnbj: 4 +qhjg: 6 +qclq: 5 +flqb: bzgh + gvwp +rpts: 17 +qtdr: pfhn + ssht +sgcg: dfdq * wghv +hnwr: 2 +szfn: ccsf + sfpl +dnjz: cbzf - hrwf +nblf: phwr * cjvf +hgnb: 2 +whcs: vzfg + blbq +fprq: ddnd * scqp +hqpl: zmmn * mswb +lcnm: 2 +cczr: 2 +wflp: 2 +zppm: 6 +mdsf: vhmd * wtjj +lfqs: sfqb + wgnl +fwqb: lhcz + zzqb +glff: cvjc * frms +zftt: bcsp + rcbp +nswh: dmwr + bvhl +mlpj: 4 +rbhl: 5 +jsqz: 5 +hlhf: dspw * mmrt +dmgl: 4 +jcpw: 14 +zhpm: 13 +djpg: 3 +zjtg: 2 +cjbv: pcdc * bgtt +tssm: zqqt + rlnr +hmht: 9 +ggst: btgr + jgsj +cbrg: qlnm + tsvc +pldr: cpcv * bjzp +hccw: 2 +hcvs: hjrj * sspj +jqwb: 11 +zwrz: 13 +vmtz: hqhv + qcbf +zstg: 6 +lqqc: 1 +pbfr: 1 +zdbm: gdbh * bvhr +rjzn: qrjp * grvt +hflp: 8 +chdt: 2 +fslr: 3 +njmj: dsjc + ghgb +nvdj: 11 +lvsf: 3 +rgjw: chcr * qqrl +vlfl: 4 +qsfd: fvcs * sllv +fnzs: vfvh * jdpd +zczv: 2 +gznc: 3 +brwb: 3 +wnrn: lvft * jctp +cjmw: 1 +vhmd: 3 +root: wvvv + whqc +qqfj: mbts + fbcs +qzsn: 3 +zfpq: 5 +ndwj: znls + hdpr +fjtt: 1 +lfnd: chrb * qlrr +mqrc: wpwd + prdz +mrtm: pjbd * cfdl +tdhp: 3 +pwqp: tvgc * qfrn +phqc: 2 +cdzd: qqwp * ghtq +gnwp: 6 +zjbv: znmv + rcdb +dfdq: 15 +cbzf: fvfd * pjgz +cvpd: 3 +tlsz: 5 +rhwv: qpbb * lzqd +ggmr: 3 +ntdq: qwzr + rqjh +hhjr: pdpr - fnrn +wdzb: jfzt / hvgd +sbjd: ftrn + zvhw +vgtz: 5 +vzfg: rdhn + brvt +bztf: mhzd + gzwp +lrjl: 19 +hblw: jfwb * qzqg +csfd: npbj * fjtw +grvt: 3 +sdwc: 4 +rhfb: 2 +vdlm: wqfg + wtvg +gmnp: 4 +rtnj: 3 +ddfj: cwwt * gqtg +vnhg: nthb + ljzb +pfwr: gbwq + hjsl +cjws: pzgf * hhmc +jnrm: 4 +tcpp: ttjf * pjng +scqp: lhcv + trpw +ffjd: mjrq / smcs +bssf: 2 +rgjv: 3 +nzlb: cllf * nzbt +tvsq: qwbt * hwch +tjgd: 8 +tmvw: 3 +qrtj: pmjb + tmhm +bpcd: 1 +hjcg: bbdr + zhzd +fpjt: ndqz * blhf +zvsw: lszf + flrt +wnbq: zppm * zbgj +sphh: rslh * lvbs +tshm: 2 +psgc: rtmp + dmgl +hvfd: lgwl + btmc +sdjp: qgfr - qvhr +cdtc: 2 +jgfz: 1 +tlhq: ltpc * rhgc +pslg: 3 +qchf: 5 +zphz: jhrd * wjzg +rttj: fldd * bvvf +cdbn: 9 +ldtd: plsg * bhjp +tbbp: 3 +vhjr: 4 +gnsp: cpqd / dvnb +glgc: smrd * bbzc +hzft: lccq - qmnq +ptgv: sgcs * rmms +jddp: fwbj * jszt +dmzs: 5 +wpmf: 20 +hvgd: 2 +hvjm: 2 +bqnt: dsmt * bvsp +mhsj: 15 +nmrt: 2 +ngms: zpgq + hszm +lzwb: 4 +lghd: 2 +lffp: 5 +ntvz: lsvn + bhvq +dplj: vrnp * pcjv +bdsb: 3 +lvrb: 2 +mswb: 2 +wbsn: tlqc * tdtz +bclr: 7 +qrwt: 5 +qvqd: 19 +vtpg: 4 +whqc: vmtz * whmv +mbhh: 5 +fsvd: tlsz * btjh +tqsw: 2 +shcf: nglp * cfsf +jpbv: mfpj * ccpn +mdwm: 6 +zmrw: cljs + bztf +tbpv: pvpc + vfjj +zpdf: nfbj * lvmd +vtls: 5 +jsdm: 1 +qbjv: gsnm + zsph +tzgw: 1 +jvzb: 3 +srbg: 7 +fsqj: pfhl * cltq +zjjw: tlhq + lqrz +gzcc: twdw / nlgl +qqrl: 2 +wqfg: 6 +qrjp: 5 +rccb: tqsw * zjpd +qzqs: pqwg * zdbr +bhqg: 4 +crlb: dcmw * lwnt +vbvw: tbsw + qhwt +dgjb: 16 +chrb: 4 +rwnd: 5 +rnnf: 2 +jflw: zhmz + wbsd +qgmw: 3 +wvsd: wpmf - tdch +zdvz: fjvq + mqrc +nqqf: 3 +mwzw: 1 +gbrf: 3 +gwpw: 3 +sgcq: 4 +mhsf: 3 +ngvv: 5 +bsrh: jzrs * tlwf +bqsl: 3 +rqwg: njvh * rlzg +sgnf: jwcr * ncsr +wvvv: mjtn * vbqq +qcln: jbwh + bwdz +ccpn: 3 +nzbn: gznc * ndns +sfcc: 2 +fldt: 3 +hjtq: 2 +gzjm: 2 +zbns: 2 +pqgm: tjwh + rbsb +zfqd: qmdh * ggmr +hmfc: 11 +pzjh: tsvl - tnpf +bzgh: gczb - mttv +zbqs: qmcg * stwg +mnss: 7 +pdtf: 4 +hrsh: dmvb + wslb +ftrn: 6 +rqtc: zgpc / gtgm +jfnf: 4 +gjns: jgwc + qnmq +vflw: 2 +vfwc: 3 +crgg: mfmj * hjtq +snlt: fdbv * szfq +jqsb: mdsf / hplm +ndqz: qrzf + gfbh +rrvm: bmrl + sjbl +dbmn: glff + qsgj +lzhn: cdsn + sddr +mlrz: 10 +ssnj: qsfd / czdb +fllq: pdtf + fbnq +jtgl: zjqd - hmzz +ttls: nhcb + zsjj +bpcv: twmc + bvwj +njrw: 2 +psrq: vmmf * ttjn +bgvt: 11 +tzjz: vbww + cfbc +fqmb: 11 +frtc: bqdc - mrzt +cvfs: 3 +mbts: 3 +nbwz: stwh * lwdt +qqgf: hmmf / mtrg +ldlw: rbcz * zpfb +zjqd: 13 +rrdz: nlpg * bwpn +dcgs: jzgf * dsjw +jhhg: jrvp * hvhf +hpgr: 4 +bvhr: jvcb * hqss +clqz: 2 +fbnq: 4 +wslb: mwmc * jmtd +wgjv: 5 +hwbc: 2 +fgpn: 10 +tlfm: vqpz / ztdf +rppf: hwmt / cbst +fbcs: 4 +qzqg: tgpb - nfsp +jzcq: 3 +dsmt: 2 +bzmm: 2 +sqsf: 7 +lrcd: 17 +zpgg: 3 +qqzp: zmqf + gnwd +fpzc: lcnf * vdsq +ftlc: 2 +bgpt: 4 +fwbj: 4 +sthl: 4 +bqvw: 19 +lgrv: vtls * csch +fhcm: 5 +blwc: 4 +cjpr: 3 +hdpr: 8 +lhcz: 9 +jgqh: sdjp * smbr +rqdl: rlmf * phzw +zpfb: 3 +bshj: 3 +zgsl: brfg + jqwb +qtfz: pjbc * vgtz +rsrl: gglg * pqtn +ssht: 5 +dcrr: 13 +sgdg: 4 +rpdc: jtmm + zgsl +fzww: wwdv * pdpw +sdhq: pwjz * hslf +fdwd: jvnc * mcpm +gvhp: qctm - fpjt +wghv: 5 +spjv: 2 +spwm: 2 +ntln: jqhc * hdqh +fllp: 1 +fpns: crth * zlhb +fbjj: 10 +mtqj: rrfr + spvw +hthn: 2 +lpfl: 3 +bgfc: zllc / pztf +rnbh: qjmg + drjf +ntmp: rqwg + bmdv +whcp: 4 +zhcb: 3 +sfpl: qhzc * hhqv +trrr: 3 +jcjj: 5 +ddnd: 3 +tvdd: 3 +spjd: 10 +lthh: 5 +vbqq: 2 +qsgj: 1 +nscl: 3 +rtmp: 5 +trhv: 14 +rbgd: 3 +msgs: dhhn + dbgr +stzq: 2 +npcw: 3 +mtpw: jwvv * chqt +tzqg: pwqb + nvrt +tvzh: lfnd * fqmj +qnhp: 2 +cgvz: nmgh + vvlv +zcwc: 4 +lsfn: vmdh + tqjf +vmdn: blrh + rrst +jsjg: 15 +blbq: qnhh - czmg +sjhq: mgqb + rwff +cdsn: spwm * bsrh +dzhl: qvqs + sbcc +nvjr: fpgn * pzjb +nthb: vshh * vdgh +srbp: vbvw / wflp +mzbj: bcsc * rpsh +swnd: vcjn + sjmp +cdsw: jqwv * dlnt +sgll: rbfl * smdh +dfmp: gvfh * qwhz +gvmt: qbgq + bcdr +pcnd: tpvp * gcnb +wqvr: 19 +hjcn: 7 +pqsm: nnwl + ntmp +dhmn: pjzg * bwjf +jbmb: wfmt * ftdh +mqnq: 7 +qrcp: fszb * tdmr +gfbh: tlvn * zscz +bdcr: 1 +bwbw: tdbg * pqpw +ftbn: ljqd * stlz +qjsc: 2 +ggjq: 3 +lbfv: jbvp + qlrn +pjng: 13 +qfjs: ntlq + rqvn +lfzg: 3 +wjdv: 9 +vfrl: 3 +jrwv: 7 +pqcq: 4 +tlsn: lcjj * tgqf +djfs: fjbm + zqsc +gbdt: dvsf * nzlr +lnrw: sndj + mprz +lgvj: nlfm + sbjd +wtvg: 1 +ghgb: nnjz * pnnz +zqpv: 3 +gsvf: 4 +mnml: jttj + qspv +qcmm: jcjj * cnbj +rcbp: 1 +splb: 13 +wvrv: 3 +hprc: jzvg * qvpp +cbnb: rlvj + fcbz +mtmg: njgr + hdff +rctq: 4 +jcnw: jgbr * hltt +rthp: shcf * djfs +bnsh: hmtl * qmbl +qgbn: vjfd * nfrw +fltw: lmmc + mwzw +jrrp: 3 +nrsc: 5 +phtb: 9 +dvmc: nmrt * cnzs +bgtp: 5 +pwfg: 3 +pvnb: tmwt * ntvh +rghb: hsmq + brlg +jgbr: hcvs / gfwh +drwr: hfhj + nwlt +phbv: 12 +mwzr: 2 +dhcl: 2 +pdgc: ddfj + zrzq +mjnn: nnhg + slzr +vpmt: fjbn - mchc +jqsj: 4 +fjdn: tfvq * wvrv +vcqn: 16 +pplj: zwtt * zqfb +jsfl: 2 +hqss: tvms - dlsv +qqbc: 2 +hwqb: cjht * nbnh +gchw: spwr * qpdf +phtm: qtzw + fppw +lzsq: bcqp - ldlt +zwrj: 2 +hhqv: 3 +sggt: sbrq * pfpj +qclz: fngw + gvjc +zfzl: 16 +fwzr: rjmw + mdwm +dswc: mmcv * tssr +clfn: 5 +vqbv: 12 +lbsv: cvjg + tcfd +bnbv: wdfq * gwpw +bsql: 3 +dcpf: qcln * hhtw +bmvp: fldt * ftbn +zblh: 2 +fgbg: jgfz + bclr +fffz: 5 +vpns: rpzn * jfnn +hhhj: bszp * lghg +btjh: 4 +fqhn: 3 +rvjh: jjmb + vpns +fdcc: gfmq * drfp +zjpd: sggl * gnvv +djhf: tcpp + mlst +mmcj: 3 +hlsp: hpvh + rzrp +fmtq: gwbf + jnrm +vqzl: zfzl + mqgn +bhfs: btcb + mpbf +tpvp: qjpv + zftt +bgct: 2 +lvft: 2 +rnsj: pbcg + flqb +jlwf: 5 +ldlt: frsf * spjv +chcr: 7 +pfrj: bbmc * pmqq +nprw: 2 +cpcv: 2 +lsls: 4 +ccvq: phqc * mhzp +qpbr: 4 +gnsq: vjlf - nbrr +lmmd: 4 +rnrs: 7 +fsdg: 7 +grts: nqqh / lmmd +lzqd: rbzz + bmwp +swzh: mlvt + nstp +dvnb: 2 +lgwl: nlpr - fcrs +pvpc: hvst * pnbp +nmnd: 11 +vzvz: 3 +bmdv: 1 +cvjg: 16 +hqwv: lqdt - jdpn +bcsp: 7 +jwfq: fsbj - lbtt +dzgf: jngd + jcqs +vnzw: 4 +dqcj: gbdw + fqhn +rpsh: 7 +vvzf: pppn * bhdv +gzjb: 3 +vdgh: jssj + wqfs +dfcm: qpbr * hjcn +sbrq: 2 +hnvd: 4 +gtvn: gmhb + wmhs +sndj: zftm * ffmh +rrbm: wsjr + fbrv +lpqs: qmwj + sgtr +lpwt: jsfl + zcwc +dlsd: 7 +rjqm: 1 +gttd: dvmc + hprc +dtqd: bfnw + qvpf +bwbq: vqdb + thvj +cvmp: bwhj + qjzh +gtnj: 2 +bhrr: 2 +hzdw: 4 +ssrb: 5 +fcrs: 6 +dbhw: 10 +qcbf: mtnb + bfgt +bcdr: pmcg + qzpz +cdpw: 4 +fvfd: hwfz * lptg +drgr: 4 +bdms: 11 +rslh: 2 +hdzc: 3 +tqtd: dcpf * lzhn +zdlc: 7 +lddq: tbnm * qmvj +wtrw: 2 +nsch: 13 +ttjn: 4 +wrzp: cnlm / fcwg +fhbr: 8 +dlnt: 7 +zllc: nsrp + zgrv +mmrg: 3 +qtzw: vbzd - qclz +hdff: 4 +lqpp: 2 +qtlg: tlsn + ggjq +hdqh: 2 +ffrb: 3 +rhtg: vqbv / cdtc +wmpz: 1 +mrzt: 5 +lmhb: 19 +zgzd: wbsn + zlsd +sncr: hwbc + rwzh +hmmf: lcls + psrq +qfsd: bddw / ncsw +rlnr: bwbw * srtj +bncj: 5 +zzqb: zhcb + mwgh +whhl: hltf / dsvp +pnbp: 3 +vrfc: wdnh * vhnm +cjzh: 4 +zvhj: 2 +mttv: sjph * vcqn +mhtc: bczb * vhtj +lmtp: rjhc + wrtj +qpdf: hdcc + mvpm +qjmg: wnqs / sfcc +vcnz: zfcb + zmrw +nhnm: 1 +dbth: 2 +wghm: sczc * cjbv +mjqq: jzjg * sgqb +hsmq: stsm * rwgh +nhwz: chhc * qqzp +bpws: 3 +vdnb: bzch * nblb +bmtv: ljtb / cslr +brlg: mtms / dsnm +zjmj: rcbw + bmtv +ppfn: vtvf * cdsw +bqnb: vdsf + jhhg +qmjd: 3 +mbgm: 3 +vjps: cdbn * lqwj +qqwp: pfwr + vsgd +sbjb: 5 +zsph: nblf + rhlp +drjf: 12 +dmwm: bcwh - rcjh +mhnl: gzsm * rllv +clnq: fznb * wtzb +cdfs: 2 +dhzp: rttj - fqhj +fhnr: nvpw * mcfb +lfsh: 19 +jllj: gttd - mlrz +snlq: glzq * lrjl +wfmt: 13 +rnpz: fjzj - grfb +qbbp: jvlb + wvmt +wnsr: 3 +bmsr: jwmj + lnnq +rszj: frnq * hjjh +zmrl: drfh / whzm +dvrw: 3 +hqcb: htnc / smgz +dclw: 3 +bgmg: mdjf * fllq +szfq: 2 +lsdb: 6 +djpf: 2 +rbpz: gdcc - dfvf +lzgl: rpts * qtln +pgpd: 2 +qwzr: 2 +gcpb: 7 +lbrq: fldv - crgg +cwpb: 15 +gwwp: 4 +jlmn: qlcw * wqnm +qctm: nzbn * bmhj +vpmg: wcgd * dplj +wwjd: 2 +rfdr: 5 +cbpz: gcpb * fpqf +dvsf: 3 +mgpl: rfdr * mhtc +fzbq: tvhf / ssrb +pjgz: dgvj / nbcg +htsm: 2 +pcmj: 4 +mmbs: 7 +vlcs: ntcq / nzzs +bhwl: 3 +pqtn: zqpv * qzsn +jtdr: pzrg + pvbp +hbmb: jcgf + vpmg +tmlw: jzmw / zlml +pvwd: 3 +qvvf: 5 +trrt: 1 +rbzz: wzwg * ngzt +frqm: 8 +qvpf: fmtq + ghqj +cqrc: qvvf + lsdb +bszp: gmvj * vlww +njgr: 2 +rblw: 5 +qlfb: dzgf * vzvz +smdh: 4 +sqds: 2 +hwql: ftgc * flnw +pjsm: 11 +tjwh: gjcw * wlph +jtmm: 1 +vdqb: 3 +sttt: fffz * wrgg +znnm: 3 +mzsv: 12 +mmtb: lmhb + bztt +nbnh: 9 +hwmt: tgsc + wnvg +frlc: pgzz + qhjg +nnhg: rsbn * lzgl +dgdw: gcph * mtpw +qspv: 6 +tgsg: 12 +gnvv: 11 +zcnl: 7 +qtln: 2 +cqbl: gbjm * zwtw +cbst: 6 +zqqt: gdzr + jhsh +nzlr: 5 +tlqc: gjtl * zjmj +rdhn: nglc * vhnl +qcqq: 2 +nrmn: 3 +qlrr: 5 +rjmw: 1 +bfnw: gqwg + hmfc +jfnn: 4 +qmzf: 2 +dqjd: 2 +ffld: whhl * bbmr +nzbt: 5 +lzqs: cfmz * hqpl +mmtl: 2 +ffjj: 3 +rblh: znzc + nvtp +mzwv: qpvz + mqnq +nglp: qtfz + ppfn +qjpv: 5 +phwr: 3 +rlzg: 5 +cspc: jqsb + fllp +mcnt: 2 +qsmf: 2 +rswp: jwqm * rhnb +pbgp: 3 +cqfw: vprt + djpg +qmnq: 2 +qmcg: 5 +zqfh: mwbc - vdtc +czzc: qpjt + lqzh +srtj: 6 +bpjn: 2 +jzgf: 3 +qmhg: 4 +mjsz: bjsp * lvrb +qzpz: nvjr + dprz +rhnb: 3 +tmww: 3 +vtwd: wsmr * jtnj +gmdn: 2 +jwcr: 2 +zbgj: 3 +fjzj: vtwn * rjnp +pwqb: drwr + qbzs +rncr: 9 +wbjs: hjcg * rwbs +jfqn: 3 +lltd: dnsq * gplz +gtfw: 4 +pzjb: 2 +tzhb: dnzl + jvzb +mpbg: 2 +bjsp: 3 +cllf: 2 +zmgg: vngp - jsgt +mmrt: 11 +pjgc: vsnc * hccw +pjbc: 5 +vqwj: lrcd - vtpg +bplz: 3 +gzcz: 5 +bsjp: rtgs * szrn +vfct: cbgr + qclq +bgzz: 1 +jvlb: fltw * zdqq +hnrs: nvvd * hgdc +pwjz: 4 +vshh: 4 +qwhz: 3 +ttdj: 2 +dcqq: vdlm + mbhh +rnwc: nmmf + snlt +zlsd: tssm * vnhf +lqzh: qlfb + ftzb +vngp: lpqs - mhjb +ptrm: qrcp + fnzs +jqwv: 2 +pdpw: lmtp - hflp +bqnh: 3 +lvjt: 3 +flms: rfzh * zrsj +hcdb: wtlf * tmvw +pztj: 2 +wlbf: fdwd * ngpn +rrch: nmgf * ddwp +hchc: 3 +sddn: 4 +ltzz: bshj * lffp +psgm: 9 +sldv: 2 +bspd: fprq + tbzm +fpdd: 4 +bcnh: jsqz * mgpl +bddw: fqmb * fhbr +dwgc: dbmn * vmmc +jqqh: 9 +pztf: 3 +rqsp: tdjn * gphw +sgcs: 3 +glfh: 3 +rmsl: csfc + zpbj +znqq: nswh - pjsm +wtjj: tvdd + whjp +rhzv: 2 +lcwv: 3 +mtrg: 8 +nzzs: pqwb + wwjd +prrt: csfd / cdwd +hmzz: 2 +vbdm: fjtt + szwq +lcrw: frlc - hfvh +rbsb: fsdg * hzft diff --git a/res/21/test-input.txt b/res/21/test-input.txt new file mode 100644 index 0000000..7993b87 --- /dev/null +++ b/res/21/test-input.txt @@ -0,0 +1,15 @@ +root: pppw + sjmn +dbpl: 5 +cczh: sllz + lgvd +zczc: 2 +ptdq: humn - dvpt +dvpt: 3 +lfqf: 4 +humn: 5 +ljgn: 2 +sjmn: drzm * dbpl +sllz: 4 +pppw: cczh / lfqf +lgvd: ljgn * ptdq +drzm: hmdt - zczc +hmdt: 32 \ No newline at end of file diff --git a/src/days/d21.rs b/src/days/d21.rs new file mode 100644 index 0000000..bb40b7e --- /dev/null +++ b/src/days/d21.rs @@ -0,0 +1,119 @@ +use std::{collections::HashMap, fs}; + +const ROOT: &str = "root"; + +pub fn solve() { + let path = "res/21/input.txt"; + + let contents = fs::read_to_string(path).expect("I/O error, wrong path?"); + + // Holds the things the monkeys yell + let mut monkeys: HashMap = contents + .lines() + .filter(|line| *line != "") + .map(|line| { + let split: Vec<&str> = line.split_whitespace().collect(); + match split.len() { + 4 => { + let op = match split[2] { + "+" => Operation::Add, + "-" => Operation::Substract, + "*" => Operation::Multiply, + "/" => Operation::Divide, + _ => std::unreachable!(), + }; + ( + split[0].replace(":", ""), + Yell::Calculation( + Monkey::Name(String::from(split[1])), + op, + Monkey::Name(String::from(split[3])), + ), + ) + } + 2 => ( + split[0].replace(":", ""), + Yell::Number(split[1].parse::().unwrap()), + ), + _ => std::unreachable!(), + } + }) + .collect(); + + // Holds all known results of monkey yells + let mut monkey_nums: HashMap = monkeys + .iter() + .filter(|(_, v)| match v { + Yell::Number(_) => true, + _ => false, + }) + .map(|(k, v)| { + ( + k.clone(), + match v { + Yell::Number(n) => *n, + _ => 0, + }, + ) + }) + .collect(); + + // go through monkeys and calculate monkey results and replace monkey references with monkey results until root has a result + loop { + // break out of loop if finished + if let Yell::Number(_) = monkeys.get(ROOT).unwrap() { + break; + } + + for (monkey, yell) in monkeys.iter_mut() { + if let Yell::Calculation(m1, op, m2) = yell { + // if possible, replace monkey names in yell with their actual numbers + if let Monkey::Name(name) = m1 { + if let Some(num) = monkey_nums.get(name) { + *m1 = Monkey::Result(*num) + } + } + if let Monkey::Name(name) = m2 { + if let Some(num) = monkey_nums.get(name) { + *m2 = Monkey::Result(*num) + } + } + // if both numbers of calc are known, calculate the result and update both hashmaps + if let Monkey::Result(r1) = m1 { + if let Monkey::Result(r2) = m2 { + let num: u64 = match op { + Operation::Add => *r1 + *r2, + Operation::Substract => *r1 - *r2, + Operation::Multiply => *r1 * *r2, + Operation::Divide => *r1 / *r2, + }; + *yell = Yell::Number(num); + monkey_nums.insert(monkey.clone(), num); + } + } + } + } + } + let res = monkey_nums.get(ROOT).unwrap(); + println!("Result 1: {res}") +} + +#[derive(Debug, Clone)] +enum Operation { + Add, + Substract, + Multiply, + Divide, +} + +#[derive(Debug, Clone)] +enum Yell { + Number(u64), + Calculation(Monkey, Operation, Monkey), +} + +#[derive(Debug, Clone)] +enum Monkey { + Result(u64), + Name(String), +} diff --git a/src/main.rs b/src/main.rs index 3f6cf55..b8067c8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ pub mod days; fn main() { - days::d20::solve() + days::d21::solve() //_all_days() }