base R
tidyverse
loops
⭐⭐
Author

Ella Kaye

Published

December 15, 2023

Setup

The original challenge

My data

Part 1

Toggle the code
library(aochelpers)
input <- aoc_input_vector(15, 2023)
head(input)
[1] "rr=8,dd-,qck-,hkk=8,xfmqn=4,sx-,mgm=4,rkbh=8,scdp-,jllv=6,vgv-,bth=3,mmx-,vjbx-,jllv-,mnp-,mtcd-,zdxdbr=8,hjxk-,hcj=4,cbss=7,gds=3,lsk-,tc=1,hfjd-,gz-,bjbjs-,zx-,ldd-,kvp-,jllv-,xhmg=5,nzjmq-,xml=1,dz=1,mpl=6,zkp=5,ksl-,jsb=5,pb-,ffk=6,lsx-,hpb=6,gpkm-,dd-,sqn=9,jsb=8,hvghn-,hfjd=7,mtcd-,dq-,cmfkv-,vmch-,bp-,ftfh-,qck=8,dxxp=4,pkhcz=5,hb=5,ln=8,cpq-,nn-,mhr-,qfz=5,pp=8,lfst=9,tz-,rdr-,zlrz=1,lfcfh-,btnp=8,jgc=6,qrcl=9,hqcs-,bnf-,gsj=4,nmtpp-,hh=8,bq-,vzdt=3,hsr=9,jrj-,sbpc=6,ph=4,znqb=5,mfdc-,cpk=3,srkt-,kb-,sbs-,jfs=8,pf-,xsrqvg-,tkf-,pmb-,vzgr-,zjdzq-,tzn=4,lt=6,fsx=1,bfk=5,hfjd-,zpv-,xldjdr-,vmlz-,gn-,bc=7,mpdgm=9,mnl=1,hn=3,bvd-,cp-,ktl=7,xlp-,gj-,snzvpk=5,sp=4,jbf=6,pxs=7,dsxs=4,tc-,vb-,rpfx=5,rkvv=4,kkmdd-,dd=4,hqsd-,hst=1,kqjzrb=6,njf-,sbpc=8,lsx-,mmx=9,xlp=2,qx=6,jq=9,pb-,ds=5,dk=2,vlv=4,njf=7,lvjhdd=3,bxh=6,bvd=1,kcxfg-,ftf-,gql=8,mpl=1,qr=5,ghg-,kn=7,vcrpbh-,zpv=2,rbkzjv=6,jllv-,ldc=3,blm-,qr=5,mnl=2,cmx-,ccmftg=6,dsxs=8,ndvqm=6,tc=8,csdjh=4,gn-,zdr-,fp=3,qmj=4,fh=9,lvrrk=1,tnt=1,cthbt=3,dxz=3,bvd-,tj=9,rx-,ls=1,ttd-,fg=1,ls-,cpk-,jlt-,nt=8,jnkh-,ccmftg=5,nn=3,dtlc-,bdzht=7,zpdbq=3,hqcs=4,fg=3,kqjzrb=4,ghdft=7,vzdt-,vxr-,pb-,hsr-,kpg-,bfk-,snzvpk-,cbt-,hjxk=3,hlprv=5,fsq-,mtvrb=2,mhr=1,xrpgk=7,jd=1,jt=4,tk=5,pmm=2,jsb=8,xldjdr-,znqb=2,dqdl-,sp-,mtcd-,sd-,jzg-,mpdgm-,grl-,ljfx-,mpl-,gj-,ckk-,ltkdp=4,qb=3,qhx=6,gds=1,bhfb=8,qhx=3,zx=7,dxxp=3,hctrqn-,ljfx=6,rpfx-,jmz=7,jsb=4,mvx=5,rf=9,nfxf-,fh=9,gn=8,fgdbf-,scdp-,cthbt=6,lcrqx-,tzn=3,jrj=4,gpx-,vhp=8,xcrjq=7,xrpgk=3,kvp=7,lp-,dqdl-,ksl-,bj-,chp=7,trj=7,xdz=1,sb=6,bnf-,xml-,ftl-,jszb=2,ls-,qt=9,xl-,xhmg=6,xxb-,vfprd-,kkmdd=7,lghn-,grl=2,tcm=9,nlb-,hlt=2,zdr-,tjlg-,jbf-,xl-,gf-,jhp-,htxs=3,dd-,rtz-,slp=8,vhp-,gn=6,pn=9,dnx-,lfcfh-,dm-,hqcs=8,bbf-,dz-,qglr=3,qcm=5,slg-,hkk-,qbz=2,zbk=4,pz=2,rbkzjv-,sgs=9,fthkvq=7,ftf=4,dq-,mmb-,mf=6,hctrqn=7,lhls-,zbrslm=6,kx=9,vxfgd=1,vgv=8,gpx=1,vh=4,bxh=3,cxkt-,qhb=8,gz-,ksd-,mhp=6,xq-,ksl=9,spc-,ttpk=6,ldd=7,rg=4,pm=9,bfk=4,zv=9,xsrqvg=9,qk=2,jrj=6,csdjh-,vbjch=1,dxz-,vmch=4,px-,jdvn=3,cp=9,lghn-,ttpk-,zbk=7,nqh=6,rkbh-,fgv=8,pvqk=8,jd=5,vmch=6,ln-,jmztc-,pmm-,qfz-,mhj-,rjtdf-,jv=2,jskgmj-,gt=1,jv-,pxj=8,hjs=9,gz=3,kh=2,nqq=7,dtj=8,fsq=8,qglr=3,vgv=3,tjlg=3,rdr=3,lx-,vhp-,jnkh-,pkx=2,chtcdj=9,ksl=2,bcb-,tnt-,gkf=7,kh-,nsp=3,pp-,mmx=7,mgv-,vzgr-,bnf-,tv=7,hctrqn-,xhmg-,hkk-,kkmdd=5,bhfb=3,btg-,bqch-,vbhvv=1,pz-,fbklmr=9,hkhs=5,lppmv=9,ltkdp=9,hlprv=9,ttp=6,gs=5,lm-,pz-,gn=6,qb-,vnv-,vhbf=8,gpl-,pmm-,rsn=2,gqlkm=5,lsk-,hst=7,hv-,pgdg-,hst-,csdjh-,fvp-,cxkt=8,gkf=1,kvx-,rjsb=9,pvqk=9,glp=2,ds-,vbhvv=4,xs-,fgdbf-,blm-,kdr=5,grh-,lfcfh=3,mb=9,jh=4,prs=7,gm=3,dz-,ftbdsn-,jd=2,kjgmr-,dxv=2,qmq-,dtlc-,ll=9,tjlg-,plj=8,ccg-,lt-,vq-,ft=6,lsx-,xcrjq-,rkvv=2,sph=7,vb-,lp=6,xnvm=4,ktd=5,txc=6,zbk=4,lxm=9,lq=6,mhr-,gql=9,gpkm=7,lsx-,fz-,bq-,hlt=3,trj=9,pkdd=9,xnvm=4,hv=5,lppmv-,dg-,vq-,rbkzjv-,srkt=3,cpk=6,vds-,xvm-,mpdgm=3,cc-,xml=3,hcj-,dxv=9,lvjhdd=2,mtx-,dz-,mdtzp-,gj-,zrvk-,gds-,kz-,tj=5,tkk=1,qx=9,tmn-,mnp-,ztz=7,qz=6,ndjn-,tcm=7,pgdg=2,ftfh=2,bfk-,nqq=9,zmft-,rvps-,gmvt=3,pkhcz-,qfz-,bth=8,xb=8,lt=2,zx-,mrs-,tgvkt=2,qt-,dqdl-,fsx=8,mnp=6,hpb=6,pgdg-,vmlz-,prmt=7,bqch=7,bxg-,mvbf=4,qm=7,xq=9,prmt=9,qb-,crhh-,ghv=8,nrk-,qhx-,qz=7,sgs-,lmdx-,sbpc=5,nmtpp=8,bdzht=4,blm=2,kz=9,vgv=5,hctrqn=2,nxc=6,pgdg-,pzllx=6,hx=8,slg-,nmtpp-,nt-,skb=6,mb=6,jk-,fd-,jvn=9,jh=2,lz-,vgf=6,nzjmq=5,kqjzrb-,sbpc=7,cm-,sbpc=8,xxb-,jh=4,jvh=5,hjxk=6,lkxmjz-,trj-,prs-,gn-,tj-,fvp=7,ztz-,vq=4,mdtzp=4,zbrslm=2,fz-,xsrqvg-,ktd=6,hl=5,nrk-,nnhv=3,gc=3,rtl=8,tn=6,tnt=9,jd-,gzt=3,bdzht-,tv-,tk=3,mls-,jnbfd=5,kz-,nzjmq=6,qrcl=4,mrsl=1,sbs=7,gqlkm=3,jsb-,mj=3,mrs-,fgdbf-,nv-,cm=1,zrvk-,njf=7,ljfx=1,zpdbq-,zc=6,zpdbq=6,kvp=5,zsd=9,hjs=7,njf=9,xq-,nrk-,lghn=3,rjtdf-,dqdl-,vlv=2,jrj-,nnhv-,vx-,ffn-,xp-,fsx=2,gc=4,qxmqls=8,mhxczx=7,bxh=6,kb-,dnx-,mxrf=6,btnp-,zpv-,mblp=9,kg=9,tv-,fsq=8,kkmdd-,bdzht-,pt=8,zhsns-,hst-,jskgmj-,chtcdj-,hx-,dtlc-,mfc=3,tkf-,pk-,bhfb-,fh=1,bgtj-,nnhv-,blm-,tmn=1,qhzq-,bdzht=2,cx-,mgv=6,sqn=9,qm-,rf=9,nrk-,fh-,trj-,ttd=5,kh=7,bjbjs=2,pmm-,dd-,ksd=7,cbt=9,ng-,xn=6,mq-,kb-,jskgmj=3,cx=8,rf=1,vbv=9,jfs=8,xl=4,xs=4,cpk-,jc=5,sgs-,tsp-,pn=5,pp-,mhj-,nlb-,qs-,xldjdr-,fgdbf-,vr-,md=7,gsj=7,hjxk=8,tnt-,fvp-,bc-,qb-,ksl-,fbklmr=3,cthbt-,vnv-,lsk-,plj-,hlprv=6,gqlkm-,xm-,ksd-,rx-,kmlszs=7,kkmdd-,vzdt-,ftbdsn-,xhmg=2,sp=2,ng=9,hp-,vgv-,mnp-,grl-,tnt=7,bxg=7,pb=6,sph-,pmm=4,rr=2,nn=7,spc=8,hkhs-,lmdx-,hfjd-,ccmftg-,snzvpk-,dg=2,qhzq-,cjhz=4,qjqhhf=6,hqcs-,spc=7,jnbfd=8,chtcdj=7,mmb-,qmj-,kzkn=4,lp-,nsp-,ffk=5,bv-,hlprv-,xdb=8,qbz=9,mx-,zjdzq-,jt=7,bnc-,ltkdp-,xs=6,qhzq-,cbss-,gn=8,hvghn=4,gf-,gzt=1,vp=3,mj=8,qz=9,xxb-,ftfh=1,kdr=9,hv=1,xb=7,vk=8,mnl=5,hx-,xs-,jk=2,cr=1,dsxs-,spc-,dxxp=7,gchjj-,xldjdr-,zkst-,ftl=7,rpfx-,pkx=3,js-,dj-,dtj=2,plj=7,vbhvv=2,hkk=8,gqlkm=9,gmvt-,bjbjs-,skb-,jskgmj-,vbjch-,jmz=3,nrk=8,nsp=4,mtvrb-,sd=8,ph=2,hpb=5,bgtj-,kn=6,ms-,mrq=1,xz=2,tk-,vhp-,ng=8,xdb=6,sbs=9,pzllx-,mrsl=4,hlt-,jvh=2,bnc-,mhxczx-,chp-,gpx-,fsx=1,cxkt=2,dsxs=4,tgvkt-,bnf=4,csdjh-,xmx-,zxn-,mnl=5,xlp=7,btnp-,sbs=5,zjdzq-,nqh-,kn=2,fp=7,btg-,zm=2,mvx-,ldd=9,kkmdd=5,xn=6,fsx=9,pf-,vsl=3,tmn-,gs=1,mls=8,scrt-,qhx=9,rqv-,mtcd-,ndjn=2,dj=7,hlm=8,lsx-,qz=5,xmx-,mrs=2,mvbf-,fsx-,pxs-,ltndmf-,xrpgk=7,gpl-,mb=3,qx-,lq=4,cjf=9,qhx=5,kclt-,lqm=5,vmlz=2,cjhz=9,pm=9,vlv=4,tc=8,mf-,ttd=3,mtcd-,qhzq=7,fthkvq-,vk-,ktd-,ljl=9,lp-,zhsns=5,hkp-,hx-,jbf-,jllv-,bnc-,pf-,nrk=8,mblp=3,tmcxnf=3,gds=6,qs-,zsd=3,sb-,fsx=5,zhb=5,lqm=9,kvp=5,bnf=6,nfxf-,vh=4,df-,gsj-,qglr=4,tj-,hctrqn=4,xb-,lz-,hcj-,fbklmr-,jk-,zsd-,zdz-,kqjzrb=8,dnx=2,kjgmr=5,ccmftg=3,qxjk-,gc=9,vgf=4,mb=2,qt-,vr=5,sbpc=5,nn=2,pkdd-,btnp-,xmx-,ghv-,ghg-,xs=2,xvm=5,scrt-,tz-,vds-,bjbjs-,zxn=5,lqzh=9,qglc=1,prmt-,sbs=1,pkhcz=7,pp-,jzg=6,zx=5,mtvrb-,gc=7,vb-,qmnx=4,cm-,nrqb-,rpfx-,fz-,rdr=1,qhb=8,gdn-,lrcqxb=6,nn=2,vmdxp=2,skb=4,hpxd=1,tsp-,ffn=8,fcc=7,mqxq=1,hlprv-,ftl=9,bhfb=8,pp-,slg-,rvps=1,hpb=1,zhsns=6,dd-,kvx-,bxg-,ttpk=6,gpkm-,vb-,rg-,lm-,vct=1,lfh=5,lm=8,rts=4,pgdg=4,tsp=3,fgv=7,fspp-,zhp-,lt=2,gn-,qjqhhf-,bbt-,vtb-,cbss=9,nnhv=7,lt-,fl=8,znqb=6,xhmg-,hsr=3,gzg=1,ssh=4,qglr-,kkmdd=7,vtb=9,bth-,mtx=6,dg=4,lfst=1,pmm-,kx=7,fspp-,nnlnc=8,jhp=6,pb-,lfst=1,hsr-,vbv-,mf=1,dxz-,rjtdf-,tgvkt-,dhkn=5,lfcfh-,ccmftg-,nzzb=6,rq=2,lqzh-,nnhv=5,vtb-,sbpc=5,ttp-,htxs-,dsxs=4,plj=9,qmnx-,jfs-,mgv-,xxb=7,rt=9,dtlc=5,zmft-,ccmftg=2,pmm=5,hx=3,bgtj-,kpn=8,ghg=5,prs-,sv-,jl=3,zdxdbr-,dxv-,jhp=5,sbs-,zhb=5,sgs-,cthbt=8,gpx=6,hlprv-,rkvv=3,cmx-,zdr-,xlp-,cbss=6,rg=9,ms=8,nrqb=1,gmvt=1,jrj-,jbf=1,kx-,xtb=7,kvp-,grl=4,tj-,pmm=5,xvm=4,jfs-,tc=8,scdp-,glp-,kb=3,lrcqxb-,dz=1,tc=8,dxv-,pb=7,ffk=9,rsn-,cr=9,mls-,gt=8,vqrm=3,mqxq-,ldd=7,msj-,lghn=5,jsb=3,pkc-,vjbx-,fp=3,kzkn-,tkk-,pp-,hqsd-,cbss-,zdr=3,vcrpbh-,ldc=4,pxj-,fh-,ds=5,zlrz=4,kb-,jnkh-,tv=8,cm=1,dxv-,xq=5,ln=4,gds=4,ttvm=3,gs-,vk=7,clj-,ghg-,zm=2,rx=7,qrcl=8,cthbt-,vnv=6,xvm-,xms-,jmpln=8,hvghn=6,cr=7,jhp=4,ftbdsn=2,dxv-,bq-,bp=9,jlt-,csdjh=7,vk=3,kh=1,vqrm-,nrqb=1,cbt=1,tnmn-,mmx=3,lvjhdd=9,lb=7,nzjmq-,ph=4,lvrrk-,bgtj=3,td=3,lkxmjz-,ksl=2,nrqb=4,pk=3,qr-,hl=1,kqt=2,nnlnc-,mx-,gt=6,fl-,kb-,btnp-,psddr-,kvx-,cjf-,bnf=3,ffk=1,lm-,mrs-,fb=8,zv-,ttp=4,hfjd=5,jt-,hk-,qcm-,lcrqx-,ndjn=9,hkhs-,tmcxnf=4,vjbx=5,hnkvf=4,jq-,glp=6,bnf-,qn=8,xcrjq-,rrt=7,dtlc-,zkp=3,ktl=6,gf-,qjqhhf=9,hf-,kvx-,rjtdf-,gsj=6,bdzht=9,qk-,pmm=3,nqq=9,dxxp=7,zdz-,lxm-,ftf-,tj=3,jc=9,dk=1,ccg-,sbpc-,zsd=4,bhfb=9,msj=8,xn-,hfjd-,hpxd-,kqt-,jszb=9,hx-,rhpxs=4,rx=5,blm=9,rhpxs=7,kn=7,hknm-,kvx-,nt-,grrf-,jnkh-,tmcxnf=4,kpg-,jvh=7,cthbt=7,vxr=1,dhkn-,lkxmjz-,pg-,bj=9,hnkvf=2,xp=6,pmb-,cpk=6,vgf-,lfst-,vxr-,dm-,kb=1,tv-,psddr=3,dtj-,jbf-,kz-,pkc-,vr=9,xz-,ttd=5,bnhk-,mtvrb=6,bxh=8,gn-,ksd=5,sb-,kb-,zbrslm=2,rjtdf=5,ksd-,bv=6,kmlszs-,bv-,gzg-,zx-,cmx-,rjtdf=5,ztz=9,rjsb-,bcb=5,mfdc=9,bv=5,rhpxs-,vbjch=4,zxcq-,zq=9,mqxq=1,zpdbq=4,dzg-,kh-,mvbf-,qfz=4,mnp=5,ldc-,jgc-,vsl-,kclt=3,ll=2,lfcfh-,kb-,dj=3,vct=7,pvqk=1,bm=1,dm-,zc=5,qmj=9,ghg-,rt-,cjf=7,lghn=8,bnf-,plj-,srkt-,ckk-,cmx-,zk=5,zm=5,ft=5,qck=8,zbk=5,ncss=3,vq-,blm-,tlk=5,qglc=3,lfcfh=2,xs=8,vk=2,snzvpk=5,vp-,xdz=9,jk=6,mb=5,jd=7,hnkvf=9,lfh=5,nzzb=9,txc-,tcm-,zhp=8,mtcd-,xfmqn-,ls=2,sb=7,lppmv-,sx=7,xnvm-,lrcqxb=2,jgc=1,kmlszs-,ljfx-,mrsl-,lm=6,tv-,kz-,vgf=7,kpg-,qrcl-,lcrqx-,gql-,nmtpp-,vzdt-,btg=4,dg=5,bth-,gds-,glp=3,rmn=5,gpp-,vbv-,vhnn-,qxmqls=1,vxfgd-,fgv=1,kpg=2,sb-,hlm-,rtl-,qx-,pkhcz-,grl-,qfz=5,vmdxp=1,vk-,jxxx-,mnp-,vmdxp-,qk=3,gzt-,qjqhhf=4,kgs=5,xvm=3,vmdxp-,tkk-,tlk-,vf=6,tjlg-,skb-,lkxmjz=2,tn-,rg=3,srkt=1,cx=8,dkjr-,ksl=2,kpg=6,bj-,dq-,lghn-,fgdbf-,vzgr-,hlt=1,sbpc=5,ln-,vqd-,ntxx=2,fp-,fvc=7,rsn-,xnvm=1,gmvt-,pvqk=2,gz-,xm=5,nfxf-,vqrm=6,mdv-,zlrz=3,qt-,ktd=8,hctrqn=1,mb=4,lvjhdd=7,cqpfs=9,ghg-,gs=9,qfz-,jmztc-,lsk=5,jlt-,jfs=4,tzn=1,cmfkv=9,xmx-,lrcqxb=3,ksd=8,qt-,htxs=6,gk=4,ksl=8,xsrqvg-,qn-,sb=4,tzn-,cmx-,nnlnc-,ncss=5,nzjmq=8,srkt=2,btg-,xq-,qt=3,rvps-,lcrqx-,cp=4,xnvm-,qck-,mblp-,mgv=5,pxj=6,nqq-,rkvv=9,mblp-,mmb-,rtl=3,zlrz-,qck-,ll=9,nfxf=9,vmdxp-,nzjmq-,vbhvv-,zbk-,grh=3,zkp=9,gql=1,xml-,nqh=2,qhzq-,xn=1,lqm-,lxm-,xn=4,hcj-,gz-,jt-,fl=2,qxmqls=1,vzgr-,qz-,xxb=4,lfh=7,lqm-,vmch-,mfc=8,pkx=4,nmtpp=8,zq=3,vr-,pj=2,vhbf-,vx=8,md-,dhkn=2,msj=1,hn-,btnp-,ftbdsn=1,nt-,bv=2,lvrrk=4,kcxfg=9,txc=5,dnx=1,pkdd-,blm-,ljfx=1,xl-,fg-,vgf=7,jl=4,gpx-,ksd=7,fvp-,rhpxs=9,vq=4,rjtdf=5,qcm-,rx-,jhp=4,prmt=7,zjdzq-,rx-,ghg=1,qs-,xq=5,vmlz=1,grl-,rhpxs=4,ltndmf=1,bp-,lx-,nn=8,cxkt-,cc-,lz=5,vz-,chtcdj=1,jk=4,vmdxp-,lz-,jvn-,ktd-,cmfkv=7,xp-,psddr=4,vmch-,kb-,jnkh-,ndd=8,kpg-,lppmv-,jxxx=7,rt-,vbv-,lm-,nfxf-,fl=7,qt-,df-,mtvrb=9,fb-,xxb=8,pn-,xxb=6,fz=3,pl=6,hlt=7,trj=2,tlk=7,vds-,srkt-,px-,vk-,btnp=5,bm-,tc-,hkk=4,trj-,hkhs-,sp=1,gpp=1,ndvqm=1,bj-,fh=7,ln=4,prmt-,xhmg-,xldjdr=3,lnprhq-,rjtdf-,mgm=3,msj-,vxr-,rbkzjv-,nt=6,bj-,bxg=3,rhpxs-,pvqk-,kqt=1,kgs=8,xmx=8,hh=7,fp-,bj-,prs=8,rkvv-,hlprv=8,ljfx-,rjtdf=2,rhpxs=2,hsr-,ttp-,lfst=5,cfl-,ph-,ckk-,zm=4,tsp-,lm-,ksl-,qxmqls=5,mhp-,bhfb=4,rbkzjv=3,gj-,vx-,bxh-,grrf-,vr=6,ndjn-,pkhcz=7,fvp=3,kx=2,cc=7,vlv=3,ds=9,cmx-,cjhz=8,qglc-,dg=9,xsrqvg-,ssh=5,zkp=6,ftl-,xz=7,mrsl=5,gpx-,lsx=2,lvjhdd=2,cp=3,mxrf-,vlv=5,tcm-,rt=7,tcm-,clj-,njf-,mls=4,fbklmr-,nfxf-,vds=1,ft-,nn-,mrsl-,mf-,xhs=1,vhp-,hf-,kb-,rdr-,xvm=9,td-,qglc-,xvm=9,zxn-,lxm=3,qr=7,jsb-,nrqb-,kclt-,sgs-,kz-,hpb-,hkp-,pk-,spc=1,ktl-,hlxqc=1,kdr=5,nqh=1,zq-,pl=9,lhls=5,tkk-,nqh-,bcb=7,zbrslm=2,rtl=5,pkc-,vsl=8,qglr=7,qck=8,pz-,gk=5,qhzq-,mvbf=1,vhbf-,kclt-,prmt-,mhxczx=5,cxkt-,mdfq=9,hn=8,ndjn=8,gsj-,bp=1,kz-,ng-,mvbf-,ktd=1,xms-,hnkvf=5,pkx=3,jd-,qz-,jmpln-,srkt-,mtx=6,nn=4,ljl-,qhb=2,mfdc-,nmtpp-,vfprd=4,hcj-,dxz=9,xq=6,gz=1,vsl-,sd-,lqzh=8,vgv-,vhbf=8,bnhk=8,lppmv=5,lrcqxb=7,zk=3,mnl-,dkjr-,cpk-,gc-,xnvm=2,vz-,lfst-,jdvn-,ds=7,lq-,sgs-,nrk=7,rtl-,zhp-,ntxx=5,ds-,jfs-,rpfx-,zkp-,gds-,xz-,ds=6,hjxk=6,nnhv=4,dnx-,hpxd-,grh=6,ssh-,xz=5,tv-,sph-,dqdl-,tcm-,zkst=2,fd-,hcj=3,mj=3,dhkn=8,lvrrk-,ltndmf=7,qglr=9,mnp-,px=4,vhnn-,txc=1,lsk-,zhsns=8,ds-,vhp-,bqch=1,mfdc-,zx-,jvh=2,fgdbf=5,zkst=8,dz=5,ghv=7,dsxs=5,vp=8,lsk=5,ltkdp-,kpn=7,tz=4,jq=4,pn=9,xz=7,vb-,lfcfh-,fg-,tgvkt=3,rqv-,qglc-,nmtpp=7,ttd-,pkx=8,vcfv-,qs-,rsn=8,cmx-,vct-,ccg-,vbjch-,msj=3,xxb=2,mn-,mdfq=7,prs=6,ftfh=4,jd=3,zrvk=8,cpk-,ssh=3,qmj-,hjs=3,lghn=5,rf=6,fh=6,mgv-,rtl-,dg-,kkmdd=8,jvh-,vq=7,hknm=1,pp-,fspp=6,dkjr-,ng-,tj=4,nv-,lm-,qglc=2,fgv=1,qx=6,qz-,fsq=5,fl=6,fthkvq-,spc-,mqxq-,ph-,tsp-,hkhs-,chtcdj=7,lppmv-,tn-,jnkh-,bbf-,vbv=5,fbklmr=3,crhh-,hh=3,jlt=8,ftl-,zx=7,zk-,sp-,slp-,rhpxs=5,rz=5,gzt-,rhpxs=1,tkk-,hv=6,snzvpk-,mdtzp=5,vp-,vxfgd-,xhmg-,pk=2,lm=4,qrcl-,vbv=3,bq=9,dj=9,hcj=8,jskgmj-,mx=5,tnmn=4,xm-,hvghn-,jc=6,jgc-,qm-,sbs-,lx=6,gchj-,vgv-,gchjj=3,jfs-,lb-,slp-,xhmg-,xmx-,mvbf=8,mtcd=1,jgc-,ttpk=2,qx-,dmmc=5,zhsns-,vnv-,htxs-,cr=6,snzvpk-,crhh-,vrfv=7,vhnn=5,fb-,hh-,ndjn-,ccg-,lz=2,rvps-,qk-,gpl=9,gz-,qz-,scrt=1,grrf-,hl=6,qck=7,pf-,ln-,pg-,lhls=6,gmvt=3,ccg-,rbkzjv=3,hp=7,lfcfh-,bh-,hlxqc-,vr-,mpdgm-,ljl-,vlv=1,mx=7,hctrqn-,qmj-,slp=9,qmq-,hlxqc-,ftbdsn-,gchj=2,gqlkm=9,mls-,kx-,zsd-,rjtdf-,rmqh=4,mnl-,spc=7,qk=8,fl=5,lkxmjz-,mls=9,gpx=3,qglc-,zpdbq=4,hctrqn=3,ttpk=2,gzt-,bxg=6,jk-,jhp=7,zkp=8,zbk-,mpl-,vjbx-,mfdc-,qck=2,gsj-,zpv-,fb=2,mtvrb-,hlm=1,lsk=4,ftfh-,rjsb=3,vbjch=9,hp=8,qjqhhf=1,tk=9,dm-,kzkn-,jxxx=3,rt=6,dqdl=2,qhzq-,gt-,rsn-,xdz=1,nzjmq-,gs-,lvjhdd-,sbs-,vfprd-,vx-,xb=9,gc=9,vq-,jzg-,lppmv=8,qm-,lghn=1,mx=7,sbs-,rtl=1,hkmnk=9,dnx-,sqn-,ghdft-,gk=6,lsx=1,dz-,gpkm=8,zkst=8,pl=6,btg-,rpfx-,tkk=8,fvc-,qk=8,gzg=3,ph=2,tv=3,ndjn=6,rr-,bgtj-,blm-,nmtpp=3,skb-,mdfq=4,gmvt=3,nzzb-,px-,pmm-,mx=7,kclt-,sqn=3,nv-,kclt=8,pvqk-,ckk=1,mb=7,dq-,pmm=8,hlprv-,dzg-,grrf=7,hlm-,nn=2,fd-,hh=4,fvp=7,dd=3,mdfq=9,mfc=7,cpk=5,hh=6,bxg-,rx-,vbv=9,blm-,rvps-,zdr-,sv=9,snzvpk-,hpb-,pb-,fspp-,vcrpbh-,xhmg=2,mtvrb-,lnprhq=3,sp-,nfxf-,fz-,ntxx=6,blm-,prmt-,cjhz=6,spc=8,lfh=5,pvqk-,hst=8,fgv-,zjdzq-,hknm=7,zq=2,gk=3,xcrjq-,rqv-,pp=2,bbf-,fbklmr-,fh-,gpl=6,bgtj=7,ktd=4,kh=5,tzn-,ftl-,vbhvv-,gt=9,ccmftg=3,ndvqm=9,ksd=2,gchj-,jd=8,mnp=3,vx=1,bm=9,tnmn-,ljfx=1,fvc=9,nrk-,ll=7,rdr=1,trj=9,rr=5,kgs-,lqm=1,dk-,sd-,msj=7,vcrpbh-,jnkh-,pgdg=2,xldjdr=7,lm=9,jh-,nsp-,rsn=8,mfdc=4,mb=9,tkf-,tnmn=5,glp=1,jq-,rkvv=2,jh-,mfdc=4,tz-,kg=5,fgdbf=9,pkx=3,xms-,bm=8,ll-,kkmdd=2,mfc-,csdjh=9,ttp=5,rq-,mblp-,gz=1,rkbh=3,ph-,tc-,pxs-,fspp=9,gc=6,pzllx-,lp-,dtj=2,kvx-,xfmqn-,hnkvf-,jnkh=1,bhfb=7,bvd-,prs-,ttp-,pg-,kvp-,ccmftg=1,zjdzq-,cjhz-,ttd-,hkk-,vf-,fcc-,jszb=3,qcm-,qs=6,sv-,xm-,sgs-,hkk-,rtz-,jnkh=9,lxm=1,zkp=5,jl=2,mnl-,qm=4,dj-,xhs=5,fh-,zx-,vb=7,bm=2,rvps-,jc-,pkhcz-,gm=1,srkt=9,lfcfh=2,bxg-,ttpk-,tz=5,fb=4,kzkn-,hn-,mmb-,ls-,vbv=5,mq=7,mq-,qmj=1,ckk-,bhfb-,pk=8,plj-,vmdxp=4,qr=1,dqdl-,ffn-,bq=9,xs=2,hnkvf-,sgs-,lfh=4,sp=9,mrs=9,mnp-,mdtzp=9,xnvm=3,ltkdp=9,gj-,mls=3,xxb-,vf=5,bjbjs=4,zpv-,sv=5,rjsb=5,tk-,dg-,hf-,jskgmj=8,vfprd=6,bth=2,ffk-,xcrjq-,mfc=5,tzn-,rts=5,ltndmf-,cthbt-,mrq-,sqn=4,dj=4,kzkn-,jgc=6,htxs-,dg=5,gpkm-,xvm-,xmx=9,jzg=5,qck-,cbss=8,bbt=2,tv=5,jf=3,prmt-,vf-,dk=8,cp=6,pl=8,hpxd=3,qn-,xp=9,lfst=4,ffn=7,sv=5,fgdbf-,tmn=8,psddr=9,pt=2,hk=5,fspp-,xl-,xlp=1,mhxczx=6,njf-,tkk=1,qz-,cjf=5,kgs=4,tlk-,jzg=9,msj=3,zrvk=7,lq-,ccg=2,dmmc-,bnc=2,gk=4,lsx-,gpp=6,sv=9,grrf-,pp-,dxz-,gql=5,hkp-,xxb-,hsr-,cbss=3,nrqb=2,pkdd-,vhnn=2,nt=8,kqjzrb=1,mhp-,rsn=6,hfjd-,nxc=7,vbjch-,mq=1,pf-,sbpc-,nt-,gt=3,rbkzjv-,nn=3,pm-,xn-,ktl-,dnx=3,pgdg=8,pkhcz-,gzg=9,nmtpp=8,tsp=6,vp=9,fp=5,xldjdr-,ffk-,cqpfs-,mnl-,sqn-,mgm-,prmt=1,pm=1,tjlg-,zm=2,ndvqm-,cx-,xz=7,tzn-,sx-,bnc=4,vq-,sx=2,cmx-,grl-,jszb-,cx=2,nsp=9,dzg-,dtj-,jd-,vf-,mtvrb-,trj=1,bv-,rvps-,xs=3,pz=2,hkhs-,sd-,xxb=3,mtcd=3,dxxp=2,kh-,bh=9,kh=3,vnv=1,gs-,gpkm-,lz-,spc=8,ljfx=1,hqcs=5,jv=4,fsx-,dmmc-,hpxd-,mvbf=6,hb-,jzg=1,fz=5,cthbt=7,bnf-,xdb-,qfz=3,mf-,bbf-,hlm-,mqxq-,mdv=8,vz-,pt=4,sv-,hkmnk-,rkbh-,zhsns=3,rvps-,kvx=6,tlk=1,vb=4,nnhv-,dtlc-,rx-,bxg=5,jl=5,sp=1,tgvkt=2,zlrz=9,fsq-,kh=5,gpkm-,kvp-,nsp=6,px-,qb=4,vbhvv-,nqh-,px-,rsn=9,fp-,lt=5,mhr=2,hp=3,lsk=6,gm-,fg=9,rpfx=1,bgtj=5,jdvn=9,snzvpk=7,dk=5,xz=5,dlf-,ghdft=3,mnp-,btnp=6,blm-,gchj=1,dhkn-,zdz-,xsrqvg=4,vqrm-,hsr-,xms=6,ndd-,pzllx=9,mpl=3,jllv-,mf=1,ftl-,vzgr=2,fvp=9,mnp-,vgf=2,dxxp-,mnl=8,tj=4,lghn-,cmfkv-,xfmqn-,ztz-,vcrpbh=3,rdr=7,bth=4,qb=1,tcm-,qb-,hqsd-,rt-,rz-,chtcdj-,msj-,xhmg-,pj-,hlxqc-,rvps=4,jf-,psddr-,bnhk-,xhs-,nzjmq-,msj-,xm=8,fbklmr=9,bcb=1,grh=4,mrsl=6,hl-,qr-,xhs-,xxb-,zm-,vmdxp=8,zsd-,hlt=2,jllv=7,pzllx=6,vfprd=5,tnmn-,mvx-,xlp-,qhb=6,kkmdd=2,mn=9,vk-,dzg=4,qb-,sgs=2,tnmn-,vqd-,rtz=5,cjf-,mgm-,vnv-,mj=7,kn=5,tk-,gql-,xrpgk-,px-,cjhz-,kclt=5,xsrqvg=5,qxjk=2,btg-,zbk-,lmdx-,lx=1,kkmdd-,rqv-,rkvv=4,vsl-,rx=7,kvx-,cpk-,pkdd-,mhp=4,hn-,hknm=9,fh=8,slg=1,hjs=7,jh-,qhzq=3,rpfx=3,jxxx=2,rsn=7,ms-,qjqhhf=1,mgv-,qxjk=4,dzg=4,mrq-,rvps=7,vk=1,hf=2,vnv-,nnhv-,qhb=8,mn-,gql-,dk=6,jl-,ntxx-,kx-,jsb-,jdvn=3,xvm-,lnprhq-,jnbfd=7,qrcl-,zbrslm-,trj=1,lx-,cjhz-,hnkvf=1,kpg=5,ldd=8,nlb-,hpb=6,jf=9,qmj=1,zjdzq-,dkjr-,hpxd-,zxn-,rsn-,pf-,bcb=9,txc-,jrj-,sbpc=4,mk=4,dnx=6,kdr-,nfxf-,zdz-,pmb=3,fbklmr-,chtcdj-,ttvm-,mfc=6,cfl=6,dzg-,pkdd=8,gk-,lrcqxb-,bhfb-,mtcd=8,mj-,pl=1,pxj-,xtb=5,hkmnk=6,dq-,ffk=8,jv-,dtj=9,vcrpbh=5,mdfq=8,fthkvq=7,rpfx=9,xm-,tk-,mxrf-,sv-,pgdg-,nsp=3,xdz-,qfz-,xq-,xxb-,mx-,cpq=9,rtl=6,bq-,gj=1,nrk=6,kkmdd-,chp=8,dmmc=1,rvps-,hjxk-,ksl-,sp-,cp=5,zsd-,xxb=1,jk-,xml=1,tjlg-,vsl=9,bvd=4,pl-,grl=2,mhr-,ftf=3,bv=9,qxmqls-,zkst-,pkc-,tk-,ckk=7,jl-,sb=5,rpfx=1,plj=9,fgdbf-,vhnn=5,xxb=6,ds-,ttp=9,qr=9,jk-,dhkn=5,lsx-,vbjch=6,qfz=9,rsn-,pg-,pkhcz-,rmn=9,ltndmf-,jllv-,scrt=7,bcb-,pz=9,ckk=9,pg-,rjtdf=6,qglr=7,cbt-,lrcqxb-,qb-,ds=4,qm=5,ccg-,xz-,gkf-,jk-,cp-,ffn=1,kb=7,ttpk=1,rt=4,mblp=9,gpl=6,clj-,vz-,lsk=1,ls=2,kz=9,hvghn-,vmdxp=4,lnprhq=7,mxrf=4,fvc-,mrsl-,qjqhhf-,hsr-,bgtj-,tnmn-,js-,dlf=1,xmx-,psddr-,cpq=5,lhls-,sbpc=8,mtx=2,mpdgm-,fspp=7,qb-,mf-,mfc=7,ghg=8,rdr=4,hjxk-,dxv-,qhzq-,hlprv=3,zc=4,xsrqvg=6,jzg-,bfk=9,xldjdr=8,hctrqn-,kzkn=7,zxcq=1,hjxk=3,bgtj=5,sgs=9,pg=1,kvx=1,zxn-,nqq-,ttd-,cbt-,mk=8,fsq=4,zrvk-,ln-,pz-,ln=5,vx=4,nzjmq=9,qx-,nfxf=7,xms-,dkjr-,xs=6,vqd=6,xsrqvg-,td-,bnc=4,zpv=7,qjqhhf-,dz-,pxs=6,lx-,kh=2,vx=8,rpfx-,ccg=5,fcc-,hv-,jmztc-,hfjd=4,ttvm-,rrt=5,bnf-,hqsd-,bv-,zxn=4,vbv=8,hnkvf-,vcfv-,jl-,ftf-,xsrqvg-,nzzb=4,md=4,skb-,ftl-,vmlz-,jrj-,hf-,hqcs=8,cpk=1,bnf=6,hkhs=4,df-,jsb-,mblp=2,gsj-,lqm=2,fgdbf=7,gz=6,crhh=2,kdr-,sph-,jgc=7,jmz=9,zlrz=2,vxr-,pvqk=7,zv-,lm=6,bdzht-,zxn-,xtb=9,vp=3,ghv=2,vnv-,lp=9,vr=8,xb=5,hvghn-,pp-,lfst=2,glp-,rsn=2,mnl=4,zkst-,lqzh=9,jmztc=7,jmpln-,xldjdr-,zdr=4,qxjk=2,lmdx=9,jvn=8,pzllx-,mblp-,mvbf=1,qhzq-,lcrqx=4,sbs=9,gk-,gqlkm=8,lqzh=2,pkx-,ksl-,jlt-,kkmdd-,pf=2,gmvt-,jzg=7,jf-,mdv=4,pkx-,ndvqm-,dm=6,ms-,hknm=4,xlp-,vds=8,xldjdr=4,pxj=8,lqzh-,blm-,kqt=6,spc-,fh-,xml=4,gdn=8,lxm=7,vqrm=3,xhmg=6,bqch=7,hknm=8,hkmnk-,jl=1,hn=5,vxfgd=7,gf=5,qhx-,mtx=7,gk=9,qb=1,ntxx=6,dhkn=6,crhh-,lfcfh=8,mrs-,dnx=2,ldd=3,ttvm=8,qhzq=4,dtj-,jskgmj=7,qrcl-,gs-,bvd=9,ltkdp-,cjf-,rq-,rbkzjv-,px=5,mls-,sv-,rq-,xrpgk=8,vfprd=9,bv=3,mx-,qfz=2,lvjhdd=6,jvn-,vp=2,qhb-,bqch=6,fspp=5,kb=6,qmj-,pp=4,ls=8,lfh-,glp=1,gpkm=6,xm=1,xlp-,nlb=7,lxn-,hkp=1,xdz-,mdtzp=6,mmb=3,jnbfd=3,zm-,ln-,prmt=2,lb=4,vgf-,ftf-,qmj-,hjxk=9,xvm-,fp=8,bp-,vxr-,bh-,mhp-,pt=9,qck-,psddr-,jv-,jsb=7,prmt-,qxmqls-,dzg=2,bbt=3,ftfh-,vhnn=6,bnc-,btg=8,vzdt-,tk-,jnkh=3,ms-,lm=1,hlprv-,zsd-,mx=5,rbkzjv-,tsp-,sd=1,gm-,plj-,sbs=7,mgm-,rt-,qbz-,qn=4,nrk-,kz-,qm-,vr-,jnkh-,hqsd-,fh=8,fb-,mfdc=7,vds-,rkvv-,gf-,bbt=8,js=7,cpk-,hkk=7,mhp=8,rmn=6,mqxq-,lt=2,fgv-,bxg-,nrk=3,mls-,gt=2,kx=3,xcrjq-,hsr-,kqjzrb=6,dk=1,vh-,lz=4,rmn=6,mx=3,jszb-,kn-,kdr-,fp-,lmdx-,bjbjs=1,vzgr-,gzg-,tkk-,hk-,vqrm=2,jk-,xhs=5,vnv=8,rdr=9,bnf-,bth=4,kn-,zkst=5,bc-,lfh=9,lqm-,gz=9,ljfx-,mhp-,pgdg-,bjbjs=5,rqv-,qt-,gchj=8,kdr-,nsp-,rg-,pgdg=9,jllv-,jc=7,sb=8,jbf-,gqlkm-,dnx-,mb-,vzgr-,htxs-,zdr-,hkp=5,vcfv=7,fvc-,hkk=1,xb=5,ndjn=5,vmdxp=3,dq=1,xml-,vxr=4,jhp-,tn=8,xdb=9,fspp=9,njf-,rts-,lhls=2,cjhz-,ndjn-,ksl=1,zhp=2,rr=8,hst-,ztz-,zmft-,qm-,qt=5,fp-,gpkm=2,sd-,zv-,rtz=2,rf=9,jmpln-,mb=4,qxjk=4,fg=7,ghv=3,lcrqx=7,nxc-,rz-,qglc-,znqb=8,lfcfh=1,qhzq-,qt=7,zdz-,bth=1,vr-,lrcqxb=1,chp-,ncss-,sbs=1,ttpk-,mmx-,mn=1,ntxx-,qx=4,fd-,vfprd-,bgtj=6,tj=8,jllv-,hqcs-,btg-,pvqk-,ldd=7,ljfx=3,ftfh-,hh-,qmq=3,ffn=6,gk=7,sp=3,jfs=9,hqsd=2,mgm=9,dg=9,ttp-,dj=3,bvd=2,jmztc-,px=6,rg-,gc-,zhsns=1,lsk=4,lx=2,ldc-,mfdc-,hn=2,fvp-,ls=9,tk-,dxz=7,hpb=6,bnc-,ftf=9,jxxx-,df=9,lfcfh-,jgc=3,qglc-,rz=5,xm=4,lfst-,xml-,nzjmq-,hqsd=8,gpkm=9,psddr-,dm-,btg-,hx=5,pm=5,nn=2,pm-,hsr=8,hv=1,zc=8,cc=2,rvps=5,rsn-,kn-,rbkzjv-,lp=6,mpdgm-,vmch=9,jmpln-,ffk=6,xp=2,sb=9,ldc-,tzn-,jmpln-,gql-,fh=5,lsk-,mpdgm-,chtcdj=6,qhzq-,tlk=1,xn-,mq-,jsb-,fvc=2,hsr=5,kn-,qs-,gpx-,zc=9,kcxfg=1,hpxd-,qr-,gm-,cbt-,md=4,tv=1,qxmqls=7,xs=1,fthkvq-,dmmc=8,lcrqx-,rjtdf-,vhp=3,zrvk=8,lxm=3,vb=4,jszb=5,rjsb-,ttvm-,ms=2,jf=8,dnx=5,dkjr=2,xn=4,msj-,tcm-,mq-,bm-,rt-,hk-,ftf-,ds-,jl-,tmn=7,mj=8,dqdl=6,hfjd-,bv=9,xp-,vbjch-,gm=6,mdv=5,nrqb=1,hqcs-,lq-,grl=6,zc-,rsn-,ksl=5,nqq-,btnp=2,lp-,jbf=3,cc=6,bqch-,tcm-,dzg-,ktl-,ljl-,kx=3,qmnx=7,md=5,kvx=1,dj=8,htxs-,dg=6,qglr=1,jzg=5,lvrrk-,ltkdp-,mvbf-,hlprv=7,sx-,gzg=5,jvn=7,vhp-,bh=2,dmmc=2,zpdbq=4,jvh-,vhp-,lxn=5,nzzb-,qk=3,xldjdr-,rmqh=4,vmlz-,jc-,qglr=2,pk=7,pkhcz=7,df=8,nn-,gpkm-,zsd=7,jd-,hst-,xdb=1,fspp-,bbf=5,tcm=5,jc-,nv-,vmlz-,slg-,vct-,snzvpk-,rtz=9,jf-,vfprd=5,tn=8,ldc=2,bh-,zdxdbr=5,pt=9,gs-,tmcxnf-,gpp-,vct=4,vjbx=6,vgv=5,pb=3,ntxx-,xtb=7,tgvkt-,cthbt-,jbf-,ltndmf=8,lx=7,vmdxp=1,bc=9,pj=9,rpfx=1,sp-,gn=6,fz=7,vbhvv-,nv=7,dsxs=4,ndjn=3,lxn=9,kz=1,srkt=8,hqsd=2,jszb=3,scdp-,ltkdp=1,qmj=3,jllv-,vmch=9,slp-,xxb=5,px-,gk-,cjf-,hjxk=7,hlxqc=7,cpk=8,mtvrb=1,dsxs=9,mdtzp=4,zxcq-,tcm=6,hpxd=6,rg-,kg=2,rz-,pf-,msj-,hb-,sgs-,tsp=5,mhxczx-,zdr-,dq-,tjlg=6,dzg-,qk-,prs=5,lx-,bcb-,jc=6,qm=4,vhnn=4,cmx-,zm-,dkjr-,gql=6,gkf=2,gs=9,xhmg=3,rrt-,hlprv-,vbv-,vmlz-,lfcfh-,gm=9,qs-,ttpk-,blm=8,js=5,hv=3,psddr=5,vmdxp=7,vbjch=8,bq=6,bfk-,vmdxp-,ljl-,xrpgk-,cpk-,xl=1,ntxx-,fp=8,mvx=3,nrk=2,mgm-,pmb=6,cpq-,vf-,tc=9,jzg=5,vgv-,qz=7,rdr-,tnt=8,fg-,tsp-,vp=8,vmch=8,rg-,kmlszs-,mqxq=9,pvqk=6,jk=6,vbhvv=4,rr=9,vqrm=9,qt=4,nt=8,tlk=9,pkc=2,cc=9,fl-,mrsl-,xs=2,htxs=3,skb-,vmch=7,mgm-,bp-,bjbjs=8,jszb-,gqlkm-,gchj=9,zhb=6,qhx-,vbv=9,kqt=7,vzdt=9,ltndmf=8,zmft-,hlt=9,dm-,zhb=3,ghdft-,zv=5,qz-,mk=5,ndjn=9,cm=5,cpq-,vcfv=7,zdr-,vmlz-,ccg=6,pgdg-,ftl-,bth=8,sv=4,mrs-,xl-,sd-,zlrz-,nzjmq-,dm-,dk-,cr-,xmx-,zbrslm=9,jbf-,vmdxp-,zhp=1,lt=5,gs-,qxjk=7,scdp-,sv-,hst=6,vk-,lvrrk=8,ttd=9,jskgmj=6,jvn=7,zxcq=2,zq=9,kkmdd-,cfl=1,vqrm=3,vds-,mx=6,rx=9,lkxmjz-,mk=4,jxxx-,sph-,hjs-,rq=3,hpb-,hkhs=7,nsp=5,mj=5,hlxqc-,zk-,blm=1,gk-,jsb=5,pkc-,vcfv=3,plj-,rdr-,qs-,bgtj-,mdtzp-,gmvt=4,xmx=3,qjqhhf-,ls-,dz=5,hqcs-,jq=9,cjf-,hk-,jllv=8,tnmn-,cjhz=9,fd-,pkhcz-,pk=7,vnv=1,cmfkv=7,qk-,prmt=5,kn=4,rf-,ttd=3,hst=5,zmft-,sqn=2,td-,ccmftg=6,fbklmr-,prmt-,fz=8,tj-,pgdg-,hfjd-,tsp-,fl=4,ndjn-,ph=7,hctrqn-,slp-,tn-,hkmnk-,tgvkt-,gql=4,rkbh-,tj-,mtvrb-,hl=9,hsr=7,lmdx=3,chtcdj-,ndvqm-,scrt-,hnkvf-,scdp-,mb=5,gdn=8,gdn-,vq=9,jdvn-,lqm-,rhpxs-,vrfv-,vcrpbh-,zlrz=4,gn-,nnlnc=5,rkvv-,pk-,ssh-,dzg=8,bbt-,vhbf-,lz-,psddr=9,bgtj-,dk=6,vzdt-,pm=3,vx-,rtz=6,hkmnk-,xrpgk-,mmb=6,cc=5,ktd-,kqt-,cqpfs=9,zm-,vbjch-,cp-,xfmqn-,vmlz-,bjbjs-,ksl=9,gpp-,nv-,cqpfs=7,kdr=8,pj-,vzdt=1,sph-,gpp-,vhp-,td-,ljl=4,ntxx=5,kqt-,jk=8,vp=4,kzkn-,btg=2,nzzb=4,mtvrb-,mpl=4,nzzb-,vzgr-,mj=1,rsn=4,jq-,cpq-,mpl-,clj=4,ksd=7,fgv=3,hcj=8,fbklmr-,btg=8,spc-,dz-,hjs=2,bth-,gk-,kdr-,ltndmf=8,hh=7,fgv-,mj-,ldc=6,nrk-,lnprhq-,pp=8,vbv-,pk=7,vb-,qhx-,hkp=7,vqd-,lcrqx=5,ftf-,zhsns-,jlt=2,mblp=4,cqpfs-,hqsd-,mf=4,lfcfh=6,zq=1,vzdt-,ttd=5,pj=2,zmft-,hpxd-,nxc=5,zjdzq=8,vh-,dzg=2,gt=2,qt=3,pf-,mrs-,zhp=3,hjxk=7,bbt=1,px-,hb=2,tn=7,nlb=4,gzg-,btg=8,gpkm-,fvc=3,gk=4,nxc-,kcxfg=7,jq=7,pt=6,rtl=9,sd-,vx=5,tgvkt=2,vqd-,sp=7,md-,rhpxs=3,ktd-,dg-,ds=7,hh-,jmpln-,cjhz-,kdr-,qxjk-,rkvv-,lnprhq=7,pkhcz=7,ldd=2,ldd=2,cx-,cp-,vbjch=6,bxg=3,rtz=1,tkf-,bh=3,xvm-,jdvn=7,sqn=4,plj-,dlf-,lsk=2,pmb=2,qfz=6,kz-,rx-,dq=8,glp=8,ndjn-,ftfh-,mj=3,mj=6,rdr=8,xdb=5,mx-,zq-,nrk-,rjtdf-,rmn-,rts=7,vqrm=3,rf-,fd-,spc=7,fd=2,rrt=5,pp=3,zhb-,vrfv=2,mrs=1,nrk-,dz-,cxkt=2,kclt=9,dg-,pz-,rmqh-,lvjhdd-,qglr-,hkk-,mnl-,jszb-,nlb-,xfmqn=8,vz-,mb-,jnkh=3,fgdbf=7,nsp-,vnv=8,gzt=1,rjsb=4,pkx-,nqq=7,zjdzq=3,txc-,ftf-,btnp=6,xs=5,btg-,ftf=9,bj-,nv-,cmfkv-,tkf-,qcm=4,mgm=9,vmch=2,tnt=1,sv=5,vgf-,qbz-,bc=6,fvc=3,kmlszs=5,xfmqn=5,hlxqc-,mtx=7,tjlg-,xsrqvg=5,zk-,vtb-,kvp-,crhh=4,qb-,jd-,grh=4,mfdc=8,kvp-,mfdc=2,zkst=1,fspp-,mhp=5,nzjmq=2,jvn=5,mtx=2,zbrslm-,ghv-,nqq=2,dm-,zv=4,vmch-,pk-,ph-,lvrrk-,tnt=8,dxxp-,dsxs=1,hkhs-,pvqk-,zhb=8,ln-,mf-"
The crux of the puzzle

