From e2df3c4825a9cdd17d24bc5de74084d81000b388 Mon Sep 17 00:00:00 2001 From: Mikael CAPELLE Date: Wed, 21 Dec 2022 09:44:05 +0100 Subject: [PATCH] Day 21. --- 2022/day21.py | 106 +++ 2022/inputs/day21.txt | 1835 +++++++++++++++++++++++++++++++++++++++++ 2022/tests/day21.txt | 15 + 3 files changed, 1956 insertions(+) diff --git a/2022/day21.py b/2022/day21.py index dbb8408..6758bca 100644 --- a/2022/day21.py +++ b/2022/day21.py @@ -1,3 +1,109 @@ # -*- encoding: utf-8 -*- +import operator import sys +from typing import Callable + + +def compute(monkeys: dict[str, int | tuple[str, str, str]], monkey: str) -> int: + value = monkeys[monkey] + if isinstance(value, int): + return value + else: + op: dict[str, Callable[[int, int], int]] = { + "+": operator.add, + "-": operator.sub, + "*": operator.mul, + "/": operator.floordiv, + } + value = op[value[1]](compute(monkeys, value[0]), compute(monkeys, value[2])) + monkeys[monkey] = value + return value + + +def invert( + monkeys: dict[str, int | tuple[str, str, str]], monkey: str, target: int +) -> dict[str, int | tuple[str, str, str]]: + """ + Revert the given mapping from monkey name to value or operation such that + the value from 'monkey' is computable by inverting operation until the root is + found. + + Args: + monkeys: Dictionary of monkeys, that will be updated and returned. + monkey: Name of the monkey to start from. + target: Target value to set for the monkey that depends on root. + + Returns: + The given dictionary of monkeys. + """ + + monkeys = monkeys.copy() + + depends: dict[str, str] = {} + for m, v in monkeys.items(): + if isinstance(v, int): + continue + + op1, _, op2 = v + + assert op1 not in depends + assert op2 not in depends + depends[op1] = m + depends[op2] = m + + invert_op = {"+": "-", "-": "+", "*": "/", "/": "*"} + + current = monkey + while True: + dep = depends[current] + + if dep == "root": + monkeys[current] = target + break + + val = monkeys[dep] + assert not isinstance(val, int) + + op1, ope, op2 = val + + if op1 == current: + monkeys[current] = (dep, invert_op[ope], op2) + elif ope in ("+", "*"): + monkeys[current] = (dep, invert_op[ope], op1) + else: + monkeys[current] = (op1, ope, dep) + + current = dep + + return monkeys + + +lines = sys.stdin.read().splitlines() + +monkeys: dict[str, int | tuple[str, str, str]] = {} + +op_monkeys: set[str] = set() + +for line in lines: + parts = line.split(":") + name = parts[0].strip() + + try: + value = int(parts[1].strip()) + monkeys[name] = value + except ValueError: + op1, ope, op2 = parts[1].strip().split() + monkeys[name] = (op1, ope, op2) + + op_monkeys.add(name) + + +answer_1 = compute(monkeys.copy(), "root") +print(f"answer 1 is {answer_1}") + +# assume the second operand of 'root' can be computed, and the first one depends on +# humn, which is the case is my input and the test input +p1, _, p2 = monkeys["root"] # type: ignore +answer_2 = compute(invert(monkeys, "humn", compute(monkeys.copy(), p2)), "humn") +print(f"answer 2 is {answer_2}") diff --git a/2022/inputs/day21.txt b/2022/inputs/day21.txt index e69de29..4d175b9 100644 --- a/2022/inputs/day21.txt +++ b/2022/inputs/day21.txt @@ -0,0 +1,1835 @@ +rgfg: 7 +dvfr: 2 +srjl: 15 +lqvd: sqbt * rvzp +rqcs: gpvh * cdfd +vclj: 2 +blts: 2 +qwhw: 19 +lzcr: 2 +qdnp: 1 +fqtv: 20 +mgqz: ghcc + btql +qzzz: 4 +svqt: djpj + zghf +wpjg: 4 +rvld: 9 +fcgn: 7 +cmbz: nmtm * twng +mbzr: jqgb + vjbq +fjtt: 3 +zztp: gjbl * lcdp +qwnr: 7 +qdwh: 2 +dbbq: ltth + dvhf +jdzd: 3 +wgcl: wwnm + pmhr +twrz: 2 +twnr: brqf - tbgb +gfcv: 2 +ntts: jtpv + hhgc +nlhj: 16 +zbwq: 1 +cjbs: pqcv * dssn +gwwv: lgjj - dblz +dfdb: 11 +phct: 14 +prrh: humn - dgzv +sdvl: wdlt + qlpq +jrgf: 19 +vnrj: hgml * pdhf +nfbv: 1 +nbrl: cghl + pvpg +cndb: 4 +dflh: 8 +hjzq: fjgs + pbfz +csmf: fqcq + hzrw +ghjh: srhw + qcrz +rwft: 3 +mngt: 17 +pmfb: rpwt - zqtg +ptpr: rjrz * zcgl +nwhw: sflg + cfhr +csdm: 2 +rqwr: ghpc * jqcb +lwqf: wrms + gdvv +fcbw: 9 +ssst: 3 +tjzf: 2 +nrzl: 3 +qwjv: qhwt + ljls +rjrz: hdrv - tdrq +lwgl: bspl * gwcc +psgg: nqvr * nbrf +dnnc: wgfv * flmg +nnbn: 4 +stjg: 3 +qfcj: 5 +bhlf: glmn - ghbv +hqms: ftjw * jdzd +zqtg: zcvf * qqdw +whrp: 3 +jnrp: 3 +vdtn: 3 +mfdh: vrqd / bfrj +gdjq: 2 +srtc: mpwf * fjbm +tqbd: rvnp * tqmf +gmsq: 2 +fcll: pjhq * smhw +ggvp: 3 +nbgd: gfcv * qllt +mzdr: wpnv * hgjz +qrnn: 1 +qdnv: plqp + cgqq +ppsg: 17 +bwwd: rsvl + jqbn +jjqr: 2 +hrff: 3 +lfzr: tjwr + nttc +hdjc: 5 +qntd: qqgz * dcjg +gbtz: rzww * gwsp +fpww: 1 +cbmt: bzzj * qwmz +dlqm: 5 +sdmw: ccfw * rvjz +ccfw: 2 +pprc: qrwq - rhwf +bcns: 17 +fwtq: 7 +mbqq: rmds + mlvg +flmg: 4 +sdgl: lvdf * hwgq +fjvg: 10 +wmwp: 5 +jsrm: qwjv + dmss +tdzt: qqrj + rvld +mnmz: 15 +zvpf: 9 +wlcw: 2 +snpf: 4 +vbgr: zcsg + bvsd +sldw: 4 +cbfr: dstt + htnp +fzlh: 7 +vmqf: nvtp * wltb +fwtm: 3 +psrv: nppr + fzqg +vhmg: rwpc * zqpf +jhgj: tfzj + cqgg +ljjw: qstq * srmh +fvsc: 13 +npbb: 16 +jrzz: hvnn * pqmv +nllb: gtwh + phpm +gdtg: 2 +djwv: 3 +hzfq: 5 +hbtr: rlfm * jjfs +mwcn: bzwb - fszz +bdvs: 2 +swfh: pffh - mngt +cwpd: gmqr + jdvs +jwbz: tjzb + bnzd +gdnm: hgsz + nnzq +vhpz: 3 +mspm: ffvm + bgvw +rwpq: 3 +pstq: pzmw * bdrz +zvqj: 13 +dgwp: hsgz + zrdh +cnfz: cdpt * dftf +mcqt: 15 +vczt: 2 +hzjc: mngm + nnbn +hgvb: jdln * cmwq +pbfz: twhc * hzfq +hcbm: lmbh * nghs +mpsq: 6 +qmlb: 5 +vsht: 2 +swzv: 2 +twbr: vmrd * dbhn +jrzt: jbzp * pptp +pvdj: 12 +hbvj: 2 +rmzz: 20 +hsdv: 12 +vqlq: pcgq * wmgs +gfzq: 1 +lvpz: 2 +dvps: zlwg * twbr +zjmm: 5 +btnz: 4 +qbmj: 2 +gqjl: pcqg + fqsj +ljrh: zmzm * hlvz +wtmp: cmlw * lcgc +jgmw: qvnw - lvdq +wtjn: jzpt + fssd +bcdw: mdtt * nlhj +gvmc: wqql * zmdv +brfl: twhf * rttd +lzms: 10 +jzzh: mtgv * ghdc +srmh: ljcq + qcgv +zfvv: rqqh * lccm +wnqs: sbws + ghjh +brqf: dgjt / sslm +wthg: 2 +lsqn: 5 +zhfp: 3 +mdgp: nwhw + schl +nghs: btpv + hdvv +ddzp: 4 +pmpz: vbfp / zjsl +stvp: qrzd + swcd +cscd: wzrd / lbjz +pgqn: jrms * wthg +ntps: mmmz * ccvg +vqvj: qlqd + zhvb +mccc: 2 +jrns: bfht / frbf +gscm: rqqr - qgjv +lztm: 2 +vmrs: 3 +bshf: vclj * fghj +ftws: jqdh + clzz +hsfn: 3 +vrmz: 4 +ldmq: 3 +vftg: 4 +gjcf: 17 +vdgt: plss * cvlv +cfhb: 3 +cszp: 3 +rdgc: bjlm * nzbp +sqfq: drhf * jrtl +bzcg: wbjh * ntqb +jfjl: 12 +bwlt: 3 +qrzc: vbqv + gfvg +tqrq: rhqd + grwm +wgqf: 2 +dnps: tdrt * nnhr +cpbb: ddzp * whfw +mjbb: qgvq * pjjl +ncdq: 10 +jgwm: 14 +nzjl: 7 +btpv: 10 +wpnv: 7 +hpdf: 3 +pdhf: 19 +cqjn: 5 +tbvv: cscd - sswr +bztb: 1 +pzzj: 5 +thtp: 10 +chch: cjgq * qzjh +hwgq: cqtm + sdgr +zqfn: 3 +vdvn: mgtq + lnvw +cqdq: zcng * bvcg +fjtr: jfhl * flqb +jgss: 6 +qjwn: fmgz + gdbm +rmpm: 2 +jfsw: jfmf + sqpz +zggj: 2 +vvcp: 6 +sptr: 2 +qwzs: 11 +hdvv: 3 +rcwg: 1 +hmwv: 2 +fnwh: 4 +msvn: 3 +zbvc: 2 +vfcd: 13 +pmhr: 18 +vrlm: 7 +bttt: pzzj + bdvs +sghh: 2 +cfnb: whpb - cvnw +prlg: mrgt * npmm +pgtf: nzhg - pmgp +gtqq: vbmn + bfbg +fpmw: jzbr * vttj +bhwf: tlls * vjhb +fjsr: mqjq * rwsf +lfcv: rzgr * tlgc +nhdj: sptr + dtbw +qlhb: 5 +chjh: qmcs * hlqz +cqqs: bhlt + fvsc +pjsj: 3 +hrht: 3 +gpjv: qdff - pqbm +dnqm: 5 +qztw: 2 +jpmf: 3 +rtlh: 13 +ssnv: 1 +ggjp: 2 +jzlz: 5 +wgfv: 13 +msgn: 11 +wbfd: chjh - cqpp +nwwl: hdhf / rjmq +glcm: 2 +fnst: 1 +lgjj: lwdc * vsfl +wnzj: mbvs * pmpz +jdln: 7 +mhlb: 4 +lbns: 2 +tvrz: 2 +srqz: 4 +mwjf: 2 +qfpp: 5 +lqhf: rjsw * gstp +hqrj: 2 +cdcs: 2 +wgmg: 2 +fnwv: 2 +vqht: zbfv + fpmw +glll: 2 +plqp: tzpq * dvqb +ntbb: wssz / qbpg +wqgb: smzc + fdls +lqml: 13 +dftf: cdvz * rbwv +ppnq: 3 +gqnr: nlds + ztmr +zhnq: rnfs * bdlq +dgzd: 4 +slhl: pdrs * lbfp +bmcl: 2 +dmwb: qwzs * crzf +qrwq: 13 +tztv: hqvh * nvcm +dlwf: qfcj * bghw +rmpj: vtmz + tlcq +gstp: 4 +ljfz: 4 +dfgr: mdgp - ctmz +fdqw: 2 +czcc: 2 +qrsz: wjcv * dmvf +dbjv: hpws + gwwq +vmtm: 10 +rzsp: rvfq * mjth +plhm: jtcf * qwnr +cswl: 3 +gtws: 3 +llfp: 2 +vrtf: 2 +lvrw: qfbw * fwtm +wjcv: zhfp + gphd +mhtt: 7 +qwqr: 5 +lgtm: 6 +zcsg: hrgr - wdvc +pcvg: 2 +wbjh: 4 +mddb: 10 +whqs: nnww - sjbb +bghw: 2 +hfhs: 2 +hrdr: ptpr / hfvl +cbps: 5 +cvnw: hqrj * bqzd +lrtc: 2 +lpqf: 9 +fzzr: mnlm / ffqb +ddrd: nsjt * nbbh +cmww: 2 +rbwv: 3 +ptsv: 4 +mgnn: wwdw + fqhb +dchl: cqqs * bfvw +nmhp: qzlc * dqsh +mwvb: 2 +pqjn: sptb + dwdv +vczn: lqhf + msvn +fwqc: hmgg * gmvp +qfdp: 3 +ndmb: gjcf * sjcc +cmwq: 7 +qqcj: rlgp + cjbs +mhrs: gdwf * ddft +nsjt: srcq + wbtj +fgdp: 2 +rcvq: qdnv / pjdc +lcpv: 3 +jtfh: wljc + mrmb +ljst: 12 +sngd: gfht * ldmq +vrqd: jzwl * mgcr +mvzw: lrtv * gmnh +lphb: qztw * zsqv +mjlf: fcnp * gjnm +znlp: 3 +pvpg: 3 +qvvl: 4 +qcjh: 1 +zhpj: 3 +rwln: 2 +bhlt: ljfz + cvsb +ssrd: gqzs * fdfc +pmzl: fwgv + ffht +spgm: 4 +fzcp: ffjf / ffrp +qvpb: 11 +fcfg: 12 +vcdh: jrpn * bjrp +zgcp: qswg + wvdp +lnrm: 3 +hgws: dtpj * zmlm +bzzj: 2 +rtsj: 4 +pjhg: 3 +rsgc: lqnv - zbwq +ffht: hrtf * mrqj +hjnb: lwdd + lcpv +mgtq: lmhb * bzcg +fznc: tgtn / lsjr +mwmn: stjg * tdhc +pzgm: qdwh * cszp +rlgn: djwv * qlvd +zgnb: 1 +svqz: 4 +tfgf: gftc * wpjg +dqsh: bwpt + fdsd +trrg: hdqb + tndw +ljdh: wnql * jlbc +plvr: mccw * rnnb +clhr: 2 +wtcl: 15 +sjbb: 2 +rdsh: pfnq * crbz +sjst: gftd - fgnf +zdbr: 4 +hcwj: fzcs + qmhd +zghf: 18 +vprq: 3 +qpmm: 2 +cgcm: 16 +zcvf: 2 +wjbs: 2 +wvhv: vfnb + rgsw +mmwd: 4 +tdhc: 5 +lpgm: 3 +fnbg: 5 +ftjw: 2 +gpfh: 2 +qqdw: wvbv + sgcs +nhnr: smng + cbmt +dtbw: 17 +vdtv: 11 +bfsr: 7 +zhvs: vrjr + vgrz +jhdj: 9 +cbww: cswl + tmcv +grjp: 2 +gcjw: 2 +gftd: zdbr * vqwj +lpzc: 6 +hbqn: vnsg + mtwb +vghh: nsjf + nfsr +jrms: mcjw + tqtf +jfpm: 3 +lsls: bbvf * plvr +hwhq: 1 +bjrg: nsrh * vqlq +gmvp: 17 +qtnr: 2 +mjth: 2 +sjcb: vmqq + zjmm +lscz: 7 +ghlb: rlmb * vqvj +bpgv: 6 +nvfn: mcqt * hbqn +gmqr: 9 +zvhb: 14 +jrcw: 2 +nspv: 5 +gpwl: vdvj + rldj +rlrl: 7 +mvhj: cwdv + tnnn +zcdn: 3 +lcnr: 3 +fwgb: 15 +trfn: mddb + hwhq +crbz: 2 +sgzm: qcdj + gdlw +msqz: bgtj * nbfv +jtcf: hfhj + nzlq +rtsq: qzmg + mzzb +brrj: jpmf * gcfs +ghpc: fwgb - qvvl +tbqf: 3 +bzgg: cspq / vrpg +zngr: 1 +mdgb: drmp * qpmm +sdjg: hffl / nszh +lwvv: 2 +sftz: wtjs * cpmq +jntf: jgsl - cbps +hlqz: 3 +hhgc: sdmc * wdbb +gmnh: 5 +cchl: 3 +bdrg: ppsg * scbg +vsvz: nmhf - ljdh +nsjf: zvpf * cmhb +rwsf: 2 +gbjs: qcbb + swgc +qfzw: 2 +mfrp: nhdj + rzft +znld: 3 +ffjf: tcvd + zvrd +zsrp: 7 +nccv: pbvd * qpph +flqb: llfr + cnvt +tvjw: hmjp / gpdt +zcpw: 10 +qntz: 4 +rvzp: pqtg + zvfv +rvnp: 2 +cmgn: 4 +qwpv: lswq * jbcv +jrdb: 2 +fcvt: 4 +wdlt: pjfq * dctj +rglz: fbwt + lcqz +mbtl: 1 +cqtg: 10 +mqbl: bhwf * qsfc +lcqz: fsmj * cnsq +tqzr: drhv + jnvz +pqtg: 10 +nttc: rhrj * zgcp +zhvb: 2 +qzwc: djrf / hfpc +srrm: dflh - vtvg +pwmb: 4 +fhlf: znjj - ltsl +qvhr: cqtg * wnst +wlgz: 2 +tdwg: brfl * wvhv +pbvd: gmjr + jfcb +bbvj: 6 +zlvc: 2 +pvfj: 13 +lhzf: grcw + pcqm +gcfs: 7 +hhlj: 5 +sltp: 3 +hmpv: jnlr + nnvq +rscq: 3 +jtrl: jwdd * rzmz +fssd: clzs / srqz +nlgh: 3 +hlvz: 2 +gwcc: 2 +dtdq: vfcd * lmjt +bncj: zhvl / mccc +mvwq: cqdq + jdcf +ltth: zjvp * sghh +hpws: spdl * jqhz +mwlp: gght / fflz +qpvs: wdsp + tcgr +vzhf: 3 +mdtt: 2 +sbwg: 1 +lthv: vgrp * fvmw +sptb: mgnn + fpwh +mmwn: gpmm * hrht +swgs: 2 +qgmn: 3 +gpdt: 2 +pblj: 2 +pcqg: 3 +pqmv: 3 +fjgs: gqcp * blwq +bghj: mprs + nlrv +sgrl: 13 +mljq: vprq * znld +mlwh: stnp * bwww +lfnl: 9 +jzbr: 19 +fsvr: 3 +vmqq: 6 +bgjv: gtdq * whqs +nvdr: lppg * qqht +dsff: bwtn - jrzt +qdfc: jpsh * wnfl +sspm: 3 +qhzt: wnqs - rglw +ccvg: qwbz * blts +rzww: 2 +sqbt: 2 +scjs: 2 +bzgd: cchl * rdtm +cdtm: 6 +hjjg: 5 +cghl: 12 +hdqb: fsld * cbtc +jrpn: rjpv + lvrw +tzpq: 5 +gmsv: 3 +gpzm: sgrl + dvfh +bzwb: brtg / mtld +lvng: lffl * bnrc +wsfz: blcp * lqss +wtjs: ctmh * zqmg +rswf: 7 +zcng: 3 +tmqr: 3 +lnqw: 4 +ljls: 11 +pchs: 4 +smhw: 7 +vlzv: 15 +qmhd: fpvq * cwpd +qdmq: qwjj / zlvc +pgml: 5 +jrlt: dfdb * jrcw +vjhb: cbfr + qrsz +zjsl: 2 +qfbw: 3 +jdns: lgzw + rqnw +pfpq: nnrm + bnnn +jzpt: 3 +gspg: 2 +sbws: hbtr - qmlb +zqpr: ppmg * gwvt +vnsg: 3 +dcpz: 3 +mbnh: 13 +ghts: dcnc * vfbz +qwjj: zvtf / nbjw +vdvj: pstq * zsrf +pjdm: bdhm * hnwt +cmhb: 2 +wghj: 17 +czhg: sngd + vttc +ttpl: 17 +sbnm: 4 +cqhh: 5 +vbmn: 3 +fbnt: zctw + qflv +qbbm: rgfg + jrlt +zdpc: bncj * czhg +tldr: 5 +jjfs: 7 +jrtl: 4 +nlrv: 2 +drhg: jlst * hdjc +hrtf: hhdw + qdnp +humn: 2076 +ghbv: jgmw * jdtn +scbg: gjgt * dcvd +fzqn: mvcg * lpzc +fwgv: gslg * qlhb +tglq: 6 +lzcz: 11 +gzpp: nmds + qtvv +brtg: ntbb + dnmd +vtvg: 1 +sjrz: 4 +djdv: bhsd * fwpt +clnn: vhmg + mvhj +rdcr: mmwn + msqz +tmcv: pfts + rmpj +thpg: fnwv + jmvz +hzjr: sqfq - mbtl +qpbv: 10 +ddft: 4 +rlgp: 1 +rjmq: 2 +vnwr: fwqc * gtrd +rbdq: stnj * lhth +sbvg: 11 +jdvs: 16 +jnbq: dpqb * sldw +zjhs: dvps + cfnb +zgzf: gfwd - qztd +mtrd: 17 +jlnp: vtqj * glcm +hqvh: 2 +gght: bbbr * tbhz +fpfw: lwgl + vljp +flfd: 5 +wnql: 5 +bhsd: 5 +qlpq: 5 +dplf: 7 +lnsv: 4 +jtpp: hqqf * shdw +djrf: njpq + zzbn +nbqz: 2 +bpgg: njqf * vrlm +hmzm: mmwd + mhbc +vpnq: 3 +lhsw: 5 +lnlw: 2 +tdrq: sjvh + ldwb +lnlp: 7 +pfts: 4 +lsjr: 4 +wfbb: zztp + nmhp +fqsj: 4 +nsms: lhpf * slnp +szzm: tmzn + zngr +wjnv: 3 +pcqm: 5 +dvfh: 16 +hrvz: 6 +vwpq: 5 +qgvq: 3 +dfzh: 4 +pqbz: 16 +frjw: zvfg - mwvb +hrlr: 2 +wvdp: 1 +psst: 2 +mgpw: sddb + cpnt +cqgg: ssrd - sdgl +lhrt: 8 +nngz: wvtf - shfp +pjhq: 2 +jrjr: 5 +cvcs: 3 +tfbw: 2 +znqd: 3 +ctmh: 2 +ffhs: 5 +wcht: 2 +sjvg: wftn * lnsv +rfvq: 1 +spvl: 4 +gwsp: wmwp * rjrt +hzsr: qwqw / pblj +rzmz: hrdr * wqcw +dwwq: wzcd + szzm +svpd: 19 +rsjn: hlbv * dmrp +fwfj: qvpb + tcrv +mzzj: 5 +rttd: fznc - vqlp +fpwh: zcpw * vnrj +wdbb: 2 +bbbr: 2 +pbjd: vwrl + ljdt +djpj: lhsw * dgwp +lffl: 5 +fpwb: 3 +rhrj: ndjw / bgng +tlcq: 1 +zlwg: 5 +bnzd: mcft * mzjt +smsg: jbvl - qvln +ffvm: dfwh + rfvq +wmjv: stcb * zffp +fsmb: pprc * rvbt +cvqd: zggj + wdnr +gjbl: nngz * tlvc +ptjs: jvwt * vzmc +mjwc: 8 +qztd: 3 +rqqh: 5 +fdfc: rglz * jzzh +njqf: nhsw + llrt +tcvd: vwwv * twnr +qrlj: pjsj * vghh +qqrj: jlrs + fjvg +jdcf: 16 +rvwj: cgcm - pvgw +btfg: 7 +cdfl: vbbc * qntz +gjgt: zqjq / tczt +shfj: 5 +hdqv: 2 +btgd: 6 +cdzd: hgws * fwft +gnvf: 4 +fdqn: 2 +jwnt: dbwv + jzfm +flvg: csmf + mfrp +wqqz: rvsn + tfjb +zqmh: cjtp * bsll +rtcf: 2 +mtld: 2 +btbf: 3 +vsjc: 3 +vgrc: nhdd * wgqf +bnrc: 19 +jrfg: 4 +gtdq: 2 +vrpg: 4 +qzlc: 5 +vfnb: 20 +mprs: zfvv + wnzm +wdsp: mgdf * mtrd +slqz: 4 +rpnp: 5 +jdtn: 4 +npqw: pchs + dplf +nntd: dtgm * qwvr +smdl: 17 +lzwb: lrdp * cfmz +jdrb: jmwv * spvl +rdsq: 5 +qhwt: lhff + qblz +nhdd: 8 +twhf: 2 +hzvg: 5 +zztd: rffv - rcwg +gphd: bshf / csdm +fszw: 2 +lnqr: 3 +htnv: 5 +rnfs: 11 +fdls: 10 +wvtf: 8 +fdsd: 16 +smng: 8 +slnp: 2 +ddhr: pslt * bvhr +gnbn: jrns + mvzw +glsn: 13 +qbgt: ltgr * tzvb +vdsv: 4 +rncw: tdzt * lzcz +gdbm: 2 +vtsr: bfjg + mjhd +tdnq: 3 +btql: sgzm * tjbp +vsfl: rcvq + dbqt +hwvf: mbzr + qffv +mjjw: 3 +zqpf: jztp * pjwg +cmlw: 3 +lrjr: 3 +hpmw: 9 +sgcs: thtp + ssnv +hsrq: 2 +nmds: szlr * dfgg +wdnr: 9 +srwd: cmhf + mlwh +jgdr: ldgm * qzss +nqcj: fcfg * nbgd +zmdv: 3 +jsss: whlh * bwlt +zrql: nfbm * bgmt +twng: 9 +qffv: rbbn * nvll +mrmb: chfr + jfjl +lmrw: 2 +sswq: wnzj * qjfq +qwqw: grbh * bgbm +zwvq: 4 +ggtf: vvcp + sjcb +gftc: 6 +ndjw: vgrs * qhzt +jbms: 1 +jvfm: sjrz + vsjc +djzs: srjl + wvhr +bfrj: 4 +tvnm: mpsq * hwng +nvcm: 3 +gtvm: 12 +nvll: rlgn + tldr +cqvp: 2 +jtpv: mjjw * msgn +tlls: 2 +ggcz: 4 +hvnn: 3 +nvzp: 3 +fdmz: 2 +dbqt: bwvt * pqwl +bbvf: bwpm * lpjc +vmrp: 4 +rvjz: rvwj + nqcj +wvgb: dzfh * tvnm +fzlc: 5 +sgnq: 2 +wqcw: 2 +dwpf: rtcf * bgbg +zvsv: jrmw + bjrg +pjjl: 5 +ldgm: 2 +dwdv: 3 +dzgq: 3 +szcm: 2 +frbq: pwmb + dfgr +qgjv: 2 +nnrm: hfgq * tvgb +rmds: gczl * chch +dgjd: jwbz + rzmv +sqpz: 4 +bvvs: wwhn - ndmb +tdzr: mbnh * cfhb +qtds: 2 +schl: tcmc + llct +qblz: fsvr + hrvz +wnfl: 7 +lhbv: 2 +jlbc: 5 +ztmr: 1 +blcp: 4 +zmlm: 2 +jnjq: qgpz * fdhm +dtpj: qnzp * mbfw +ttjf: wfqg - rcmp +jwpf: 3 +vbpl: 5 +fhqs: dlwf * tqcc +stbc: bzgg * gfcq +hsgz: mbjf * grhf +tnbt: ssfv * sglf +tgtn: clhr * lpwb +fdhm: 2 +pqbm: 4 +wwhn: npqw * mwcn +wrwl: 2 +bgdn: 8 +dbwv: zqfn * mqjh +zrpf: 2 +mpwf: fwph + ggtf +nssv: 2 +hdcq: cvgg + hqwh +dcvd: 2 +vzfr: 3 +pqnq: 1 +bwtn: hljs + tdzr +bdml: npbb + cmbz +stcb: scnp * tlfz +dlbm: 7 +chfr: cttd * gscm +dpjg: 13 +gmbc: mgpw + whgh +lzzs: 5 +wshw: swgs * drdp +zsrf: 2 +cfpc: cdtm + rdsq +bmrj: 14 +qmcz: dsff * pmfb +qbpg: 5 +shdw: 5 +tdrt: 10 +lllv: wspv + jhdj +grjs: dzlj - mqff +hdwn: 6 +sjvh: rjrh + mlgn +vwrl: 5 +jvwt: 10 +rbjn: 10 +mbfw: 2 +jfhl: 5 +mqlw: 4 +smfs: 2 +dpqb: srrm + fzcj +gmzj: rfhf * fwhd +mdph: 11 +dvhf: cfpc * jwpf +ngdr: lzzj * rcgd +sznj: fzzr + mgqz +nbrf: tqrq / wgmg +nnhr: gpzm + gdjq +qflv: 5 +zmzm: hrlr * tztv +mpvs: rcfv * qtds +hqqf: 2 +hltl: 20 +mbjf: 7 +tjwr: cscw + rjtv +jpsh: 11 +drmp: 11 +cspq: vmqf * qwhw +ntqb: 2 +bqzd: 19 +tsvm: tqrd + jsss +tzbj: 7 +rnrt: 2 +mrgt: qqwq + qzzz +lpjc: 5 +plss: 9 +fpjd: vzfr * bjzl +jmhc: bpgv + djgb +tqtf: sfsr / vmrp +jrtn: 14 +wljc: 8 +zplt: 7 +bvgt: tljw + flvg +rcmp: 15 +snqj: bnpf * sgnq +rcgd: swfh + jqpr +qjfq: jmhc + dmwb +cmhf: 8 +bvsd: 5 +whpb: zdpt * jntf +dzlj: bjln / bgcc +rzgr: rsgc * zdpn +hhnh: sngr + bsbb +wwsp: 7 +mbsb: hlbd * whrp +gbbz: smsg * hbvj +dzmz: tvzt * hhnh +hphv: 2 +qsfc: 10 +fmgz: lbpw * fpwb +jtmq: lpzp + dbbq +hmgg: 2 +vwwv: 2 +crzf: 2 +spdl: hqms + sbwg +bgbg: 3 +cfhr: 5 +gfht: 13 +pqwl: 8 +sfgt: rjgl / zqmf +npmm: 2 +frbf: 2 +hmjp: lrtc * hcwj +dtwq: hgvb / lnms +djgb: pdpd / qjjm +jlst: 7 +tczt: 2 +drfb: sbsr + mpwz +dtnn: bccq * pcvg +rzft: hzvg * rstm +hzrw: jqcr * rqcs +vcdl: fpmn * jttq +hjhd: zhjm + sctq +fgtg: pvrw / fsvh +bsbb: 3 +lgzw: fpfw * qbgt +bgtj: jjqr * zvsv +pmgp: 13 +hwng: tzcm * vsht +slhq: mhrs + qrhw +whfw: 2 +cgsm: pffc + jtrl +bspl: 4 +lvdf: 2 +qvnw: sbfp + ldcc +rdtm: lsls + fjst +lswq: 4 +zhvl: nllb * glll +rzgj: wjbs * lfcp +njgr: 8 +gwlj: mjmj + pwgl +zffp: 3 +bccq: psgg + lqlq +mvjs: 4 +wmgs: 4 +wwcg: 1 +tvgm: 2 +wwnm: 5 +jlwc: hhzd * fdvh +zlbs: 3 +mrrv: 4 +jpdt: wmjv + dzmz +wvhr: fppp * svqz +dmvf: prlg + znvq +dcjg: 13 +tndw: 7 +qdff: qfdp * ccbz +zmzn: 2 +zjvp: mtpv + zvqj +phpr: lcwn * jsrm +pmcp: 6 +qswg: 11 +gczl: wfbq + cdfl +grmd: bhlf / jcmr +fjqw: 5 +pvmn: vsvz + sqnn +ljdt: 18 +vtmz: vmnh + wjtn +tnnn: qzwp - rczj +nqzp: lthv + bwwd +brnl: sqlh + plsr +wbgd: wjmn * jgdr +cscw: jzlz * qsng +cpmq: 3 +bzsl: mjbb * gvsm +qjqm: jfpm * hqbh +rjgt: pgtf * cndb +whgm: 4 +rnpn: 2 +ssfv: ptjs + btdf +tvzt: 5 +qcdj: 10 +hbsh: 8 +clzz: lgzl * pjdm +pptp: ffhs + rzgj +brdg: zfgl + bztb +pslt: rqrz * mjjf +mccw: 5 +tjgd: tqzr - bbvj +fbvn: vwhg + flfd +szzj: 2 +zgcs: 2 +cdpt: 6 +hqff: 3 +rjtv: llsp + ljbs +dvsw: 3 +rncc: fvqv * dlbm +fszz: bcdw + brnl +clzs: rdsh * mvjs +jmwv: 2 +rqqr: 9 +lgzl: 2 +lbjz: 3 +ghzh: 2 +tlvc: 3 +vbqv: jwnt + fpjd +mngm: 19 +frqw: 2 +qgpz: rjgt - drhg +vrjr: jbms + wqqz +fqhb: tfgf + zvrh +rjrt: mdph + fqtv +qwmz: 7 +qzmg: nbrl * qnsw +fczh: 2 +wsnh: 4 +jmvz: lpgm * fszw +sjfd: lrjr * jrfg +fsld: rjms + rfgl +flbg: 6 +mpwz: lmhf * sspm +rstm: 5 +cqtm: ljrh * wbgd +glmn: bvgt * bmcl +dbhn: 3 +fhdt: 5 +ltsl: phnr + jnjq +zqmf: 2 +fdvh: 2 +pjnb: 7 +pvgw: 5 +tlfz: 3 +qfhl: 16 +sfsr: ngdr * wlcw +sngr: 20 +qzwp: jfsw * qcpv +tfzj: wshw + vcdh +fmwm: 5 +swhr: gspg * sfgt +qqht: frjw * cvcs +nszh: 4 +fcnp: 5 +tbhz: qntd - szzj +qmcs: phpr / hdqv +nbbh: btnz * nvgb +bjln: btvt + bbrg +fpvq: 5 +ltwg: 2 +cjgq: 2 +lcwn: 2 +cjbm: 20 +vttc: 16 +bjwf: 1 +mjmj: nwqc / hsgf +hznh: 3 +wssz: gmbc * rzsp +fmvp: 16 +vtqj: mvtb + gnvf +vclb: 3 +hnhv: 6 +bnpf: 11 +nvmt: pfpq - dpbc +fgcs: bpgg * swzv +lbvn: 2 +ggzt: 14 +tqzd: plhm + hlhf +hnng: pvdj + qwlc +sbfp: swcf * qjqm +cmfn: 8 +pjdc: 2 +bcld: jlnp + gmzj +pbtm: hlhb * vqht +pnfv: 2 +rfgl: srnp + vdtv +jnvz: lzms + vzhf +rsvl: gncz * shfj +pqcv: 3 +cjtp: 2 +cttd: 5 +rfhf: 5 +lsfz: ghzh * jrnz +llrt: 2 +fcpr: 6 +zjdf: rmpm * bghj +qfqp: wdjn + rsjn +qwbz: mjwc + zhvs +dctj: 3 +fljq: hjnj * tcjf +hqwh: vdqh * tmqr +pjmv: dlsn + vftg +hgjz: 4 +bfbg: 4 +wvjz: vsjp + nsms +tzvb: 3 +sdgr: fhlf * rnrt +jfmf: 3 +lrdp: 11 +jztf: 5 +wzrd: pwwm + dchl +wftn: 2 +fbwt: mclf * zztd +prqs: wjnv * dbjv +mhjw: hzjc * gcjw +mvpt: 17 +nsrh: 3 +vnzp: 2 +hjnj: 5 +qnsw: zcdn + spgm +pshf: 2 +zlrm: nhcg + bnnl +blhv: 2 +sngl: llqs - zmzn +nnzq: dlqm * dpjg +ngwq: cdzd + ghlb +zrdh: 2 +ljbs: 1 +ldcc: zmmw * lvpz +pwwd: 3 +smpd: zrpf + thpg +bjrp: 10 +dnmd: rfcn / qmtv +trld: qtnr * lsqn +ptng: pgml * fpjw +lvsg: 2 +pzmw: 9 +gsnc: 2 +gbqg: 2 +mttg: wvgm - drfb +nmtm: 5 +bgng: 5 +nnww: smdl * lpqf +tjnz: mspm * pnfv +vqwj: 2 +dmss: hbsh + zhcg +qjdm: stvp * vmrs +trgr: czcc * glsn +mjjf: pmcp + fnst +qnzp: 4 +npvj: 4 +vrgt: 3 +grbh: lhbv + sdvl +shfp: 1 +nhmj: 19 +mcgc: 3 +dzfh: vczn * fhdt +tcrv: gpjv - nfpw +gmtw: ghts + vhcp +dtgm: 2 +gjnm: 2 +nmhf: hfhs * mhjw +bgcc: 2 +wfqg: ptqr * ttdj +scnp: 3 +llnp: nqfh * cmgn +vlhr: fnwh * dcpz +gdvv: 18 +jqhz: hqgn + fbvn +sjsv: cmgv * llfp +cnsq: zdpc + jpdt +cpnt: 17 +qlqd: qvsh * rscq +sgpw: hsdv + fljq +cvlv: 3 +zvtf: tllt * tfcf +mtvg: vrtf + mrzl +fsfp: 13 +zdpt: 10 +mlqr: 5 +wwvg: 10 +swcf: 5 +fpnv: 4 +vfbz: 2 +zcgl: 2 +fgnf: 1 +vnbc: qgmn * zhpj +zqhm: 20 +nqvr: 5 +hfvl: 2 +fmmh: 4 +pdqd: 1 +zfpc: 4 +drhv: mmqp * hrff +pjfq: qwqr + cjwt +hhdw: ppnq + slqz +zvfg: 9 +mzml: 2 +zrpb: pqjn * lwvv +rwpc: bgdn * jrtn +qwvr: bhvm + gpwl +vlmc: sftz * gmdd +nwzb: 2 +swzc: sqhp - pzng +sddq: jvfm * zjdf +ctmz: 20 +nbjw: 2 +phfm: zsrp + tsws +rjpv: lmrw * dbdf +qnqh: 5 +rhvv: gzpp + vlzv +vsll: jmld - qpvs +mqrh: qrnn + mczq +swgc: wbjq * fmvp +tzcm: 3 +jqdh: fpbm + crfg +jzwl: szcm * rzbr +pdpw: blhv * pvbv +tqmf: swhr / mwjf +nbfv: 2 +rfcn: lwvj + gbbz +vgrn: vlhr + bcsf +pvrw: rqwr + jhgj +wqql: vdgt + hgfc +ptjj: nvqv * vdvn +sswr: gbjs * cpbb +vgrp: 5 +tbgb: dgjd + nvfn +nppr: mtvg * cvqd +bcsf: 11 +gpmm: zgzf * rsmp +swcd: 3 +mmqp: snpf * ltwg +wjtn: 2 +vhcp: lfnl * mjlf +wrms: hlrv + dgzd +rffv: 9 +hrvm: 4 +sctq: jrdb * llnp +ljcq: 3 +dmjv: pzgm + bjwf +jrmw: tmwv + vrmz +rcfv: 5 +rhwf: 2 +cjwt: 1 +btdf: hztc / scjs +bnnl: vcdl + rbjn +lpzp: rbdq + fjtr +ttdj: 8 +bvcg: 5 +mhbc: 3 +lhcr: 3 +rcrc: rdcr * tzbj +mglm: 2 +bwww: pjhg * jnrp +dqgm: hznh * mhnr +root: fgtg + pbtm +dpbc: 10 +jnlr: 1 +lfcp: 3 +rgsw: wwsp + zclh +zdpn: 7 +pffc: sswq + mwbj +ghcc: bzsl + phfm +nzbp: 3 +lwvj: ggcz * sqrm +chhv: 2 +rlfm: 3 +bbrg: dtnn / mmnq +qrhw: ljjw + sbvg +mzzb: 13 +zmmw: fppn + lmhj +mczq: jtpp - vsql +hqbh: 3 +nhjz: 5 +fpbm: hrhw * lztm +vwhg: dzgq * fllw +bvhr: wsnh * qqds +grhf: 5 +rvbt: mzml * gtpv +hljs: bmrj * vczt +hdhf: zjhs * fdqn +qqds: vmtm + gmsv +tfcf: 4 +jsbv: 2 +sglf: 2 +jmld: psrv / htnv +mmnq: 2 +gqzs: vlmc + zfnv +znvq: tnhm * vwpq +dcnc: hzjr + hcps +fjbm: vnbc + hdcq +zhjm: 11 +wfrh: djdv * jtfh +whnb: tbqf * qdmq +mtgv: tqbd + qdfc +rzbr: hvpp + nwzb +rsmp: wtmp + fczh +fwft: gwlj * vnzp +nfsr: fnbg * cwwf +spsp: 2 +nvqv: 2 +nqfh: 3 +mqmn: bcns * prrh +szgq: 3 +lqng: rdgc - whzr +cpzc: 2 +stnp: 9 +hgsz: qfzw * tjnz +bjzl: 18 +mcjw: gtqq * ljst +fvjn: wvjz * znqd +njpq: fgcs + smtv +lvdn: dnqm + slhl +qzss: 4 +ffrp: 4 +qzjh: 3 +lrtv: fzcp - dtdq +bfht: ttjf + qbbm +hlbv: qcqc * dtwq +nvgb: rmzz + nlsv +llqs: 12 +whgh: 8 +tvgb: 17 +tbrb: bdml - zvhb +thmh: snqj + tbcp +gmjr: hdwn * wtcl +stln: vslv * bfbj +hsgf: 7 +bpts: pwwd * pvmn +tnhm: 5 +hptd: gddp + nspv +htrl: 5 +gfwd: btfg * nprr +cqpp: mlpg + wqgb +fsmj: 5 +ldwb: lvsg * qftc +mrqj: gmtw / sjvg +vsjp: wfrh + mhqm +lhpf: nntd + cvcl +qllt: 3 +hqwm: bttt + qwmm +mwbj: clnn * vhpz +wvlj: 2 +zvrl: grjs * rtsj +dpwh: gfzq + mftb +tllt: ntps + phlz +grwm: hqwm * wgcl +jzfm: 1 +qjjm: 2 +vljp: 1 +vbbc: 5 +mcft: nccv / psst +lhff: 14 +wspv: mzdr + fpww +fssw: mbqq * wsng +mqjh: zfpc * lncr +lccm: 2 +vppj: dfzh + dvsw +hvpp: lvdn - whmz +hbgz: 1 +mclf: ptjj / lhrt +jqcb: 19 +cbtc: 2 +zclh: 6 +jnct: rmrr + sddq +cwdv: wvgb + ddhr +stnj: qwpv - vgrr +wtgm: 11 +lvdq: 2 +jztp: 9 +nplp: vgrn * gprv +qssh: 5 +fwpt: mbsb + jgwm +sqnn: fgwt - ggvp +phlz: mwlp * mpbl +jbcv: 19 +cmgv: hjzq / jsbv +bnnn: 5 +vgrz: zqhm * hrvm +fzcj: 1 +sbsr: 2 +mgrl: 2 +vffw: 2 +wzcd: 1 +lzds: fwfj * zcws +tlgc: 2 +pwnv: 3 +cdvz: 2 +fzcs: tdwg / hpdf +cblr: tdsz * rtsq +dtzd: 4 +wfnp: tnbt / jphh +jbvl: gwwv / fdmz +wsng: 2 +glpr: 7 +rhqd: wtsv - gjcc +mgdf: lsfz + brrj +cvcl: tbrb + mhlb +gjcc: 5 +mqjq: 4 +fvmw: mqbl + fvjn +pjwg: fzlh + ssgv +bwpm: 5 +fflz: 2 +sslm: 12 +blls: 3 +zrms: cqvp * mvpt +lmhf: 3 +tdsz: 6 +nnvq: sltp * smfs +lfgl: 2 +hhzd: 7 +crfg: nvmt + zrms +hvbm: gdtg * wghj +rjlv: 3 +pwwm: mtfz + bpts +rzmv: cvcq * jjqv +mgcr: 8 +mlgn: jstl / rnpn +ptqr: nhjz + gpfh +drdp: tvjf + bcld +dstt: nthp * ntts +qtvv: jrzz + dwwq +zhcg: 5 +gddp: lwqf + tsvm +jcmr: 9 +fjst: gqnr * tfng +mlvg: bdrg / mgrl +nlsv: 2 +vmnh: ggzt / cmww +bnfl: ddrd + jffd +bwpt: pjnb * gtws +lqss: zztm * rvpv +fzqg: vffw * tbvv +gwvt: 7 +bsll: tdnq * hjnb +thhz: 5 +cfmz: 5 +bfjg: 2 +zfnv: hlnh * fjfm +rjms: glpr * tvgm +fllw: 2 +nfbm: 2 +hnwt: jrjr + trgr +wdvc: 2 +bjlm: 3 +ssgv: 3 +cwwf: 5 +fppp: 7 +lbpw: 7 +qftc: lqml + nfbv +bfbj: pgqn / tvrz +lbfp: 3 +qstq: 2 +jffd: gnbn / lnlw +cvcq: pjmv * mcgc +mzjt: 2 +mbvs: 2 +szlr: 2 +zzpp: 2 +tmzn: pjnn - lbvn +gfbm: 2 +bdhm: 2 +wvbp: 3 +rczj: prqs * jsmg +nvtp: 2 +tfjb: 1 +tfng: 8 +zvfv: 3 +rldj: sjst * zplt +lpwb: qfqp * frqw +tqcc: 8 +jfwp: 2 +mmmz: ssst * sdmw +sjcc: 11 +srcq: 6 +nhmp: 3 +whzr: 2 +ndhj: pwnv * rswf +wjmn: 3 +qcqc: 2 +qqgz: 3 +cgqq: mqmn + zrql +jvjc: 7 +hmbb: 10 +tjbp: 2 +whlh: 9 +jqbn: fssw - stln +fqcq: qrlj + wsfz +plsr: fpnv * slhq +gtpv: jfwp * zvjs +jbsv: 4 +bdlq: qjdm / fgdp +pdrs: 2 +dfwh: dwpf * gqjl +mftb: rwpq * gmsq +rjgl: qbmj * pmzl +pffh: fbnt * cmfn +hgml: 2 +sqrm: hltl + cgfc +qvsh: zqmh - mlqr +whmz: 2 +hffl: sbnm * jnct +hrhw: 11 +fgwt: nhmj + hsfn +twhc: 6 +bhvm: vgrc * qfhl +bfvw: qzwc - stbc +vzmc: 4 +hfpc: rjlv * vclb +hlbd: 3 +ltgr: 4 +gfvg: 4 +tbcp: 1 +ppmg: 7 +hlrv: hzjf * thhz +ghdc: 17 +lcdp: fwtq * cffj +qsng: cqhh * chhv +qmmz: mrrv + qlmn +btvt: grmd + rncw +htnp: vbpl * frbq +dqbf: wwwb * nbqz +sflg: sfjb * dtzd +rnnb: 5 +wzhb: 2 +smzc: 9 +qmtv: 3 +lmbh: 2 +cdgc: 2 +bgmt: jdns + fhqs +tvjf: wbfd * tfbw +dfgg: lscz + vdsv +qlvd: 4 +gdlw: 1 +vmrd: 7 +pwgl: jtmq - lfzr +wltb: 4 +pdpd: fzqn * npvj +nhcg: fjsr - qcjh +gfcq: ttpl - zgnb +npmn: 2 +srnp: dqgm * dndp +bgvw: zbvc * fzlc +qcgv: 10 +qqwq: jdrb - pqnq +qpph: 2 +qvln: ccsb + srtc +rvfq: 15 +pvbv: 3 +zlzs: dpwh * tvss +tljw: hjjg * vsll +dqpn: zvrl - trrg +ldmj: 2 +lncr: 2 +zsqv: lzds - svqt +bhnt: 3 +jrnz: wtrj / wlgz +hcps: wvlj * pqbz +fpmn: 2 +wbtj: 5 +tcgr: mwmn * hmzm +vsql: 3 +mlpg: 19 +zztm: 2 +mnlm: dnps - sjsv +gprv: pdpw * vbgr +gtrd: 2 +lvjv: qmmz + dnnc +mtfz: fmwm * mttg +cffj: 3 +sddb: 5 +dgjt: hgvv + lphb +lwdc: 2 +fsvh: 2 +lqlq: 14 +hztc: lcnr * nhnr +ssrp: brdg * rsrp +pnjm: 6 +hgfc: ggjp * mvwq +dbdf: 10 +jqgb: 17 +drhf: zwvq * nlgh +mtwb: qssh * fcvt +qcpv: qvhr + zlzs +dlsn: 5 +rsrp: 5 +wwwb: mnmz + ptsv +rvpv: 5 +grcw: hpmw * twrz +dvqb: hwvf + ndhj +wbjq: sdsp + rpnp +rbbn: 3 +zctw: tjzf * nrzl +bgbm: njgr * cpzc +wtsv: mzzj * jgss +jwdd: lhcr * djzs +jstl: lllv + lfjs +dssn: 7 +hqgn: 2 +mpbl: cqjn * gdnm +smtv: tqzd * fjtt +nzhg: mdgb * lzcr +srhw: 6 +dblz: sdjg + gvmc +rjsw: 2 +zzbn: wlsr + fsmb +wtrj: rtlh * lfgl +gvsm: 3 +jgsl: blls * fcpr +lmjt: hmwv * jbzw +lppg: 2 +lfjs: 4 +lwdd: 4 +wwgv: cjbm + btbf +qcpl: lfcv + hzsr +vttj: spsp * ngwq +vpzl: 16 +nvls: mqlw + hnng +phpm: nvzp * vrgt +nthp: 2 +tcmc: 4 +fwph: 2 +lnvw: lnqw * bfsr +wvbv: jnbq + cnfz +hwjg: bgjv + dqmz +wnzm: 1 +nwqc: vppj * mdlb +mvtb: 4 +jphh: 2 +mhnr: 3 +zvjs: pnjm + dmjv +gslg: 7 +jbzp: 2 +jzbt: dqpn / lqng +gqcp: lnqr * vpnq +hgvv: gbqg * lvng +hlhb: whnb + nqzp +nhsw: 5 +zcws: sznj + jzbt +fghj: 13 +rpwt: wfnp * mhtt +mjhd: zlbs * rwft +gtwh: 4 +dgzv: thmh * jrgf +rglw: bhnt * nssv +qcrz: qpbv - lnrm +vdqh: 9 +hfgq: 6 +sdsp: 1 +ffqb: 2 +jttq: 13 +zqjq: nwwl * ztlg +tcjf: 7 +cnvt: jvjc * qfpp +znjj: bnfl / nhmp +nlds: vjgm + nvls +rlmb: bzgd + cblr +fwhd: 11 +vqlp: 10 +gpvh: 3 +fjfm: fcbw + wwvg +nprr: 2 +fpjw: 5 +blwq: 4 +wnlm: fmmh * pshf +hlhf: bvvs / tglq +pzng: 1 +wfbq: ssrp + nvdr +cgfc: hnhv + hhlj +mvcg: 2 +sqlh: srwd * npmn +jfcb: wtgm + wnlm +rqnw: hmbb + pvfj +wlsr: rlrl * wwgv +vgrs: 5 +lqnv: wcht * jbsv +fvqv: dvfr * zrpb +gncz: tvjw * grjp +mrzl: lvjv / wvbp +sqhp: 12 +qlmn: lgtm + ptng +jjqv: 5 +phnr: lzwb * phct +jqpr: lbns * zlrm +nzlq: fcgn * fsfp +pjnn: cdcs + wtjn +cdfd: 3 +sdmc: gsnc * tjgd +tjzb: ftws - vnwr +wwwg: 3 +rvsn: wwcg + smpd +hlnh: rncc + qmcz +llfr: 12 +qrzd: dqbf / gfbm +lmhj: 4 +wvgm: ldmj * cbww +dqmz: wfbb + zhnq +dndp: pgvc * hsrq +ztlg: 2 +lmhb: qqcj + pdqd +vbfp: hwhm * hwjg +bdrz: 3 +sfjb: zzpp * lnlp +dmrp: 2 +qwmm: 4 +hzjf: 5 +vjbq: 8 +gwwq: mglm * mfdh +pfnq: 4 +pcgq: 2 +rqrz: 10 +qwlc: 7 +cvsb: 3 +mdlb: rcrc / nzjl +tsws: htrl * zgcs +lnms: btgd + hbgz +rmrr: szgq * rhvv +jsmg: 2 +gmdd: qcpl * wwwg +zvrd: qrzc * gtvm +lcgc: 3 +tmwv: 3 +tzhr: vpzl - jztf +lhth: znlp + mpvs +tqrd: cdgc * lzzs +mhqm: gbtz + nplp +pgvc: 4 +vgrr: flbg + fjqw +zvrh: 12 +zqmg: hptd + sjfd +rjrh: sngl * whgm +wwdw: hvbm + jlwc +llsp: pbjd + hjhd +lzzj: 2 +gdwf: 6 +hfhj: fdqw * qjwn +bwvt: trfn * hphv +ccbz: 4 +zbfv: hmpv * cgsm +tvss: hqff * lhzf +jlrs: vtsr * wzhb +wnst: sgpw + fcll +jbzw: svpd + trld +qcbb: rwln * swzc +hwhm: 2 +hrgr: 9 +wdjn: 3 +mqff: 1 +hdrv: lqvd * hcbm +vslv: 9 +vjgm: 8 +zfgl: mljq + vdtn +mtpv: mqrh + ncdq +llct: 2 +fppn: 3 +cvgg: 1 +jqcr: qnqh * tzhr +ccsb: wrwl * zqpr +nfpw: 1 diff --git a/2022/tests/day21.txt b/2022/tests/day21.txt index e69de29..e14be60 100644 --- a/2022/tests/day21.txt +++ b/2022/tests/day21.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