Day 3: Rucksack Reorganization

Reference

Part One

library(tidyverse)

input <- read_lines(file = "inputs/2022/03.txt")

match_one <- function(first, second) {
    str_extract(string  = first,
                pattern = str_flatten(str_split_1(second, ""),
                                      collapse = "|"))
}

priority <- 1:52
names(priority) <- c(letters, LETTERS)

rucksacks <- tibble(original = input,
                    length   = str_length(original),
                    first    = str_sub(original, 1, length/2),
                    second   = str_sub(original, length/2 + 1, length),
                    match    = map2_chr(first, second, match_one),
                    priority = priority[match])

rucksacks |> 
    summarise(total_priority = sum(priority)) |> 
    pull(total_priority) |> 
    cat()
## 7746
rucksacks |> print(n = nrow(rucksacks))
## # A tibble: 300 × 6
##     original                                  length first second match priority
##     <chr>                                      <int> <chr> <chr>  <chr>    <int>
##   1 RCMRQjLLWGTjnlnZwwnZJRZH                      24 RCMR… nlnZw… R           44
##   2 qnvfhpSbvSppNddNdSqbbmmdPrwttJVrVPDVrJtH…     48 qnvf… Prwtt… h            8
##   3 BFpFzSSqSFFSvQsnWgCMjTLzng                    26 BFpF… QsnWg… z           26
##   4 DbWVcVRRdlLffvtqjTWNgQ                        22 DbWV… ffvtq… W           49
##   5 mJJMpsmrMrJSHJpsHrFHvBvgHvqfNvzffgTvfj        38 mJJM… HvBvg… H           34
##   6 mMhPjmjmFPJhMSGGcDRlwRdcLGPc                  28 mMhP… GGcDR… P           42
##   7 qFcbmWFJqqWpRJcQWpqsQQQwSPCPrHRHCPdNZtSr…     46 qFcb… wSPCP… R           44
##   8 jGMjGLhhhgTvghgtGVjnNCrPVwZSZffSNSwHZZdH      40 jGMj… NCrPV… V           48
##   9 DvzDlvvhnjlMlglglGGhDLpqqcJWWtsmszpWbBBB…     44 DvzD… pqqcJ… z           26
##  10 SPLPHQbJSbPsvTLmfDvVDctvWhcDlD                30 SPLP… mfDvV… v           22
##  11 jdRRzzGgJqwrpMRMgdjlcVcWqfWWlfDlmmlWhB        38 jdRR… lcVcW… q           17
##  12 rwgRGdpGprNNLQLsbZJPsn                        22 rwgR… NLQLs… N           40
##  13 GZhTVLztHrSzrRBz                              16 GZhT… HrSzr… z           26
##  14 MJWjMvsfSCLSnrJn                              16 MJWj… SCLSn… J           36
##  15 MjglcgWMdccvZGFtTDchLLLh                      24 Mjgl… ZGFtT… c            3
##  16 rgDHBgBjRgRTgwzwthBnQwmBtB                    26 rgDH… wzwth… B           28
##  17 MsMpSfMsTGTFFLdFFFMFsnNmthNnzhthtwmWnznz      40 MsMp… snNmt… s           19
##  18 pZMpJdvJMGRHVJJTVHjb                          20 pZMp… RHVJJ… J           36
##  19 TQVqZVBcBBdBfbpN                              16 TQVq… BBdBf… B           28
##  20 zvzrtCshrntCHslPMMMFpZHbNSpb                  28 zvzr… lPMMM… H           34
##  21 hLWhGLttsvLvrrWvhzVmQgwJZTRcggTjGcgT          36 hLWh… VmQgw… G           33
##  22 SqRGLHtSbtNTbhjFTjDDpF                        22 SqRG… TbhjF… b            2
##  23 WwgJgmdmMdwPDVQQBBhSBFwV                      24 WwgJ… DVQQB… w           23
##  24 JMPlmlSldWZmRqtLsRGRtvls                      24 JMPl… RqtLs… l           12
##  25 mZvmvPNmlNJPJzzmgNvNgdqqdBSpfHBqSsHqHfwp…     44 mZvm… qqdBS… d            4
##  26 nhDQDrwLrVVnqfGnsBGBGGsH                      24 nhDQ… qfGns… n           14
##  27 VjCDMhbDjLjtFhtLhLhQjNZcZPwWWcczmvglgJJN      40 VjCD… jNZcZ… j           10
##  28 wwqnwZGGZqqMpMprpZqwGlLDtNDffdBdNVBmNGBN      40 wwqn… GlLDt… G           33
##  29 TSTchTFbRLfLmVhNDm                            18 TSTc… LfLmV… h            8
##  30 SCLRvJQvRFTSRjqMqPZrZnrzZzjp                  28 SCLR… qMqPZ… j           10
##  31 cJfqGjgGJcsgsPnghgBm                          20 cJfq… sgsPn… g            7
##  32 FHHbQQHLWLbPQThqQQRnZs                        22 FHHb… PQThq… Q           43
##  33 lLLMSCvrlFMwlSlFcNwqDVVpJcfjzVDf              32 lLLM… cNwqD… w           23
##  34 cRdRDhsDFzPztwJdGP                            18 cRdR… zPztw… d            4
##  35 CVqpCqCgSNfCSQBpjtBwtlBBHLlmGjGG              32 CVqp… jtBwt… B           28
##  36 qfQfCVQfgQnVNpQCMqfcrFrwWDhrDnsvcRDsbc        38 qfQf… crFrw… n           14
##  37 nFWWzqWZQSqnJzNJzslJVsdV                      24 nFWW… JzNJz… z           26
##  38 vBBvsLvbBmBmRlGTNJJvRRTD                      24 vBBv… RlGTN… v           22
##  39 tBbpmmPwCmHpMHHMrPCCcSnZSgcFcZgWFscSfgth      40 tBbp… cSnZS… t           20
##  40 LLssTJrqrpvrvvpJvdjggMlgzVgVggPlFPqz          36 LLss… jggMl… q           17
##  41 HwZwCZfHNtbMzjgVnFPC                          20 HwZw… bMzjg… C           29
##  42 RSttfRwZDtBcZwQMQdrQsdTBQQmW                  28 RStt… QMQdr… B           28
##  43 lJnNhMJqljlNhSrdWlGGGQHwwH                    26 lJnN… SrdWl… l           12
##  44 vbTpbCsTFCTmbSmcRfVCfRpwcPdwWQQrdwHwBHrP…     46 vbTp… wcPdw… c            3
##  45 sVTmDfmCTVmJjgSzzntDtt                        22 sVTm… JjgSz… D           30
##  46 DQtMjZHZHvMbwwTSpqLtpJ                        22 DQtM… bwwTS… t           20
##  47 FzVFlsNdVczWPzWcslVfSLqLsqJpSwwsJswLrf        38 FzVF… fSLqL… s           19
##  48 dNFFWcmzWFGLWcdcFgvZvvRHQvjMHDMBGD            34 dNFF… gvZvv… G           33
##  49 MVPTmPvbMgrTmmmmMRMvPvBwFGhhDCdFFwLCLdJh…     46 MVPT… wFGhh… R           44
##  50 fqqWfpZWzWsDwhwdhwqGLD                        22 fqqW… Dwhwd… q           17
##  51 ZWSSftStnnplcQLSbVMBvTbrMlbrBvvl              32 ZWSS… bVMBv… l           12
##  52 FSsHDmtFLbbFbLGg                              16 FSsH… LbbFb… F           32
##  53 vrvzTzWzzzvppzSzTMnfTggjVgbgjbLjgPPnbGbV…     42 vrvz… ggjVg… n           14
##  54 pdMwrBpfwfSMTTWdMTpBDCBtmsmltslcBDCshDHs      40 pdMw… DCBtm… B           28
##  55 RgbmfGtmRVgLLSVSnSrWWSHhnh                    26 Rgbm… SVSnS… V           48
##  56 ccTvlvNppsFnbFnhnWnPHJ                        22 ccTv… nbFnh… F           32
##  57 pqNjDBjNNjvpZfmtjbCLbCmb                      24 pqNj… Zfmtj… j           10
##  58 qsSVpSVfWqgNrVtWptpmSfqbPQljbHPHlDnljRSl…     46 qsSV… bPQlj… S           45
##  59 dcGBrMFMdLTGGdlwDwMRHwwMbjHP                  28 dcGB… lwDwM… M           39
##  60 CFBvhFhTLFCGvFchChBdBTJtsNpWqfVgtszprmVW…     46 CFBv… tsNpW… v           22
##  61 sjsTgNSNqSjgMmVPmmmrpH                        22 sjsT… gMmVP… g            7
##  62 RftCcWddRCZfPtCfcQZdcZDcrBllBFpVHprHWlHH…     48 RftC… rBllB… W           49
##  63 thPZRtLcDRdDCTTsqbnwjhvNjq                    26 thPZ… TTsqb… h            8
##  64 TQPtgfgdPcdSQhjwHhHBLS                        22 TQPt… SQhjw… Q           43
##  65 RrqCqVVbJmVRJmsrzmJpWljlSHLSBwSSRWllWv        38 RrqC… pWljl… R           44
##  66 CVrDNbHrJHVMCbrDJsdFdFcPFZngMfFdTPfP          36 CVrD… dFdFc… M           39
##  67 NNlZgndqmGVGGVZNWQmWmbhbbhpbbhtCbhtgCpCt…     42 NNlZ… bhbbh… g            7
##  68 THfLPTzwJTJrvHRwwsbFbhfbMCpphVtBbB            34 THfL… sbFbh… f            6
##  69 RjrvzHLzPDvLzPHrTJVrwPndZQNlDZGndZWDdNNc…     44 Rjrv… ndZQN… D           30
##  70 tjDsjDGtTjVVbQVCggvrbg                        22 tjDs… VbQVC… V           48
##  71 qrWWRBllRFrdlSMCdbSJCP                        22 qrWW… dlSMC… l           12
##  72 cZcncRnhphpZWRNtrmsrGpHffmwH                  28 cZcn… Ntrms… p           16
##  73 qpRjdcqTcMbbMRTwtnplnwnhPzhBhw                30 qpRj… wtnpl… p           16
##  74 FSFLvNrsPNrsGSLsrFSGfnwBQwZnZwhQQLwwQhnn      40 FSFL… fnwBQ… L           38
##  75 sWNVmVmCFNWGsCrrjRTmMjRjPRqgJqJg              32 sWNV… jRTmM… m           13
##  76 sVCnzVpmFpVSnNFCmnmzwRFDWDdMllDccMdwDMjW…     46 sVCn… DWDdM… w           23
##  77 BJbPJGGGHPZqZQbpMlWWMWlBljjjgDjh              32 BJbP… MlWWM… B           28
##  78 tGQPpZtfTPpqrHsVLSzmRNLtSFsN                  28 tGQP… sVLSz… t           20
##  79 WCDlBWWlvMFWlQWpmSZdZnNmGfJZFZ                30 WCDl… pmSZd… F           32
##  80 LqjTjgtjPcHTTJgLThztcLTLnHnmdSpZdpdffnmZ…     48 LqjT… nHnmd… H           34
##  81 PtzqzjtqJgggzhqqccqhrQMsMvMwrCwMlBvMwvvs…     42 Ptzq… QMsMv… r           18
##  82 NMsJfsHTMVbjnLnVsC                            18 NMsJ… VbjnL… s           19
##  83 htWllhmZcWDWBwhZPcmpVRjnVMRLCCjLFpCwRb        38 htWl… pVRjn… w           23
##  84 PmZMrBtcPmZWhzDWBtMmJQdddHfQGNSqHqQGGTgr      40 PmZM… JQddd… r           18
##  85 NmfnnsPlHnGqnlsNNmRPltRLvrhvrSGJSJjvFFFS…     46 Nmfn… Lvrhv… G           33
##  86 PzQZccVPVwgPjrJSJjhFFpQr                      24 PzQZ… jrJSJ… Q           43
##  87 TdwBgdTVwzdwzlmNfRqPmqqTql                    26 TdwB… lmNfR… T           46
##  88 BVLLBPmPmWBlMlLJnJlBlFQVgdRDdRZRZHpZjQzd…     48 BVLL… gdRDd… Q           43
##  89 trGTsfbTTgHZptzSZW                            18 trGT… gHZpt… t           20
##  90 fsfTNcCqqNhhVhVFVhVBWLLB                      24 fsfT… VhVFV… h            8
##  91 LJwgJNfbCvwCJCwBCCNhhHmGHWWSMWmWmbMmTmmG…     42 LJwg… HmGHW… b            2
##  92 lzRnnltsstZzzRTfHtHWHGWftfHW                  28 lzRn… TfHtH… t           20
##  93 ZFFzVFqzqlFcZscZpRZsNphjhjvjfgJhQgQvwvhC      40 ZFFz… Nphjh… p           16
##  94 HHzcFNcHFjhjZjlrghLL                          20 HHzc… hjZjl… j           10
##  95 pMZJptpZWCmpttRMCWnnDnBGGDLhlLQrhl            34 pMZJ… WnnDn… W           49
##  96 MJsMCTZTTpTJRmMCJzfNsNcfNHqzvvfcww            34 MJsM… zfNsN… s           19
##  97 ZDtllsDlVsrQBqQqRfWl                          20 ZDtl… rQBqQ… l           12
##  98 wvJgpPhhscgvpJFNrRjRrWRjqrRjdjRv              32 wvJg… rRjRr… v           22
##  99 zpsNzCsNCJCCPPHSLzznMnDSLGLM                  28 zpsN… HSLzz… z           26
## 100 rfrJjFWrwjpnJjjjfrjJJnFVTgTggRWRRRPPLQgC…     46 rfrJ… VTgTg… W           49
## 101 sSNbSvqmsSZDZZBtNTTPGgMLMRVcgPCMRb            34 sSNb… TTPGg… b            2
## 102 zZDZzNNSmrfpjFCjzj                            18 zZDZ… rfpjF… z           26
## 103 dbbNJPBbbrFqNqttqrGbqDcmDQRmFmwcwSnQSDcp…     42 dbbN… DcmDQ… F           32
## 104 ZMMTsHjzLlLcnSVwpRRQ                          20 ZMMT… LcnSV… L           38
## 105 hZTWjWvTZzTTWhszfwbJhrgJqtBbJGdqNPqt          36 hZTW… bJhrg… h            8
## 106 rrqgHrgtcHJRRjWZlRvnnWBn                      24 rrqg… RjWZl… R           44
## 107 QbhVmdFppwbdjnMvlnBwMWZP                      24 QbhV… jnMvl… w           23
## 108 TpFDdVTFTDfhHfJcSJSzGZGf                      24 TpFD… HfJcS… f            6
## 109 sqNTNZHsHjjFBBwJMMNMcCJD                      24 sqNT… BBwJM… N           40
## 110 WGLQPjfWfQWPWmtLSRRRLwBJDbtCCJJCbbwCMBbM…     42 WGLQ… wBJDb… t           20
## 111 RnPdLQfPLRdndGGRvfjlgdrTTgTsrgTrZFzF          36 RnPd… jlgdr… d            4
## 112 BfHbjVVqSBFfMSlCLCDrGSQssvlr                  28 BfHb… lCLCD… S           45
## 113 tTpnnzpcPnwzhcnJTDtTPRprGlRGGGCWlQsWvrlv…     46 tTpn… rGlRG… R           44
## 114 DPwhghDTpPVHqqdgZbZq                          20 DPwh… VHqqd… g            7
## 115 ZzPqfGPtRtqfqPbqfGgGZbrhMjmjBCpHpHNCmHtH…     46 ZzPq… hMjmj… t           20
## 116 QJwllvFWwDvnwCBBzjwwpC                        22 QJwl… nwCBB… w           23
## 117 ccJLVQzWFJvVJlVbgrZZLZLRRPSgdr                30 ccJL… bgrZZ… L           38
## 118 rBGbLbnTfnZrQbTnHldqsMmHsqlsWfMd              32 rBGb… Hldqs… f            6
## 119 JcJjCCPzPtjCNHdlGGMlll                        22 JcJj… CNHdl… C           29
## 120 jjgpRRvcGbwpThVppT                            18 jjgp… bwpTh… p           16
## 121 ttDfjtqfjtpTWWwfTbtlWccNGRSZNGPGhZGhGhcw…     42 ttDf… ccNGR… w           23
## 122 LbCrHdvzLSSHmSRNmc                            18 LbCr… SSHmS… H           34
## 123 JCsBvrvBLzFQbbvlVVnpQpDtWlDqfq                30 JCsB… lVVnp… Q           43
## 124 vvdvJBfvdTvRBflBJPNmmffmgPCMwDgsss            34 vvdv… PNmmf… f            6
## 125 rFjqLnMcnqrrtMLtjNgCPCsNzzgsPCGFNs            34 rFjq… NgCPC… F           32
## 126 VqLqnLVZqjMZqWnrVtWlZJJSvHvBdRSvBdRvvJ        38 VqLq… lZJJS… Z           52
## 127 zZBDzgQQZLlcglzjrCrCMFjGZbMsHm                30 zZBD… jrCrC… Z           52
## 128 PnnJVRfttTtwVnnVFGHVsjCFCjrsMM                30 PnnJ… VFGHV… V           48
## 129 wPRpRpRnNTpPNlBdQQDdgDNMhN                    26 wPRp… lBdQQ… N           40
## 130 bNQpFpnwgtDHpbnhWtffmfmhvhhfsZ                30 bNQp… hWtff… t           20
## 131 LcdLdwCLPPSVSqqwZGhWdJhGJZhlGlsm              32 LcdL… ZGhWd… d            4
## 132 TBwSLPSPVRSVqSVqVrcnpMDDngMgnQpbRQFDNH        38 TBwS… npMDD… R           44
## 133 vPSvBJZSSdJgpJJZBDGDGrdqGdllGrGDrh            34 vPSv… DGDGr… d            4
## 134 HMtsltFlRVVFtlscRjjMcsWwWChWmrnwDWGwChmj…     44 HMts… WwWCh… j           10
## 135 MQHNlTVHNVHpbbpbTvvBvf                        22 MQHN… pbbpb… T           46
## 136 VsbPMwhbWhzdpzNNggnBcTBWNngQ                  28 VsbP… NNggn… W           49
## 137 RmtZZFZqSjqVHmGQNcBHNLGLGHQH                  28 RmtZ… GQNcB… H           34
## 138 JjRClqCjZlDZmqSqljFZZqRCvsvPfshhMdwsDwbV…     48 JjRC… vsvPf… D           30
## 139 bfGtRgfDtVmsMzTbmz                            18 bfGt… VmsMz… b            2
## 140 LjGZwQLLdjFdHLNMhmzBzMNHNmzN                  28 LjGZ… NMhmz… H           34
## 141 wjQLCFvnnQGdZLGWSjdqWDfPlrRpqRDDRqrpPr        38 wjQL… qWDfP… W           49
## 142 pqnBZqjCNCqQqmllpHGMGdTfML                    26 pqnB… mllpH… p           16
## 143 PsFgrRvSPsWTwWWQwGHLHW                        22 PsFg… TwWWQ… W           49
## 144 SrvgsFbrrPJJFsrFPtFSCChBDQjqCqtNhDqhCqNC      40 Srvg… CChBD… t           20
## 145 RJZRWZWMWZPZffRCPWMdRdfQQQjJzHQsssjrSQFV…     46 RJZR… QQQjJ… J           36
## 146 NgpnDgvGTNTVFHFFjVFF                          20 Ngpn… TVFHF… T           46
## 147 jntvgljpGvlnbLtLbBvnLRPlCCwwCfRqMCCqqqdd…     42 jntv… RPlCC… l           12
## 148 PFBMVDSVPHMTThtMtSBMMVNbQprHbNRgNRRgLnvp…     44 PFBM… NbQpr… H           34
## 149 scGcrcwlswdGlcqvbQgnnpQnqLjnpp                30 scGc… vbQgn… q           17
## 150 ffwswWzcmlcWWsmcZhrDFrZMFZBMFzhM              32 ffws… ZhrDF… z           26
## 151 LMdZGqdRSSZmCZMRfQjnggvlvggRcznz              32 LMdZ… fQjng… R           44
## 152 tjjFhBrtpthpslcvvlcQzFnFvQ                    26 tjjF… lcvvl… F           32
## 153 jrhbjtpJtbZqCLdWLq                            18 jrhb… bZqCL… b            2
## 154 HBGBfBttZzbGbljPdpFddFqRmqRzRN                30 HBGB… PdpFd… z           26
## 155 JDWghDDSDqmmDDpc                              16 JDWg… DqmmD… D           30
## 156 CLvgMvChCvLphCTSShhMhQsBbfTfsGsrBfjfrljr…     44 CLvg… sBbfT… T           46
## 157 RgHgDqDzqQqgcdHqcZGTNlGffGBDGZBTGZ            34 RgHg… ZGTNl… D           30
## 158 LFLPWsmvrbwhwwswrTlTTCBNGFfGlNJZNS            34 LFLP… TlTTC… F           32
## 159 vhrLnvhNmWvMsrvwqMdRcptQtztcjptz              32 vhrL… qMdRc… M           39
## 160 sLMLsThhjgqLlsnsLgTLtMFcRbcPcJSwJbbSbtSW…     44 sLML… FcRbc… t           20
## 161 fvrjjDjvNprdPwwJCCSrWPFP                      24 fvrj… PwwJC… r           18
## 162 vfZdGzVzfvGGVGpBjnnMglTsgZlqsMlM              32 vfZd… jnnMg… Z           52
## 163 TCVMfCfBnHHfLLPFWb                            18 TCVM… HHfLL… f            6
## 164 GgQlGJzNzbzHcHHLlcPLHL                        22 GgQl… HcHHL… l           12
## 165 tQbNQGgRZZCVtVMZ                              16 tQbN… ZZCVt… t           20
## 166 QFFMzwjwngsvsBjGGJWbBbBWbB                    26 QFFM… BjGGJ… j           10
## 167 QdmVDmVDWRPWVPVV                              16 QdmV… WRPWV… V           48
## 168 QHtHSdDpLQCCSHrtqrdrttDfLgvnFvFghNszzwgn…     46 QHtH… fLgvn… L           38
## 169 RzzTNpSRBzSBVpSRlHNSHBSSGPcLNGtjhPPcbcGh…     48 RzzT… GPcLN… N           40
## 170 CCmmCwwdfFJqDmdwsddhsmvdcMbLfcftttbPnjMP…     48 CCmm… cMbLf… f            6
## 171 mdZQmvssFdqsFZvsZQmvDvmWzgQBWTRzTzHlppWR…     46 mdZQ… WzgQB… Q           43
## 172 VWmnfQWzWWnHWMfmmMVNMfWjtBtBNSNSrlStlpjJ…     46 VWmn… jtBtB… N           40
## 173 cZZvbwsZsbbZvvscCRdFTTTQrBStdBJgSdhjgBjB…     46 cZZv… QrBSt… d            4
## 174 wCFTCbZbFwwCTvFTwsPGccMzMDWVWfzLGmqHnnDH…     44 wCFT… MzMDW… G           33
## 175 sNQQHbbhdlpdrQllqpsqSpGjZDZGgDnVcnjjnnDZ      40 sNQQ… SpGjZ… p           16
## 176 WWRLGFvJBJPvzzWjnTncDVZTTPgDff                30 WWRL… jnTnc… P           42
## 177 FLRLGRFRJLBWJmJzMRLCvldrMrbbltdhQQlNqtMb…     42 FLRL… ldrMr… M           39
## 178 HZllwlZSlSZwhvmQjcZhTqcT                      24 HZll… hvmQj… Z           52
## 179 sPzzdgpszpzsBdvvMccvcqPThjhM                  28 sPzz… vvMcc… P           42
## 180 JDdsDspLzsdzBgVdBGBzCLlwbbwWSnlnnWffHwJc…     44 JDds… lwbbw… J           36
## 181 nzCTCnpqJqfCnvvjZjWjPcZrmcmZfW                30 nzCT… jZjWj… f            6
## 182 GNdwgVjwRdRglMrPWLPWZWcNWW                    26 GNdw… MrPWL… N           40
## 183 dVblgtRwQgSGVBldbQBbBRJnQJTsJHTqnzzJFpjv…     44 dVbl… JnQJT… Q           43
## 184 dqpQQrdqQpLfqcGSdggQdgRMmwHBMMBVNRNDFFBD…     44 dqpQ… RMmwH… g            7
## 185 vTzsnZCnlCnshbPlvZJbBzVmmVRDNwtHFBwMDVBR      40 vTzs… BzVmm… z           26
## 186 lJCshjTJbVqfVdjjjG                            18 lJCs… VqfVd… j           10
## 187 WlLCJlHLcZcJWcWZJnLHnPqlFtSthTnFNThVtNhV…     48 WlLC… FtSth… n           14
## 188 QfbgRsspfDRsgfjqqRRpDbSNSTFzBbTbhttVBhVN…     44 Qfbg… SNSTF… b            2
## 189 fwgfRdpdfQDqgPHHZJZCcdGddH                    26 fwgf… PHHZJ… d            4
## 190 sbrbmVmfddzJntZZtwtMMf                        22 sbrb… JntZZ… f            6
## 191 PvhwPRlvvWhFvSRhpFMMJGMFppnBTBGJ              32 Pvhw… pFMMJ… F           32
## 192 RPlCCLDPDClwHbrdzsdNLzgs                      24 RPlC… Hbrdz… L           38
## 193 HZgqtgbqRZvzwzCh                              16 HZgq… RZvzw… Z           52
## 194 BFqmGfrNLQfhzJWBhRJwJR                        22 BFqm… hzJWB… B           28
## 195 LFqFQjrcrcqFNMmMdHggntDPMnsDbn                30 LFqF… MdHgg… M           39
## 196 NmWmPblGnnTTNlFGPmNWfwdchdlHdBdwcfCfZppZ      40 NmWm… fwdch… l           12
## 197 rzqzRjgVrJrzzcFdqdCBFBhZhH                    26 rzqz… cFdqd… q           17
## 198 VDRsRMjRJJrQsJPTGFNvsbnsnLGm                  28 VDRs… PTGFN… s           19
## 199 nrbrBLTffjNRzGQSJHJQGT                        22 nrbr… RzGQS… T           46
## 200 tcZqMcppCmHRQPGGCG                            18 tcZq… mHRQP… C           29
## 201 pMDcZhpgcpFDfrwNDDrLVjGj                      24 pMDc… frwND… D           30
## 202 LWlmlmWqvrBMWWBlmjLThBrfPJZfZZCwPCJJwPCT…     46 LWlm… fPJZf… T           46
## 203 pSbRHbzpHDVFRQRfPdfnZswgcJcppp                30 pSbR… fPdfn… p           16
## 204 SzRNGbzSWNPLWqLv                              16 SzRN… WNPLW… N           40
## 205 vqslblpspsvqBFSqcrrZZDdTfFPHccrf              32 vqsl… crrZZ… F           32
## 206 GWRhWmjwhRcQdCDrPjDP                          20 GWRh… cQdCD… j           10
## 207 mcWLVnnWJgGRzVSsVSpSSptNpMvb                  28 mcWL… SsVSp… V           48
## 208 wHTPfdTvHlPHGpdvvTddGfcJLLWWwWWcCWrqrVMW…     44 wHTP… cJLLW… w           23
## 209 zhsSNZhnshNSnvZmvsCWWSLrVMcrSCLWJcrq          36 zhsS… CWWSL… S           45
## 210 snDnshmNsjnTdHPfDGvdDT                        22 snDn… TdHPf… D           30
## 211 CfrnFFMnnsRNrNCwFCrdssgqgqvVZvZqlTWBNWZq…     44 Cfrn… gqgqv… N           40
## 212 htDhDLhwPWWBqTghgB                            18 htDh… WWBqT… h            8
## 213 DPLPzHDtSPStjLGLtzSMwbdMdnCHrRdCFsmfnR        38 DPLP… MwbdM… H           34
## 214 nBNWCvJmVPNnCPNDJWbtmSwqTttcQsSqtqTjQQ        38 nBNW… tmSwq… m           13
## 215 pMflzLlffRRMRdFlflpLddGdsTjwHqzcvwTqtsSt…     48 pMfl… sTjwH… z           26
## 216 ZhGlphlpvvLLfFGvMLhfrfWNJNNPVPbnPhnDgDbD…     44 ZhGl… WNJNN… h            8
## 217 ZCpCmVlZvlpBBwvvMCrJhrfhMfjjWMSG              32 ZCpC… MCrJh… C           29
## 218 qhstFzFFqzHGzNfSMJSGzM                        22 qhst… GzNfS… z           26
## 219 QnHRPRgRQPtPhtnDsqsbDQPBlTcpBwmVmTvbwdwB…     46 QnHR… BlTcp… b            2
## 220 PHmqHdddqBWMmTvMvTGMBWPdwhssnnHlhgsNwhwN…     48 PHmq… whssn… H           34
## 221 cSbVcDLtbfLSFzhlhJswgtrsww                    26 cSbV… zhlhJ… t           20
## 222 bSLlFLFFLDZVLpZVjFLdPMdBBqGGPmmqWGdGjM        38 bSLl… dPMdB… j           10
## 223 FQCnQwFRbnrSfgQgwFRCnswmPLpMppPdMMllpLMp…     48 FQCn… PLpMp… S           45
## 224 cJhhJcJVBJjhfHDvJqThvVDcpdGGqdZGdlltpqWd…     48 cJhh… pdGGq… q           17
## 225 HhzTjJBzJTvNJHvzvvNBzBFnFCNCbCwrbnRbgRwf…     44 HhzT… FnFCN… N           40
## 226 jRzDgbDDQDgVqqDGsjttNdwqNJZNwNdTWrpB          36 jRzD… ttNdw… q           17
## 227 MHvvvlSHFllMhhMrpWBJtlWdpJrTwZ                30 MHvv… rpWBJ… l           12
## 228 mFcFFHmCmtcvfvFFHHLDGnRVzjDgnmgmnzGgGg        38 mFcF… DGnRV… m           13
## 229 JJhDpDdmsJJdgmhrpPjGjFLPPSNpjL                30 JJhD… rpPjG… p           16
## 230 WbznbRGnPfrfRSrN                              16 Wbzn… PfrfR… R           44
## 231 WqGnnVGVMGHtWTCgJvZHggBggZCg                  28 WqGn… CgJvZ… H           34
## 232 wlrPQtZQvwrzlvNfZLMZBjbbqjqLbSBjTg            34 wlrP… LMZBj… Z           52
## 233 PGJDVdsdhsPVPjbTcLcGLgjqbM                    26 PGJD… jbTcL… G           33
## 234 VPDRHWRdsRQvpfmmlw                            18 VPDR… RQvpf… R           44
## 235 pvTZTSpTZvGGphNvvbDpdrMqrjlWdPqqjWdldNrd      40 pvTZ… drMqr… N           40
## 236 gmmJmsQfJgcRQJQJJncVQjMWllSnqljqBlPPjPHH…     42 gmmJ… jMWll… n           14
## 237 QVJQRVcwmJcchwpSZLwGbSZZ                      24 QVJQ… hwpSZ… w           23
## 238 zjrDMWcjDzQjDlWrnqqRBRNhBJRBhBJqnf            34 zjrD… qqRBR… n           14
## 239 TTGPPdgGLwdHGwGPTgLbbvhHtRRNRRSfchqRvSqH…     42 TTGP… vhHtR… H           34
## 240 TZTccPpdZwPQjllsspjVzD                        22 TZTc… Qjlls… p           16
## 241 jHLHhHFRjhcblDRRWbWTdtppLTntTnMmGLMvTp        38 jHLH… Tdtpp… L           38
## 242 BBQBgBBCrrgqJqTtMZMpngdtpvpG                  28 BBQB… TtMZM… g            7
## 243 QJJJQrsVsQQfQVPCNqsNSjHdhhdRHDNHFHFclh        38 QJJJ… NSjHd… N           40
## 244 RbCLnvdtnLRLRbmLPpHdQCvmNJpJSZSJlgDzglGl…     48 RbCL… NJpJS… p           16
## 245 qBBwMjfsFMjsMbfWbwjlzDZlcWclJczgNDGNDl        38 qBBw… lzDZl… W           49
## 246 wqjhrwwhhCvbQPrRnC                            18 wqjh… CvbQP… r           18
## 247 vpWDDDWZQQNGllwHlwWVGj                        22 vpWD… GllwH… W           49
## 248 LCPdqdcdtsvdsCtsddvmVrVjjrBwHlmswmBnmw        38 LCPd… mVrVj… s           19
## 249 fLfvSgvMfdCPqzZNThfNNpTJJQ                    26 fLfv… zZNTh… f            6
## 250 CVVVLbNVmGNQbGbGHHbHbvdwgQlwJDTFgJQdDZDJ…     42 CVVV… vdwgQ… Q           43
## 251 ssWBsBWrjSzWrPtBjnSCTwvFZlDjwZDdgwTDwggv      40 ssWB… TwvFZ… j           10
## 252 nntPBqBrPsBfnCRCBWzCVcGVHMLNcbHLNmHqGphp      40 nntP… VcGVH… q           17
## 253 sbbwwzdsbqQQbQnnNbPNGbznHHRdLTggMVHFVvRZ…     48 sbbw… HHRdL… d            4
## 254 mWffDWfflBpfmcWjWrrJVvgRLlMZVVhMFFTlHhMM      40 mWff… VvgRL… l           12
## 255 rJJCctmjcfvzsqsqbtbqPP                        22 rJJC… zsqsq… t           20
## 256 HGWjHWzVctQVcJVtjvRsvLTddqDDDsjRLg            34 HGWj… vRsvL… j           10
## 257 bbMnlNChZQLZhdDs                              16 bbMn… ZQLZh… h            8
## 258 SMMMMMMNmMllSlrmCczGcVzBcGWFBQGcrt            34 SMMM… czGcV… r           18
## 259 VwQlqcLfdLGqdqDjjgZrjZBdttjd                  28 VwQl… DjjgZ… d            4
## 260 zSPPPJzJGjJjZrCBDt                            18 zSPP… jJjZr… J           36
## 261 WMTMsTWsccsvGGwH                              16 WMTM… ccsvG… s           19
## 262 hZvbQrjTTZjZcjWNrjnQrcTRpGMqcRfRRGzHfHfp…     46 hZvb… RpGMq… c            3
## 263 mDJlFmwCVVwbCVbPBRLMMLpRLwRLHqpR              32 mDJl… BRLMM… w           23
## 264 gsCmgJsPDCtCVlvbhgQjhgQbnQbd                  28 gsCm… vbhgQ… g            7
## 265 fSgbhhGPGJGhRDmlhhHcHDBH                      24 fSgb… RDmlh… h            8
## 266 LsMwQWFswsQMsQMvjslcBcDldBTWfDcHRRdl          36 LsMw… lcBcD… W           49
## 267 ZpVFwLQwVLQvCVsMjrJbbCNPbzSJtPbPPf            34 ZpVF… rJbbC… C           29
## 268 VDzWMCpfCcCRDzqDzqNnvLZnfntHQnPPLQlt          36 VDzW… NnvLZ… f            6
## 269 sJmdbTBdmmGhFhhbJNNQlJnQlQLHPZNn              32 sJmd… JNNQl… J           36
## 270 sdwmwsdrmMRpDRMLcw                            18 sdwm… MRpDR… w           23
## 271 JpWmSWpCnCbJBZHZVldbdfZf                      24 JpWm… BZHZV… b            2
## 272 rgdrgNdrjgNPrMjwTssrPdfDZqsVfQHDFlQDDHQV…     44 rgdr… fDZqs… s           19
## 273 TRPdNNLgjNwrRTrJpppzCmzmCLSnvS                30 TRPd… Jpppz… L           38
## 274 QbtQJHQmbmfmBRvbQRzBvldqcFljsGcFdGdvsqqG…     42 QbtQ… ldqcF… v           22
## 275 ChCPWhDhWZWJVnZpCNChhVDcMcDdcdgGscjgFjGF…     46 ChCP… cMcDd… D           30
## 276 WZNTWNhNZfJJbTJTmR                            18 WZNT… fJJbT… T           46
## 277 CHGCHFcZvCrchrZrhsVtsBQjMstfZMMBgg            34 CHGC… sVtsB… Z           52
## 278 NNqwDLmDjJgQBmVQ                              16 NNqw… jJgQB… m           13
## 279 wdWLLTgWRTWcCcbrHCHhGW                        22 wdWL… cCcbr… W           49
## 280 bTZZvNjNjLgTCHcWhccfhWJdhvnc                  28 bTZZ… cWhcc… v           22
## 281 mnFFmPGSwRPShzVPPWPdhhzr                      24 mnFF… hzVPP… P           42
## 282 FRtBFGBMFQFttRwtZgTjCTnQNbNLjTCH              32 FRtB… ZgTjC… Q           43
## 283 bJSqrSpDJbSNbFjSFCfPWGcwGWPrcTCfwr            34 bJSq… CfPWG… r           18
## 284 tRtLhDsvhQZlHRhRtQQnCnCcdwCPwTwdGcGP          36 tRtL… QnCnC… Q           43
## 285 HsHvsmBZvmvsmBhHvLssVqDSNgFMDzgbbDVJzbpM…     42 HsHv… qDSNg… V           48
## 286 nSSDHRRRQRBCLCQC                              16 nSSD… QRBCL… R           44
## 287 qGmfPzGmGlrrrpfrqlzrJtLvBlhQbSCvbtCtlFhL…     42 qGmf… tLvBl… l           12
## 288 zzpmqqJJVVfJfPfMpfdHNndsNwDSMSDDNcsc          36 zzpm… dHNnd… M           39
## 289 CscQsVMhCsMsMHhhVthtwmgZNRqzWLBRLRLmBWmZ…     44 CscQ… gZNRq… m           13
## 290 JQJdddrjrLqBgDBq                              16 JQJd… rLqBg… r           18
## 291 QbFlTffpMbMnsPCh                              16 QbFl… MbMns… b            2
## 292 gDdbVbVDddDfVfWQfBRLQZsZLRQQ                  28 gDdb… WQfBR… f            6
## 293 FCCTrGCMStwGHTtTWLQhLZrlRssRhRhp              32 FCCT… WLQhL… r           18
## 294 FSHqtFTmFwmCsSwGTHtMTSdjjcdnVddgzmbVmjmn…     44 FSHq… djjcd… m           13
## 295 JtBBMcLWLdfFLhMttcWWhfWLrTRGFsbwTmRGwmwb…     48 JtBB… rTRGF… F           32
## 296 PzQpSQQQvzVvpzHqjvNvQSvGRmmTDVRDmsGsRGsr…     46 PzQp… GRmmT… V           48
## 297 cQPHSPvPvZHqcZjzpZjnZNtWlLdtldJWfnfhlJJt…     44 cQPH… tWlLd… n           14
## 298 nPPssTBnMJPdtHPVHtRhpv                        22 nPPs… dtHPV… P           42
## 299 bSSgGFWDgWwDFFlmWlcShqdpRqpVcHvvnqpvpRHd      40 bSSg… hqdpR… c            3
## 300 bGFnGljgSsjBCTBszz                            18 bGFn… sjBCT… j           10