Follow the given hash algorithm on for each item, then find the sum.

Toggle the code
# vector of instructions, separated at ","
split_input <- strsplit(input, ",") |> unlist() 

# function to find hash value of single instruction
hash <- function(start) {
  chars <- strsplit(start, "") |> unlist()
  
  # current value
  cv <- 0
  
  for (char in chars) {
    cv <- ((cv + utf8ToInt(char)) * 17) %% 256
  }
  cv
}

# apply across all instructions and summarise
split_input |> 
  sapply(hash) |> 
  sum()
[1] 503154

I happened to have come across the base R utf8ToInt() function last month, which handily converts a character into its ASCII code. Otherwise, this is all pretty obvious, using a now-familiar strategy for Advent of Code puzzles: write a function that does what we want for one element of a list/vector, then apply it across the whole input and summarise as required.

Part 2

The crux of the puzzle

Follow instructions to move lens around a sequence of boxes.

For this part, we mix a base R approach with the tidyverse. We use a list for the boxes and a for loop to iterate over the steps, and a tibble along with tidyverse functions to keep track of what’s in each box.

Toggle the code
library(tidyverse)

# separate a step, eg. "rn=1" or "cn-", into vector of length 2
# if = label and focal length, e.g. "rn", "1"
# if - label and empty string, e.g. "cm", ""
sep_label_value <- function(step) {
  step |> 
    str_split("=|-") |> 
    unlist() 
} 

# initiate list of boxes with empty tibbles
# value is <chr> because `step` in loop below is a <chr> vector
boxes <- vector("list", 256)
for (i in seq_along(boxes)) {
  boxes[[i]] <- tibble(label = character(), value = character())
}

# loop over instructions, moving lenses as required
for (i in seq_along(split_input)) {
  # separate into label and value
  step <- sep_label_value(split_input[i])
  names(step) <- c("label", "value") # need this for binding rows
  lens_label <- step[1]
  # avoid off-by-one errors when indexing into list!
  box_index <- hash(lens_label) + 1 
  lens_value <- step[2]
  box <- boxes[[box_index]]
  
  # deal with "-" instructions
  if (lens_value == "") {
    # remove lens with given label
    boxes[[box_index]] <- box |> 
      filter(label != lens_label) 
  } else {
    # deal with "=" instructions
    if (lens_label %in% box$label) {
      # if lens with same label, replace with new value
      boxes[[box_index]]  <- box |> 
        mutate(value = if_else(label == lens_label, lens_value, value)) 
    } else {
      # otherwise add to box
      boxes[[box_index]]  <- bind_rows(box, step) 
    }
  }
}

# loop over boxes to add values needed for final calculation
for (i in seq_along(boxes)) {
  boxes[[i]] <- boxes[[i]] |> 
    mutate(box_index = i) |> 
    mutate(slot = row_number())
}