Part Two

match_more <- function(first, second) {
    str_extract_all(string  = first,
                    pattern = str_flatten(str_split_1(second, ""),
                                          collapse = "|")) |> 
        unlist() |> # str_extract_all returns a list!
        unique() |> # remove duplicates
        str_flatten(collapse = "")
}

groups <- tibble(rucksack = input,
                 elf      = rep(c("elf1", "elf2", "elf3"),
                                times = length(input)/3),
                 group    = rep(1:(length(input)/3), each = 3)) |> 
    
    pivot_wider(names_from = elf, values_from = rucksack) |> 
    
    mutate(match_1_and_2 = map2_chr(elf1, elf2, match_more),
           match         = map2_chr(match_1_and_2, elf3, match_one),
           priority      = priority[match])

groups |> 
    summarise(total_priority = sum(priority)) |> 
    pull(total_priority) |> 
    cat()
## 2604
groups |> print(n = nrow(groups))
## # A tibble: 100 × 7
##     group elf1                          elf2  elf3  match_1_and_2 match priority
##     <int> <chr>                         <chr> <chr> <chr>         <chr>    <int>
##   1     1 RCMRQjLLWGTjnlnZwwnZJRZH      qnvf… BFpF… nZwJH         n           14
##   2     2 DbWVcVRRdlLffvtqjTWNgQ        mJJM… mMhP… fvqjTNg       j           10
##   3     3 qFcbmWFJqqWpRJcQWpqsQQQwSPCP… jGMj… DvzD… wSPCrHdNZt    t           20
##   4     4 SPLPHQbJSbPsvTLmfDvVDctvWhcD… jdRR… rwgR… JmfDVcWhl     J           36
##   5     5 GZhTVLztHrSzrRBz              MJWj… Mjgl… LrS           L           38
##   6     6 rgDHBgBjRgRTgwzwthBnQwmBtB    MsMp… pZMp… Twzthnm       T           46
##   7     7 TQVqZVBcBBdBfbpN              zvzr… hLWh… ZbpN          Z           52
##   8     8 SqRGLHtSbtNTbhjFTjDDpF        WwgJ… JMPl… ShFD          S           45
##   9     9 mZvmvPNmlNJPJzzmgNvNgdqqdBSp… nhDQ… VjCD… qBfHsw        w           23
##  10    10 wwqnwZGGZqqMpMprpZqwGlLDtNDf… TSTc… SCLR… LDNfVm        L           38
##  11    11 cJfqGjgGJcsgsPnghgBm          FHHb… lLLM… qsPnh         q           17
##  12    12 cRdRDhsDFzPztwJdGP            CVqp… qfQf… twG           w           23
##  13    13 nFWWzqWZQSqnJzNJzslJVsdV      vBBv… tBbp… JNsl          s           19
##  14    14 LLssTJrqrpvrvvpJvdjggMlgzVgV… HwZw… RStt… jgMzVPF       M           39
##  15    15 lJnNhMJqljlNhSrdWlGGGQHwwH    vbTp… sVTm… SrdWQHw       S           45
##  16    16 DQtMjZHZHvMbwwTSpqLtpJ        FzVF… dNFF… wSpqLJ        L           38
##  17    17 MVPTmPvbMgrTmmmmMRMvPvBwFGhh… fqqW… ZWSS… wGhDdL        L           38
##  18    18 FSsHDmtFLbbFbLGg              vrvz… pdMw… SLbGg         S           45
##  19    19 RgbmfGtmRVgLLSVSnSrWWSHhnh    ccTv… pqNj… bnWHh         b            2
##  20    20 qsSVpSVfWqgNrVtWptpmSfqbPQlj… dcGB… CFBv… rbPljHDRw     r           18
##  21    21 sjsTgNSNqSjgMmVPmmmrpH        RftC… thPZ… mVPrpH        P           42
##  22    22 TQPtgfgdPcdSQhjwHhHBLS        RrqC… CVrD… SjwHBL        H           34
##  23    23 NNlZgndqmGVGGVZNWQmWmbhbbhpb… THfL… Rjrv… VbhptCMF      V           48
##  24    24 tjDsjDGtTjVVbQVCggvrbg        qrWW… cZcn… bCr           r           18
##  25    25 qpRjdcqTcMbbMRTwtnplnwnhPzhB… FSFL… sWNV… wnhPB         P           42
##  26    26 sVCnzVpmFpVSnNFCmnmzwRFDWDdM… BJbP… tGQP… pDWMljg       p           16
##  27    27 WCDlBWWlvMFWlQWpmSZdZnNmGfJZ… LqjT… Ptzq… pmSZdnGfJ     J           36
##  28    28 NMsJfsHTMVbjnLnVsC            htWl… PmZM… MVbjnLC       M           39
##  29    29 NmfnnsPlHnGqnlsNNmRPltRLvrhv… PzQZ… TdwB… PrhSJjF       P           42
##  30    30 BVLLBPmPmWBlMlLJnJlBlFQVgdRD… trGT… fsfT… WgZHpz        W           49
##  31    31 LJwgJNfbCvwCJCwBCCNhhHmGHWWS… lzRn… ZFFz… fHGWT         f            6
##  32    32 HHzcFNcHFjhjZjlrghLL          pMZJ… MJsM… hZlrL         Z           52
##  33    33 ZDtllsDlVsrQBqQqRfWl          wvJg… zpsN… srqRW         s           19
##  34    34 rfrJjFWrwjpnJjjjfrjJJnFVTgTg… sSNb… zZDZ… VTgRPLCc      C           29
##  35    35 dbbNJPBbbrFqNqttqrGbqDcmDQRm… ZMMT… hZTW… cQRwSnp       w           23
##  36    36 rrqgHrgtcHJRRjWZlRvnnWBn      QbhV… TpFD… jWZlvnB       Z           52
##  37    37 sqNTNZHsHjjFBBwJMMNMcCJD      WGLQ… RnPd… jBwJMcCD      j           10
##  38    38 BfHbjVVqSBFfMSlCLCDrGSQssvlr  tTpn… DPwh… lCDrGQsv      D           30
##  39    39 ZzPqfGPtRtqfqPbqfGgGZbrhMjmj… QJwl… ccJL… zjBCpn        z           26
##  40    40 rBGbLbnTfnZrQbTnHldqsMmHsqls… JcJj… jjgp… GHldM         G           33
##  41    41 ttDfjtqfjtpTWWwfTbtlWccNGRSZ… LbCr… JCsB… bcNRS         b            2
##  42    42 vvdvJBfvdTvRBflBJPNmmffmgPCM… rFjq… VqLq… PNgCMs        M           39
##  43    43 zZBDzgQQZLlcglzjrCrCMFjGZbMs… PnnJ… wPRp… jrCMFGsH      M           39
##  44    44 bNQpFpnwgtDHpbnhWtffmfmhvhhf… LcdL… TBwS… whWmsZ        w           23
##  45    45 vPSvBJZSSdJgpJJZBDGDGrdqGdll… HMts… MQHN… DGrqlh        l           12
##  46    46 VsbPMwhbWhzdpzNNggnBcTBWNngQ  RmtZ… JjRC… VNBcQ         V           48
##  47    47 bfGtRgfDtVmsMzTbmz            LjGZ… wjQL… GmMz          G           33
##  48    48 pqnBZqjCNCqQqmllpHGMGdTfML    PsFg… Srvg… QHGTL         Q           43
##  49    49 RJZRWZWMWZPZffRCPWMdRdfQQQjJ… Ngpn… jntv… jHFV          j           10
##  50    50 PFBMVDSVPHMTThtMtSBMMVNbQprH… scGc… ffws… bQprgLnvj     r           18
##  51    51 LMdZGqdRSSZmCZMRfQjnggvlvggR… tjjF… jrhb… Qjnvlcz       j           10
##  52    52 HBGBfBttZzbGbljPdpFddFqRmqRz… JDWg… CLvg… pqm           p           16
##  53    53 RgHgDqDzqQqgcdHqcZGTNlGffGBD… LFLP… vhrL… ZGTNlfB       N           40
##  54    54 sLMLsThhjgqLlsnsLgTLtMFcRbcP… fvrj… vfZd… jFPJSwW       j           10
##  55    55 TCVMfCfBnHHfLLPFWb            GgQl… tQbN… HLPb          b            2
##  56    56 QFFMzwjwngsvsBjGGJWbBbBWbB    QdmV… QHtH… QW            Q           43
##  57    57 RzzTNpSRBzSBVpSRlHNSHBSSGPcL… CCmm… mdZQ… PcLtjhbn      h            8
##  58    58 VWmnfQWzWWnHWMfmmMVNMfWjtBtB… cZZv… wCFT… QjtBSrpJg     Q           43
##  59    59 sNQQHbbhdlpdrQllqpsqSpGjZDZG… WWRL… FLRL… GjZDgnVc      G           33
##  60    60 HZllwlZSlSZwhvmQjcZhTqcT      sPzz… JDds… hvjcTq        c            3
##  61    61 nzCTCnpqJqfCnvvjZjWjPcZrmcmZ… GNdw… dVbl… jZWPcr        j           10
##  62    62 dqpQQrdqQpLfqcGSdggQdgRMmwHB… vTzs… lJCs… RMmwHBVNDFt   V           48
##  63    63 WlLCJlHLcZcJWcWZJnLHnPqlFtSt… Qfbg… fwgf… qFtShTNVz     q           17
##  64    64 sbrbmVmfddzJntZZtwtMMf        Pvhw… RPlC… JnwM          w           23
##  65    65 HZgqtgbqRZvzwzCh              BFqm… LFqF… qRzwh         q           17
##  66    66 NmWmPblGnnTTNlFGPmNWfwdchdlH… rzqz… VDRs… FdchHBCZ      F           32
##  67    67 nrbrBLTffjNRzGQSJHJQGT        tcZq… pMDc… RGQH          G           33
##  68    68 LWlmlmWqvrBMWWBlmjLThBrfPJZf… pSbR… SzRN… fPJZwcgsd     P           42
##  69    69 vqslblpspsvqBFSqcrrZZDdTfFPH… GWRh… mcWL… crDdP         c            3
##  70    70 wHTPfdTvHlPHGpdvvTddGfcJLLWW… zhsS… snDn… vcJLWCrqVM    v           22
##  71    71 CfrnFFMnnsRNrNCwFCrdssgqgqvV… htDh… DPLP… wgqTWB        w           23
##  72    72 nBNWCvJmVPNnCPNDJWbtmSwqTttc… pMfl… ZhGl… vtSwqTcQsj    v           22
##  73    73 ZCpCmVlZvlpBBwvvMCrJhrfhMfjj… qhst… QnHR… MJhfSG        h            8
##  74    74 PHmqHdddqBWMmTvMvTGMBWPdwhss… cSbV… bSLl… whslgzr       l           12
##  75    75 FQCnQwFRbnrSfgQgwFRCnswmPLpM… cJhh… HhzT… fpMdltZ       f            6
##  76    76 jRzDgbDDQDgVqqDGsjttNdwqNJZN… MHvv… mFcF… tdwJZTWrpB    t           20
##  77    77 JJhDpDdmsJJdgmhrpPjGjFLPPSNp… Wbzn… WqGn… rPGSN         G           33
##  78    78 wlrPQtZQvwrzlvNfZLMZBjbbqjqL… PGJD… VPDR… PLMjbqTg      P           42
##  79    79 pvTZTSpTZvGGphNvvbDpdrMqrjlW… gmmJ… QVJQ… SMqjlWP       S           45
##  80    80 zjrDMWcjDzQjDlWrnqqRBRNhBJRB… TTGP… TZTc… cqRNhJf       c            3
##  81    81 jHLHhHFRjhcblDRRWbWTdtppLTnt… BBQB… QJJJ… TdtpnMGv      d            4
##  82    82 RbCLnvdtnLRLRbmLPpHdQCvmNJpJ… qBBw… wqjh… bNJZlgDzGc    b            2
##  83    83 vpWDDDWZQQNGllwHlwWVGj        LCPd… fLfv… vlwHVj        v           22
##  84    84 CVVVLbNVmGNQbGbGHHbHbvdwgQlw… ssWB… nntP… CvdwglDTFZ    C           29
##  85    85 sbbwwzdsbqQQbQnnNbPNGbznHHRd… mWff… rJJC… HRLTgMVFvZ    v           22
##  86    86 HGWjHWzVctQVcJVtjvRsvLTddqDD… bbMn… SMMM… QsLdD         Q           43
##  87    87 VwQlqcLfdLGqdqDjjgZrjZBdttjd  zSPP… WMTM… GDjZrBt       G           33
##  88    88 hZvbQrjTTZjZcjWNrjnQrcTRpGMq… mDJl… gsCm… bRpMqH        b            2
##  89    89 fSgbhhGPGJGhRDmlhhHcHDBH      LsMw… ZpVF… fRDlHcB       f            6
##  90    90 VDzWMCpfCcCRDzqDzqNnvLZnfntH… sJmd… sdwm… NnLZHQPl      L           38
##  91    91 JpWmSWpCnCbJBZHZVldbdfZf      rgdr… TRPd… BZHVldf       d            4
##  92    92 QbtQJHQmbmfmBRvbQRzBvldqcFlj… ChCP… WZNT… JldqcFjsG     J           36
##  93    93 CHGCHFcZvCrchrZrhsVtsBQjMstf… NNqw… wdWL… VBQjg         g            7
##  94    94 bTZZvNjNjLgTCHcWhccfhWJdhvnc  mnFF… FRtB… Whdn          n           14
##  95    95 bJSqrSpDJbSNbFjSFCfPWGcwGWPr… tRtL… HsHv… DCPGcwT       D           30
##  96    96 nSSDHRRRQRBCLCQC              qGmf… zzpm… SQBCL         S           45
##  97    97 CscQsVMhCsMsMHhhVthtwmgZNRqz… JQJd… QbFl… QgqLBD        Q           43
##  98    98 gDdbVbVDddDfVfWQfBRLQZsZLRQQ  FCCT… FSHq… WQRLZs        s           19
##  99    99 JtBBMcLWLdfFLhMttcWWhfWLrTRG… PzQp… cQPH… crTRGsmCD     c            3
## 100   100 nPPssTBnMJPdtHPVHtRhpv        bSSg… bGFn… ndHVRhpv      n           14