# combine boxes into one tibble, 
# calculate focusing power for each lens and get total
bind_rows(boxes) |> 
  mutate(power = as.numeric(value) * box_index * slot) |> 
  summarise(total_power = sum(power)) |> 
  pull(total_power)
[1] 251353

None of this code was difficult, but it still took me a while to get my head round the puzzle instructions and make sure I was implementing them correctly.

After I figured out and wrote up my solution, I looked at some others on the R4DS Slack, and realised that using tibbles and a base R/tidyverse mash-up as unnecessary. A list for boxes, each with a named vector for the box contents, works well, and keeps the solution fully base R.

Session info

Toggle
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.3.2 (2023-10-31)
 os       macOS Sonoma 14.1
 system   aarch64, darwin20
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Europe/London
 date     2023-12-15
 pandoc   3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
 quarto   1.4.526 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package     * version    date (UTC) lib source
 aochelpers  * 0.1.0.9000 2023-12-06 [1] local
 dplyr       * 1.1.4      2023-11-17 [1] CRAN (R 4.3.1)
 forcats     * 1.0.0      2023-01-29 [1] CRAN (R 4.3.0)
 ggplot2     * 3.4.4      2023-10-12 [1] CRAN (R 4.3.1)
 lubridate   * 1.9.3      2023-09-27 [1] CRAN (R 4.3.1)
 purrr       * 1.0.2      2023-08-10 [1] CRAN (R 4.3.0)
 readr       * 2.1.4      2023-02-10 [1] CRAN (R 4.3.0)
 sessioninfo * 1.2.2      2021-12-06 [1] CRAN (R 4.3.0)
 stringr     * 1.5.1      2023-11-14 [1] CRAN (R 4.3.1)
 tibble      * 3.2.1      2023-03-20 [1] CRAN (R 4.3.0)
 tidyr       * 1.3.0      2023-01-24 [1] CRAN (R 4.3.0)
 tidyverse   * 2.0.0      2023-02-22 [1] CRAN (R 4.3.0)

 [1] /Users/ellakaye/Library/R/arm64/4.3/library
 [2] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library

──────────────────────────────────────────────────────────────────────────────