diff --git a/2022/3/index.js b/2022/3/index.js new file mode 100644 index 0000000..a6eee57 --- /dev/null +++ b/2022/3/index.js @@ -0,0 +1,20 @@ +const input = "LLBPGtltrGPBMMsLcLMMVMpVRhhfCDTwRwRdTfwDllRRRDhC\ngNFJHJFgtZFJjZJHNNFWZWZwwDjCwSDhfCDbdwjfwDTTDT\ngmQNZnZNHWnqmQpLtVLMBsPpBqrL\nHlHldQtHlctzppdQtjdczHhJRnnhGNVmVRJmVjCVFCNh\nLgWNgggZJZGFhCZr\nDbqPswwMvDPqzlBNHtzfHdwd\ntJgtJwwCtNvPHHPtHzDsdRTsBRDDWgWTgT\nQhLQjLGjZQFlFZmnmGLDrzWfRldrTrzTBRWTzs\nbFFmFZjhSFHvBCvCvJpb\nMSGcvnvMGMJgWJDpdndZwBnppfCp\nVPVfQQVbshZNZwdNDwNs\nLtLbjmQRLmVhQtTbfgWjJgFFcrqqrGSqWg\nfHfCNCwwHfGhcntntrrgHrQnrn\nFVqpSpbPpjSVMjqvVmVvMzlzwJnbtnnlzQQlrWzJgt\nPTqqRRPSRSmqSpPpSpRZwGCLGscCNLZZZTNdNZ\npQQQslVSVzzCQnZSlplzbLcHZHcrrrbZqFbZjbFm\ngWtvPgdMDDtFDHHjJJbbccbrLW\nMhNvwwDfDfdtvRQnpFNNTlSRSn\nZTnSnTTzqvFmVzvWWm\nClpCgltHNrtgsHdpLCHtDCNLVvQvVwVmwcsWQGMMQvcGcFcv\nJmrgCHCNJtlmHmNhnJjnnnjJhPfhSJ\nBgRRZTgHHvRTRmRNLNNhQWlmGFfJlWlhsQshpF\nqPqSSttwnnzqqqwtVrPwMthFsJllJJlGhpJhWJQlhVQd\nMjMwScnDPzcwjtqDtztnctrvgNZTTvCvLgvQbLbvjTBvBg\nSWQSbbqTTbPcfMZSwZZwwn\ndghjghmNDmGsGgdnfmtMRCLCCRncfc\npJDJNdsNMMhpssgdprBTBzWlpBWlllWb\nTwNLNZTwWCWLwWCSTZSLzWHGrDHHPmGdDHvndGdNfvMm\nBgpjtpgjBjVbRjQRhVsDnvgGgPnGdrmvnMDfrf\nrhRjRssQJplRtVbpthblbbLSLzFCJZFqLLFWCzqcqzLL\nPBrdPMtBPvCQBVBjCfWPqSHbszhGGnsfSG\nJpmDwJgWJgNzmShhmfSGzh\npRwNcNpFZNZRWgcNplpjVCMVjdvdMQtCMLZjMZ\nlDrcnnlLqLRcDDZRLjFVTHzGCLGVPzGPVWGB\npNwHpdmsNJsbpwsbzJTCPWTVFzzQTWCQ\nvbhswdtdwfdsmtNSssHwvllvMcZjnjcnZqlgMDZglM\nGVVtJGtzVFsVsDTH\nmQRgcBRmRLnBjrtFjCCrHmFF\ngqpBnlRpgZcvdSdlMdSvMt\ntMSCNGSflffNhnnGqlPPsrzWPrTrVpWr\nbZHbmDBQmbDZQdbDcRFZZBTTWWWwqVzszWjrFPVwrzqq\nHQBLHmQVQLDdCggMfgMNLvNG\nHHNDzNJPJPmdPcNGGGhnhwnVhCQBwBjQ\nbsSbLfrLtRSLRSRRRsBwhCpfpCzlwCBVjlCV\nzvvsvqLtZqLtzRsqTrggRMHJNWJgHHHNJcgWNPdHcH\nqgbNvqbgmmZgZLvZqgnZzlpzpzHtVPzttGPrrnnl\njwswGjQDMsQMjdBwdcjCHVtcPVpCVCrPlVSrpc\nGsFWBfhGBfDFDFWqNbLNqbgvqbbvfN\nHgwWqtcqHNWgnHcNNCfvJCCJJfJGvnPfrR\nsbDhZSmdBbsSdmSDdrjjffRvdjPrprCd\nvvZbSFFlFHtqFqqWNc\nZRjnbRsHlncZGjTRTfFVSQBQppQvvFBHpF\nzrLwMdhDhqJJttDQSldQVPQSlSfPlV\nhCWWCzqWnmcZlRRW\nHfgfQflHjWgRQRdRBWVsnbvvscbbbwvmbHncSc\ntJGLtPPGZPwVvSSPhw\nCLGTLZqJtMGqLDFFDZZJFZJpWjRpVNRWpllDpjlBfgVjlp\nrhhGZZhLNhPmfJqvfLlq\ndHRTHRHQQWcTCRTHmmjJgfqqlGmgWgql\nCCwRzTRRdCCRSQwzRcppprZtrMhGBMZMnDSt\nWfffvnSnfSBshwsjhlvGlh\nZHpFNTmppVmNzVVmmFMZzbwwjHGrGlPhCGrljbgHsg\npLZMmqVsZVMMVVscDfdtSSStqcRRdn\nRhRbLzRLHLCPmzznHLbzCRTJhdTVSJJVSjdFFNFFNTJv\nMGgMfpMsBgpnMtGfnfwBtDBjFVdNSSSFdvJSQSpTJdJjNv\nlMsBgDMsblmRblnz\nClNcJZttLfLvvRQzQWwRQN\nhrpMdqMspsrGDdMphhdMMMMHBmRWmSVrRVzVTzQBQvSmzVWV\nppHDMGhMMDbGMdDMGbgFbgbMlJJnjjZtZfLPcfcngZfPPfCR\nZRslLRgCclZLZzQghQhfrbfGbJ\npVSHpBBBBDVDqDBldVzfrMzQbfSTSJrzzJrJ\nDqqHnBDlpNDVVnpnjtDtNjCvFLcsFFPZRcPsNNmPcFcP\nLmLWSmSRNdcpcRHFHrWzWHbMbwZlZlPSbTjlwPbTPJTf\nDttBsvhnhqvGGBhGtBVNBVqJlPwslMMPJwTjZbbZPTfbPs\nCDthQvVNVFCHHWCFdr\nRRtCWSzQZdRMrtRWrSztMggcGDfQTcfFTGqTLgGDLc\nbnVhnvPHhhdJJBTLDGcDTcBvvD\npmbnhmPPmHwdCjmdrRtCdj\nlTPzwhzmHpTvrDCDHJnsNN\ntdgtbMMBbWdFbtqJCnsrqnMMDsrq\nFjWdtgLSWttWtLSWtDWBjGGmwGlzTRwPTQGhlQQm\nwcbnTtTppNLrntznTBBccCGrVldRrZqdqRCZdFZCVZ\nJfHDgjgPPfRRgRlLRddR\njhDhhLMfmJjMjDbNSTzbbbtmttmN\nCfGlvzpvpTjzzCWjvDlfvbbJbCRSdSRhsSQCMhdbhR\nwqrSmrLHHNcLqrrLBNsndssnnhPshnsQwbnJ\nNtcmBLcNVDWzjSvWtv\nvZPCSCvCJffvVvmCmPqCSlDSscczHDRcwcHzRlRHHs\nLFGFNnGrdQttNMFpzpMRRDslsJwsJH\ngjtLnFBJrLvhZvCbZhqB\nDBcjVFjDhQMSJVZbHZbl\nnfmsqppnLfTnfmMmzppwgllSrbSHHtllqbtSwZ\nTRzTnfRWnfdzWssfnRfRpncQPBhdDjjDCPcMQcCBGPPj\nNSjWCHjNHjpPWPpSFWdtqBMBBFVBvqvJGJwqBt\ngQllgDrnhQQDGRshRsZfVtVMRqwMtccVJcBtvRqw\nDQrzrDzhQgrsZLrZjWSSHNTWCjjNGTLH\nCgdcCFcbTbBzPgmNRmpptP\nrsZtsvVvHZZzPmqVNPzNmV\nHZjrwrjnjtHSHwDGdFhCdhWWJnWchCFJ\nRMTqQMRJqPtBtGBPtWjN\nssHfSfShCwwbhsbHhhsmSfhSGNpCpNCjBBBLptcGtpzBBBWW\nHnwrSFwffHsFwrSSjfHglJJlTgZdFdgZRZTDDM\npDLDWlDSlJDmzSJnDScRPLGGvqFqLPccGLgv\nCZHfwNMVNjsHNNqPgcbcBbRQGQ\ndCffZCjVCdCHHTmnlSgTlTSrlStp\nbFtlLCvLlVjpCGPJndrrMMCDDCnrMg\nhRsTwcZcBjZRJrfMDnsHrJnH\nmNZqcTSSBTScNzVQFtGtjpFtjmGG\nbjHdLrHjRWpDCtLzhzps\nlZcGfTvQcQfvlqqcNCcBvVwtGzmzthmwmpthMDmswgMt\nNcqflNQTBTTvvQSvqSVvQJbHPHbHCRJdndJPSHjWHb\nCVmRncrRVrhcmsBgfmtfdJsJmt\nbZHvZZDJwpWtdZgtGNGd\nvSbwHDMFMJqPQqQvvSPQqpSwjRcTVTLjLRhVCLFLjLFnFzCC\nmtffsmBwfwBDBmmsLsHqtpftGrMVMPSMPsVvhNvFrGPMvjNV\nTQTQCRWjJcdcQQSPrhhPSvVGPF\ncTRJCnldWJZlTgbWgbdbpqfqmppjmtljpqzmjpLw\nNNPmrmPWmrSSNNPmnglghmCvLCCflh\nLFbsDQMQFtQFHbQHqhvnngCftpcllptJgJ\nbDjsGqLLdRVjPZPP\ntgrbBQlbtRblwtRGrbCNswDDCsvFszpssCss\nSJVMhSZfHvpdhphN\nSMLpWZSSZMjfgGBgRtbQgljQ\nHsHHNDDHzHDDjsVBBZqtWBrSNcPwQvccvvdhPclSrQSc\nfGCFCgpgTfnTmgTFLFgccclhwQhwrzSwSwrCrr\npmLJGfMRpFmfFMzmgGmRpgmVqWJDqZqqHtjBBVDBBqqssJ\nmBTfcfCCmpBCCSzNQScQSTfddhdtwgttjghNwGtGdgwGtd\nHvvqbvMLnFZVVPjJGRGzGRjZtwgw\nVFHFbsFHHSmzQBmsmT\nZNmZCmNHHzzmPPzlbplvhbQh\nGDSwldfdvggPfLvQ\nddqrtlnJDJlnjScRmMRCFHTHtFZF\nFPvglHSPcpNcFNSHFHNvZjdmbwdbzZtzsHDzbsbj\nMMnBLCCWBJCnrCVWCBstTZdZmdTtbDLswTtZ\nBMDnRCrnGhPPSgcgpG\nnsbgpbdrjMdGqnNRRWWRww\ntZZhPzCJhsJBtJPllJBCtCvwwcwwWLvWvwWRThcGcqLq\nmlBmZQPZmlppbgMmfssg\nRFdZTHFCdvjhgGnFqj\nzQLtNQpzNNtNpDtDPWLNMmGfBcjgjlgjhBnvcfnBvfjp\nPtmLsPzQVWzWDswCSwHbRZsGZw\nnPsfnPsFhTGjqGnmQppG\nRZhBbNwbBRZHZSCCHQqSpCpqqm\nVMbgNWRWMDfhtFJT\nRWhRPDhBHZWgZghRZwZgGJPGdncFdLcdLCjscFcjCjNLLj\nmQfSrlfTVqmSVTTTrprfFLqcdLHsLHFnvsFFqnNd\nTtQmVHmMrbMWRggRPJZP\nTTlCTVTdcpBlcchF\nZLhwSMZhqhtqwqLjFcBvFmvvssGBmmjj\nLwSMRtqMHnqhhRZRRtJSVTgggVPdTdrVbQDJgTPW\nCGFFWFFVgjfzgVfcJCcgTCcBBWqSqMMBMBShhwMLMwSSMq\nfmQnflldltBZqlwqNZpB\ndvtnvmtRtsPbzCfTHjHcPzGf\nhzshzfshVhthgMmRsFRvFqmm\nPDDcZWlWBbplvmRRGtlvqQ\nncjnDjbScnBWZjDVfwjfrrVtwLjzhr\nQRWvffVVGfDhNNjzGZLLcGGZ\nrgtpSSHpPrHSspvNLFlzTgNLlFglcc\nSSpbMHpvmwMQhMBR\ndHLtBqPCtPBHNsbRNdNNsZVN\nnQwntMwJWhwWjvcjDMlntRsNpgSbNNpglFpVggbSVF\nQDhJWwhzJtTqLzCmtT\nPSLqTqrCrRvCSJWLdLwdVWdQWL\nzNjHQnnHjHznnbDMnMMMdVZcpZZJpZWcdJFZ\nBntfgNbzfBtHzgnbbbPPSstlQSSGGrlGsrTT\nQpBNsBzztgqVtdmp\njvrhGljRhSTlGGvjwjSwGjRvHVdqLttrMgMbtMMMVmdqqHfV\nChTvTvljmCsQQQnNsQ\nCQCNSQHHgCtNHCNHHNDJcBJwLPtJBGhMPPPJwM\nzRTqmsdRRzrmdzVRpzPwcjdwwhLjMBMGBBLw\nhprmzRmblTzTVTVrlbrmVHNWNnCZFWNNFZlnDFSWgQ\nhGGqwwdwMqsRDGRBzlvDzB\nLTNTfcCFFFCcNHFFBzRSZRBlzHPSZdvD\nnLVTFNfVVLLWnwnwdrdbhnrhrr\nhlTpcDTpHmHwDmMbbdMMMGTPdGPR\nZzFqNSQqHvBvzzqjFHtvSGRRMPQsJGJWRGWPMRdRsM\nBZjLNqNqzVVHgLVgll\nZHHBzSZPVqghJgSnBhqJRQLRRMvQpwZvfNQRMMMp\nctFCDmdDWmDGNRFMpRlwwQPP\nPrsmDmCGjtcmdjGtVqBSjJhnSbHnnghH\nQmZHTjmmHRmmdPRvHdVlPdrNNLqWzffbRtqpzfWtWsWNNW\ngwMcgnMGFGCjJLqfbtNtzzssCW\nDwMFGBwcBFjhBBhcDSJQQVQTPldTvPlVVZQSdQ\nNRTGfNffLghStLRR\nQlnWsdJWmnbWnVqWbWqHPSpmjgCjtSwhPjgtptLS\nJWchnllHqQJzGTZfTcFNDN\nVtdtcTVVCRctVdJclCVtpphpPhNGDwNPmThwWmgG\nZjZMFnfBqqMjHZHMzBnzgPGwDmhmhDPfQNGPQGfD\nBbgsnFgMgMlVdJtlcVSs\ntlBMdBnClhLJnTbgph\nPhDDczqDGPqsHGrRGPWHGPzcFJNLTTJZLNbNLfFZgTbffL\nsHsmzzrGmPrRDRHqhHwmjBVtllwtdMdBSBtl\nQscfZsGsVjVtqGmlzvRMvl\nThJNCHPTDDhHHJTJPHmlSMTtTTlBvlnMSzqn\nHhCdrHrCcpmmdVmb\nWPPBPvRWzvhWhWzGWtBqBSTLDZhgFSTCDgSgZZDCZs\nflbJmMJnjdMqNdfZZrFZZNFZgrrsTZ\nnQnqJlJdlQMMbVnVmdMplVnnBwcBPGttzQcvtHcWwWtHRHvB\nLLsmpJTWCJmJppCmgHCCLjbFtRFghzjfjcjcZttbRg\nSZlMPBdBtQfFSbSF\nnPqldlDwlBVnvdLWJVsmVNZCCVmJ\nHWvNVtHWJjHJsSgHsHzsDsmf\nRwZGPFGMQgzpTGSD\nPZMlwwqhFPPZqwFhPwnFbMjWJNNBtWNVJlCJJWJjWWzj\nfrBSzJDtztfNVGwRzVgGhqsV\nMPMmjPWGMMmPCQCcbmRwVhTgVwTTqjvRTLww\ncFpcMGFplDHfBHFS\ngtjhjLffmgjgmbgVfbNdqFJMJMNbbwrwqq\nsWHHPSJsHzTZzTGsCdrqCNNddGdGFGRC\nZpzHHTZWzsSSnBBPsTBnLVcpQfcJcQVQDQfcDfQt\nqMPqChqjQPRCMqlBrmGmLbPSsTbSvz\nnWNHZFVZZttWpfHsGSbBGTbWBSGmSm\nnZfpVfdZdtFHnwVHZtNwZhCJRJhcCdDcQhCqDSSCQc\nLlwSlZrftFSMpfLCdltTmmmSDmJqmssDVJBmJB\ncRcGGhpvDTmTDgsG\nnNPcjpWbNzjRRcWhbzWjvnLMddMLCwtdtMttddtrCdMz\nNszSsDCMSDzdZpCMCSMpNszfTvJhlvmlmrTfrhlhHPrmhD\nFRWBgRjWwqFWQFBBWjVncjRTvJfvvJvVrHhmVrHhmrdJTh\nwnwnqwRGFqdbNNtCGpCp\nzgsBvPVVDDrDtDgt\nnTHldmJQNTTfflcJNrQlHWpmDDFDFhWpWCLtFbphCm\nnTTNMlNfHQZTQPGSzVVZSVPSwr\nbPLbtPpwsJhlpnhnnLNNZDWhRNzWQrWWffNr\nSczqFdFHSTFjmMSMFVqFGCWWNRrWQQQRZCVWgQQgrZ\ndFdzFGHvjmqGMFwwLLsPnvBspnsn\nlwJwwmblVdvjbbbJvVnlmjGTTNTLqffpqDJffqGLqDLD\nZtWgPtRMtQRQnTGDQNTTqL\ngCztMgWgchHhvwlllbnl\ncCwSSCVbqwCCWSbZMmGdtBllWBfdlvdt\njzRsJjhPjnLthJNNpmpvmvvMfGvjQpGv\nnPHPFgRHLtCHZrqTcq\ndVJwCJGCVrQQGTNtLtGm\nhWWgDHBzWWWpZlhWBssLDTDsQTLLtswswL\ngPhBHpjwHcljpggwwWqvbFvdCVRqPPnnqVRb\nzRRRRNqzpQZNNRRmRcZscQcCDmCTTTDGfTbfGhrTCTrbFF\nHMvMtjgtLHVlLVfhCGfrfhJhhrvh\nLBgStjnHBjLVgggBgHndnSNNQdNWcQQNGZccwsccdQpw\njLRqmZNGtZtvZvHzPfCvSSzhCP\nQbwDVHFrVbDVrDFbzPwSThSfddhWPWzS\nrpnFDccHFHtZNmMmRntj\nRFVdzzlNtrwSTltb\nhHGcqqBcGLQZffHhMwSswSWGrnnbMStC\ncgqLBgQgpgbbPbPz\nlfcgglhfTvmlBvclbgztnSRtSmttwRJwptWR\nFMjDjsdNDjNMQLFFLCMQdtwGGzRwzpGwzdWzzJpGhn\nZQVNsVZMPsVhCQsFCFsHHlqlcBZrHHfBflbHBB\nvGGQQdwNCTJfQJHJbM\nFFqmzghlzhgqjlFqzZhmhPlRgBDLLRTTcHMbRcJHBLcgRH\nqFrPjnhZmqnhZZjhhmpPzZmtvbpwtdvsSCCsGwdNwvwNCp\nnrFdSHScdRwvdvRm\nNNpPLJJbNbppCvmzbHTbmsTw\nfWLHPlPtpMNBgGQgqggQSMGc\nBcHtrBcnjflfHslsrnltbTgvMwpWnnWpwwwCwCCRRW\ndzGhLSSGDdPNgLLdPWTqWWRMqwRWpvzMMv\nVPZZNhhNSSDhLNSLdFZBVgBbjHcgsgfrbBJbfs\nVMnWjjWTnNNCzzhblbbjlj\nFmHwfFHqpDrJzPQLPLbCDs\nGrdFfHqqSmmwHSqHfpdMNTtTtZCMMZtTRggGZR\nQRlnlTphqNfqdjZNmd\nrDtPmGctFrcgDjJcNjvNJNCcNw\nbgGDtgDbBWBSBVlblmVmsRMmLM\nCcQTQTrrmfQQhZZBpZpSSZ\nJFqSvLlLbWggDvDDFHjsdnshBZpjHBBhBW\nFgJqNvLRMlMMDDblrtfrTCStmCVtNttz\nMRRbbddqtHbMZbqMHHTFTFgwZglWPfgsZWgW\nLCcLjzCNGNcvpvLTFPmzlFsfTgFlgs\nNhNGcrCGrsrvcDpvVcSbtHQJQbnQbSdHMtJV\nbfMfBFcWFsWZHBWRPQpRqdwmMpmddm\nrSShvvVTNVhvVCCvThDlSvCwpGCmRmGQmPwmpLRLRdpq\nDhRzzVNVVgSzTFcgtnbHnHbfBB\nHsTGHHvlvvGTGlHBvlbZstrVrwNjrjVStwVVZR\nPPmgcFJPFcFWmWMgdNtVtQZtDVDVdZZjjR\nLLqWnMnmNvlBLCTzCT\nqTttLqLvGCQqCDlhml\nFJjzrRBrpjRWrCwrBrrwpRbbDzgghSmmNhPQhgNshmDSzSNm\nbJBrbFRjBVnWBrRBnHLfHGfdVtvHttcCdT\nmTzjGPmPPmPNjNBTvlJRlNJzZqrzrSZZSpcZqpgcgcggFr\nQWCwwMwWWhVZFbpQDSpSJS\nstMMsWwMwVWtwJTNNPvvRmTsNPsl\ngGFFNWMMNFTBlLpGpSll\nqvccssdDwDbhMhzwHLppTSHLrdBpBVLV\nPhJhzhMJzwDJwhZZtZQJCjgWtFjZ\npGqWfqqGcspGqWqppHprpTrzhCzttMBCtbtJmtJbSBvWBt\nQDnVPgVPgDCJBMhmBJgv\nNlZwFlnnPLLlFwDlDlnPPFFHTMTdMZjTTcjsqqcsdfGdcp\nHLzZfHWWQwpgVHjVHr\nJlMlMGGDMtJGdtJhqtlccDgVCSTFFSCSDTggpvFTjSgS\nJcGRMlthtlVNMJRfzWsPnQsnnZNZns\nzVfvMpsbtQmtBlFWBZ\nlLSrlNTNRSFRFhhHRmPR\ndnSJjjwJJGwwnzVlvpszvccM\nSmlcCrpnrnznGzSBBSfzNbtsQsWZQcFbWctcbbZb\nJHgwJPjvdghbbWdDZGNLZb\nJjghvvhRwhwJVhHTzmfRfzGSMrzBfnGC\nJbCmrbnzmntnVJjbCHJJFQFvqgJgQgqLDQ\nNGhhhhPMGhWsSSchWlNsCLBBlLFQCgqvgCFFgQBg\nPdcNWWcdGdPssPPNTSNNtzbTwjntzbbVwtZpCVnb\ntGNgtsNQHsJmwwzddmQw\nhMhhDBwMhDDfCRRBjFDDTTWjdWmrmdWqjlmmmjJz\nRSpSSBhppDhRncRLswZLGvtGvNcNtL"; + +const getValue = (char) => { + const code = char.charCodeAt(0); + if(code < 92) { + return code - 38; + } + return code - 96; +} + +const main = async () => { + const sacks = input.split("\n").map( r => r.split('')); + const compartments = sacks.map(sack => [sack.slice(0, (sack.length + 1)/2), sack.slice((sack.length+1)/2)]); + const doubles = compartments.map(([comp1, comp2]) => comp1.find(c => comp2.includes(c))); + return doubles.map(getValue).reduce((sum, a) => sum + a, 0); + +}; + + +main().then(r => console.log("Result: ", r)); diff --git a/2022/3/index2.js b/2022/3/index2.js new file mode 100644 index 0000000..6cae6bd --- /dev/null +++ b/2022/3/index2.js @@ -0,0 +1,28 @@ +const input = "LLBPGtltrGPBMMsLcLMMVMpVRhhfCDTwRwRdTfwDllRRRDhC\ngNFJHJFgtZFJjZJHNNFWZWZwwDjCwSDhfCDbdwjfwDTTDT\ngmQNZnZNHWnqmQpLtVLMBsPpBqrL\nHlHldQtHlctzppdQtjdczHhJRnnhGNVmVRJmVjCVFCNh\nLgWNgggZJZGFhCZr\nDbqPswwMvDPqzlBNHtzfHdwd\ntJgtJwwCtNvPHHPtHzDsdRTsBRDDWgWTgT\nQhLQjLGjZQFlFZmnmGLDrzWfRldrTrzTBRWTzs\nbFFmFZjhSFHvBCvCvJpb\nMSGcvnvMGMJgWJDpdndZwBnppfCp\nVPVfQQVbshZNZwdNDwNs\nLtLbjmQRLmVhQtTbfgWjJgFFcrqqrGSqWg\nfHfCNCwwHfGhcntntrrgHrQnrn\nFVqpSpbPpjSVMjqvVmVvMzlzwJnbtnnlzQQlrWzJgt\nPTqqRRPSRSmqSpPpSpRZwGCLGscCNLZZZTNdNZ\npQQQslVSVzzCQnZSlplzbLcHZHcrrrbZqFbZjbFm\ngWtvPgdMDDtFDHHjJJbbccbrLW\nMhNvwwDfDfdtvRQnpFNNTlSRSn\nZTnSnTTzqvFmVzvWWm\nClpCgltHNrtgsHdpLCHtDCNLVvQvVwVmwcsWQGMMQvcGcFcv\nJmrgCHCNJtlmHmNhnJjnnnjJhPfhSJ\nBgRRZTgHHvRTRmRNLNNhQWlmGFfJlWlhsQshpF\nqPqSSttwnnzqqqwtVrPwMthFsJllJJlGhpJhWJQlhVQd\nMjMwScnDPzcwjtqDtztnctrvgNZTTvCvLgvQbLbvjTBvBg\nSWQSbbqTTbPcfMZSwZZwwn\ndghjghmNDmGsGgdnfmtMRCLCCRncfc\npJDJNdsNMMhpssgdprBTBzWlpBWlllWb\nTwNLNZTwWCWLwWCSTZSLzWHGrDHHPmGdDHvndGdNfvMm\nBgpjtpgjBjVbRjQRhVsDnvgGgPnGdrmvnMDfrf\nrhRjRssQJplRtVbpthblbbLSLzFCJZFqLLFWCzqcqzLL\nPBrdPMtBPvCQBVBjCfWPqSHbszhGGnsfSG\nJpmDwJgWJgNzmShhmfSGzh\npRwNcNpFZNZRWgcNplpjVCMVjdvdMQtCMLZjMZ\nlDrcnnlLqLRcDDZRLjFVTHzGCLGVPzGPVWGB\npNwHpdmsNJsbpwsbzJTCPWTVFzzQTWCQ\nvbhswdtdwfdsmtNSssHwvllvMcZjnjcnZqlgMDZglM\nGVVtJGtzVFsVsDTH\nmQRgcBRmRLnBjrtFjCCrHmFF\ngqpBnlRpgZcvdSdlMdSvMt\ntMSCNGSflffNhnnGqlPPsrzWPrTrVpWr\nbZHbmDBQmbDZQdbDcRFZZBTTWWWwqVzszWjrFPVwrzqq\nHQBLHmQVQLDdCggMfgMNLvNG\nHHNDzNJPJPmdPcNGGGhnhwnVhCQBwBjQ\nbsSbLfrLtRSLRSRRRsBwhCpfpCzlwCBVjlCV\nzvvsvqLtZqLtzRsqTrggRMHJNWJgHHHNJcgWNPdHcH\nqgbNvqbgmmZgZLvZqgnZzlpzpzHtVPzttGPrrnnl\njwswGjQDMsQMjdBwdcjCHVtcPVpCVCrPlVSrpc\nGsFWBfhGBfDFDFWqNbLNqbgvqbbvfN\nHgwWqtcqHNWgnHcNNCfvJCCJJfJGvnPfrR\nsbDhZSmdBbsSdmSDdrjjffRvdjPrprCd\nvvZbSFFlFHtqFqqWNc\nZRjnbRsHlncZGjTRTfFVSQBQppQvvFBHpF\nzrLwMdhDhqJJttDQSldQVPQSlSfPlV\nhCWWCzqWnmcZlRRW\nHfgfQflHjWgRQRdRBWVsnbvvscbbbwvmbHncSc\ntJGLtPPGZPwVvSSPhw\nCLGTLZqJtMGqLDFFDZZJFZJpWjRpVNRWpllDpjlBfgVjlp\nrhhGZZhLNhPmfJqvfLlq\ndHRTHRHQQWcTCRTHmmjJgfqqlGmgWgql\nCCwRzTRRdCCRSQwzRcppprZtrMhGBMZMnDSt\nWfffvnSnfSBshwsjhlvGlh\nZHpFNTmppVmNzVVmmFMZzbwwjHGrGlPhCGrljbgHsg\npLZMmqVsZVMMVVscDfdtSSStqcRRdn\nRhRbLzRLHLCPmzznHLbzCRTJhdTVSJJVSjdFFNFFNTJv\nMGgMfpMsBgpnMtGfnfwBtDBjFVdNSSSFdvJSQSpTJdJjNv\nlMsBgDMsblmRblnz\nClNcJZttLfLvvRQzQWwRQN\nhrpMdqMspsrGDdMphhdMMMMHBmRWmSVrRVzVTzQBQvSmzVWV\nppHDMGhMMDbGMdDMGbgFbgbMlJJnjjZtZfLPcfcngZfPPfCR\nZRslLRgCclZLZzQghQhfrbfGbJ\npVSHpBBBBDVDqDBldVzfrMzQbfSTSJrzzJrJ\nDqqHnBDlpNDVVnpnjtDtNjCvFLcsFFPZRcPsNNmPcFcP\nLmLWSmSRNdcpcRHFHrWzWHbMbwZlZlPSbTjlwPbTPJTf\nDttBsvhnhqvGGBhGtBVNBVqJlPwslMMPJwTjZbbZPTfbPs\nCDthQvVNVFCHHWCFdr\nRRtCWSzQZdRMrtRWrSztMggcGDfQTcfFTGqTLgGDLc\nbnVhnvPHhhdJJBTLDGcDTcBvvD\npmbnhmPPmHwdCjmdrRtCdj\nlTPzwhzmHpTvrDCDHJnsNN\ntdgtbMMBbWdFbtqJCnsrqnMMDsrq\nFjWdtgLSWttWtLSWtDWBjGGmwGlzTRwPTQGhlQQm\nwcbnTtTppNLrntznTBBccCGrVldRrZqdqRCZdFZCVZ\nJfHDgjgPPfRRgRlLRddR\njhDhhLMfmJjMjDbNSTzbbbtmttmN\nCfGlvzpvpTjzzCWjvDlfvbbJbCRSdSRhsSQCMhdbhR\nwqrSmrLHHNcLqrrLBNsndssnnhPshnsQwbnJ\nNtcmBLcNVDWzjSvWtv\nvZPCSCvCJffvVvmCmPqCSlDSscczHDRcwcHzRlRHHs\nLFGFNnGrdQttNMFpzpMRRDslsJwsJH\ngjtLnFBJrLvhZvCbZhqB\nDBcjVFjDhQMSJVZbHZbl\nnfmsqppnLfTnfmMmzppwgllSrbSHHtllqbtSwZ\nTRzTnfRWnfdzWssfnRfRpncQPBhdDjjDCPcMQcCBGPPj\nNSjWCHjNHjpPWPpSFWdtqBMBBFVBvqvJGJwqBt\ngQllgDrnhQQDGRshRsZfVtVMRqwMtccVJcBtvRqw\nDQrzrDzhQgrsZLrZjWSSHNTWCjjNGTLH\nCgdcCFcbTbBzPgmNRmpptP\nrsZtsvVvHZZzPmqVNPzNmV\nHZjrwrjnjtHSHwDGdFhCdhWWJnWchCFJ\nRMTqQMRJqPtBtGBPtWjN\nssHfSfShCwwbhsbHhhsmSfhSGNpCpNCjBBBLptcGtpzBBBWW\nHnwrSFwffHsFwrSSjfHglJJlTgZdFdgZRZTDDM\npDLDWlDSlJDmzSJnDScRPLGGvqFqLPccGLgv\nCZHfwNMVNjsHNNqPgcbcBbRQGQ\ndCffZCjVCdCHHTmnlSgTlTSrlStp\nbFtlLCvLlVjpCGPJndrrMMCDDCnrMg\nhRsTwcZcBjZRJrfMDnsHrJnH\nmNZqcTSSBTScNzVQFtGtjpFtjmGG\nbjHdLrHjRWpDCtLzhzps\nlZcGfTvQcQfvlqqcNCcBvVwtGzmzthmwmpthMDmswgMt\nNcqflNQTBTTvvQSvqSVvQJbHPHbHCRJdndJPSHjWHb\nCVmRncrRVrhcmsBgfmtfdJsJmt\nbZHvZZDJwpWtdZgtGNGd\nvSbwHDMFMJqPQqQvvSPQqpSwjRcTVTLjLRhVCLFLjLFnFzCC\nmtffsmBwfwBDBmmsLsHqtpftGrMVMPSMPsVvhNvFrGPMvjNV\nTQTQCRWjJcdcQQSPrhhPSvVGPF\ncTRJCnldWJZlTgbWgbdbpqfqmppjmtljpqzmjpLw\nNNPmrmPWmrSSNNPmnglghmCvLCCflh\nLFbsDQMQFtQFHbQHqhvnngCftpcllptJgJ\nbDjsGqLLdRVjPZPP\ntgrbBQlbtRblwtRGrbCNswDDCsvFszpssCss\nSJVMhSZfHvpdhphN\nSMLpWZSSZMjfgGBgRtbQgljQ\nHsHHNDDHzHDDjsVBBZqtWBrSNcPwQvccvvdhPclSrQSc\nfGCFCgpgTfnTmgTFLFgccclhwQhwrzSwSwrCrr\npmLJGfMRpFmfFMzmgGmRpgmVqWJDqZqqHtjBBVDBBqqssJ\nmBTfcfCCmpBCCSzNQScQSTfddhdtwgttjghNwGtGdgwGtd\nHvvqbvMLnFZVVPjJGRGzGRjZtwgw\nVFHFbsFHHSmzQBmsmT\nZNmZCmNHHzzmPPzlbplvhbQh\nGDSwldfdvggPfLvQ\nddqrtlnJDJlnjScRmMRCFHTHtFZF\nFPvglHSPcpNcFNSHFHNvZjdmbwdbzZtzsHDzbsbj\nMMnBLCCWBJCnrCVWCBstTZdZmdTtbDLswTtZ\nBMDnRCrnGhPPSgcgpG\nnsbgpbdrjMdGqnNRRWWRww\ntZZhPzCJhsJBtJPllJBCtCvwwcwwWLvWvwWRThcGcqLq\nmlBmZQPZmlppbgMmfssg\nRFdZTHFCdvjhgGnFqj\nzQLtNQpzNNtNpDtDPWLNMmGfBcjgjlgjhBnvcfnBvfjp\nPtmLsPzQVWzWDswCSwHbRZsGZw\nnPsfnPsFhTGjqGnmQppG\nRZhBbNwbBRZHZSCCHQqSpCpqqm\nVMbgNWRWMDfhtFJT\nRWhRPDhBHZWgZghRZwZgGJPGdncFdLcdLCjscFcjCjNLLj\nmQfSrlfTVqmSVTTTrprfFLqcdLHsLHFnvsFFqnNd\nTtQmVHmMrbMWRggRPJZP\nTTlCTVTdcpBlcchF\nZLhwSMZhqhtqwqLjFcBvFmvvssGBmmjj\nLwSMRtqMHnqhhRZRRtJSVTgggVPdTdrVbQDJgTPW\nCGFFWFFVgjfzgVfcJCcgTCcBBWqSqMMBMBShhwMLMwSSMq\nfmQnflldltBZqlwqNZpB\ndvtnvmtRtsPbzCfTHjHcPzGf\nhzshzfshVhthgMmRsFRvFqmm\nPDDcZWlWBbplvmRRGtlvqQ\nncjnDjbScnBWZjDVfwjfrrVtwLjzhr\nQRWvffVVGfDhNNjzGZLLcGGZ\nrgtpSSHpPrHSspvNLFlzTgNLlFglcc\nSSpbMHpvmwMQhMBR\ndHLtBqPCtPBHNsbRNdNNsZVN\nnQwntMwJWhwWjvcjDMlntRsNpgSbNNpglFpVggbSVF\nQDhJWwhzJtTqLzCmtT\nPSLqTqrCrRvCSJWLdLwdVWdQWL\nzNjHQnnHjHznnbDMnMMMdVZcpZZJpZWcdJFZ\nBntfgNbzfBtHzgnbbbPPSstlQSSGGrlGsrTT\nQpBNsBzztgqVtdmp\njvrhGljRhSTlGGvjwjSwGjRvHVdqLttrMgMbtMMMVmdqqHfV\nChTvTvljmCsQQQnNsQ\nCQCNSQHHgCtNHCNHHNDJcBJwLPtJBGhMPPPJwM\nzRTqmsdRRzrmdzVRpzPwcjdwwhLjMBMGBBLw\nhprmzRmblTzTVTVrlbrmVHNWNnCZFWNNFZlnDFSWgQ\nhGGqwwdwMqsRDGRBzlvDzB\nLTNTfcCFFFCcNHFFBzRSZRBlzHPSZdvD\nnLVTFNfVVLLWnwnwdrdbhnrhrr\nhlTpcDTpHmHwDmMbbdMMMGTPdGPR\nZzFqNSQqHvBvzzqjFHtvSGRRMPQsJGJWRGWPMRdRsM\nBZjLNqNqzVVHgLVgll\nZHHBzSZPVqghJgSnBhqJRQLRRMvQpwZvfNQRMMMp\nctFCDmdDWmDGNRFMpRlwwQPP\nPrsmDmCGjtcmdjGtVqBSjJhnSbHnnghH\nQmZHTjmmHRmmdPRvHdVlPdrNNLqWzffbRtqpzfWtWsWNNW\ngwMcgnMGFGCjJLqfbtNtzzssCW\nDwMFGBwcBFjhBBhcDSJQQVQTPldTvPlVVZQSdQ\nNRTGfNffLghStLRR\nQlnWsdJWmnbWnVqWbWqHPSpmjgCjtSwhPjgtptLS\nJWchnllHqQJzGTZfTcFNDN\nVtdtcTVVCRctVdJclCVtpphpPhNGDwNPmThwWmgG\nZjZMFnfBqqMjHZHMzBnzgPGwDmhmhDPfQNGPQGfD\nBbgsnFgMgMlVdJtlcVSs\ntlBMdBnClhLJnTbgph\nPhDDczqDGPqsHGrRGPWHGPzcFJNLTTJZLNbNLfFZgTbffL\nsHsmzzrGmPrRDRHqhHwmjBVtllwtdMdBSBtl\nQscfZsGsVjVtqGmlzvRMvl\nThJNCHPTDDhHHJTJPHmlSMTtTTlBvlnMSzqn\nHhCdrHrCcpmmdVmb\nWPPBPvRWzvhWhWzGWtBqBSTLDZhgFSTCDgSgZZDCZs\nflbJmMJnjdMqNdfZZrFZZNFZgrrsTZ\nnQnqJlJdlQMMbVnVmdMplVnnBwcBPGttzQcvtHcWwWtHRHvB\nLLsmpJTWCJmJppCmgHCCLjbFtRFghzjfjcjcZttbRg\nSZlMPBdBtQfFSbSF\nnPqldlDwlBVnvdLWJVsmVNZCCVmJ\nHWvNVtHWJjHJsSgHsHzsDsmf\nRwZGPFGMQgzpTGSD\nPZMlwwqhFPPZqwFhPwnFbMjWJNNBtWNVJlCJJWJjWWzj\nfrBSzJDtztfNVGwRzVgGhqsV\nMPMmjPWGMMmPCQCcbmRwVhTgVwTTqjvRTLww\ncFpcMGFplDHfBHFS\ngtjhjLffmgjgmbgVfbNdqFJMJMNbbwrwqq\nsWHHPSJsHzTZzTGsCdrqCNNddGdGFGRC\nZpzHHTZWzsSSnBBPsTBnLVcpQfcJcQVQDQfcDfQt\nqMPqChqjQPRCMqlBrmGmLbPSsTbSvz\nnWNHZFVZZttWpfHsGSbBGTbWBSGmSm\nnZfpVfdZdtFHnwVHZtNwZhCJRJhcCdDcQhCqDSSCQc\nLlwSlZrftFSMpfLCdltTmmmSDmJqmssDVJBmJB\ncRcGGhpvDTmTDgsG\nnNPcjpWbNzjRRcWhbzWjvnLMddMLCwtdtMttddtrCdMz\nNszSsDCMSDzdZpCMCSMpNszfTvJhlvmlmrTfrhlhHPrmhD\nFRWBgRjWwqFWQFBBWjVncjRTvJfvvJvVrHhmVrHhmrdJTh\nwnwnqwRGFqdbNNtCGpCp\nzgsBvPVVDDrDtDgt\nnTHldmJQNTTfflcJNrQlHWpmDDFDFhWpWCLtFbphCm\nnTTNMlNfHQZTQPGSzVVZSVPSwr\nbPLbtPpwsJhlpnhnnLNNZDWhRNzWQrWWffNr\nSczqFdFHSTFjmMSMFVqFGCWWNRrWQQQRZCVWgQQgrZ\ndFdzFGHvjmqGMFwwLLsPnvBspnsn\nlwJwwmblVdvjbbbJvVnlmjGTTNTLqffpqDJffqGLqDLD\nZtWgPtRMtQRQnTGDQNTTqL\ngCztMgWgchHhvwlllbnl\ncCwSSCVbqwCCWSbZMmGdtBllWBfdlvdt\njzRsJjhPjnLthJNNpmpvmvvMfGvjQpGv\nnPHPFgRHLtCHZrqTcq\ndVJwCJGCVrQQGTNtLtGm\nhWWgDHBzWWWpZlhWBssLDTDsQTLLtswswL\ngPhBHpjwHcljpggwwWqvbFvdCVRqPPnnqVRb\nzRRRRNqzpQZNNRRmRcZscQcCDmCTTTDGfTbfGhrTCTrbFF\nHMvMtjgtLHVlLVfhCGfrfhJhhrvh\nLBgStjnHBjLVgggBgHndnSNNQdNWcQQNGZccwsccdQpw\njLRqmZNGtZtvZvHzPfCvSSzhCP\nQbwDVHFrVbDVrDFbzPwSThSfddhWPWzS\nrpnFDccHFHtZNmMmRntj\nRFVdzzlNtrwSTltb\nhHGcqqBcGLQZffHhMwSswSWGrnnbMStC\ncgqLBgQgpgbbPbPz\nlfcgglhfTvmlBvclbgztnSRtSmttwRJwptWR\nFMjDjsdNDjNMQLFFLCMQdtwGGzRwzpGwzdWzzJpGhn\nZQVNsVZMPsVhCQsFCFsHHlqlcBZrHHfBflbHBB\nvGGQQdwNCTJfQJHJbM\nFFqmzghlzhgqjlFqzZhmhPlRgBDLLRTTcHMbRcJHBLcgRH\nqFrPjnhZmqnhZZjhhmpPzZmtvbpwtdvsSCCsGwdNwvwNCp\nnrFdSHScdRwvdvRm\nNNpPLJJbNbppCvmzbHTbmsTw\nfWLHPlPtpMNBgGQgqggQSMGc\nBcHtrBcnjflfHslsrnltbTgvMwpWnnWpwwwCwCCRRW\ndzGhLSSGDdPNgLLdPWTqWWRMqwRWpvzMMv\nVPZZNhhNSSDhLNSLdFZBVgBbjHcgsgfrbBJbfs\nVMnWjjWTnNNCzzhblbbjlj\nFmHwfFHqpDrJzPQLPLbCDs\nGrdFfHqqSmmwHSqHfpdMNTtTtZCMMZtTRggGZR\nQRlnlTphqNfqdjZNmd\nrDtPmGctFrcgDjJcNjvNJNCcNw\nbgGDtgDbBWBSBVlblmVmsRMmLM\nCcQTQTrrmfQQhZZBpZpSSZ\nJFqSvLlLbWggDvDDFHjsdnshBZpjHBBhBW\nFgJqNvLRMlMMDDblrtfrTCStmCVtNttz\nMRRbbddqtHbMZbqMHHTFTFgwZglWPfgsZWgW\nLCcLjzCNGNcvpvLTFPmzlFsfTgFlgs\nNhNGcrCGrsrvcDpvVcSbtHQJQbnQbSdHMtJV\nbfMfBFcWFsWZHBWRPQpRqdwmMpmddm\nrSShvvVTNVhvVCCvThDlSvCwpGCmRmGQmPwmpLRLRdpq\nDhRzzVNVVgSzTFcgtnbHnHbfBB\nHsTGHHvlvvGTGlHBvlbZstrVrwNjrjVStwVVZR\nPPmgcFJPFcFWmWMgdNtVtQZtDVDVdZZjjR\nLLqWnMnmNvlBLCTzCT\nqTttLqLvGCQqCDlhml\nFJjzrRBrpjRWrCwrBrrwpRbbDzgghSmmNhPQhgNshmDSzSNm\nbJBrbFRjBVnWBrRBnHLfHGfdVtvHttcCdT\nmTzjGPmPPmPNjNBTvlJRlNJzZqrzrSZZSpcZqpgcgcggFr\nQWCwwMwWWhVZFbpQDSpSJS\nstMMsWwMwVWtwJTNNPvvRmTsNPsl\ngGFFNWMMNFTBlLpGpSll\nqvccssdDwDbhMhzwHLppTSHLrdBpBVLV\nPhJhzhMJzwDJwhZZtZQJCjgWtFjZ\npGqWfqqGcspGqWqppHprpTrzhCzttMBCtbtJmtJbSBvWBt\nQDnVPgVPgDCJBMhmBJgv\nNlZwFlnnPLLlFwDlDlnPPFFHTMTdMZjTTcjsqqcsdfGdcp\nHLzZfHWWQwpgVHjVHr\nJlMlMGGDMtJGdtJhqtlccDgVCSTFFSCSDTggpvFTjSgS\nJcGRMlthtlVNMJRfzWsPnQsnnZNZns\nzVfvMpsbtQmtBlFWBZ\nlLSrlNTNRSFRFhhHRmPR\ndnSJjjwJJGwwnzVlvpszvccM\nSmlcCrpnrnznGzSBBSfzNbtsQsWZQcFbWctcbbZb\nJHgwJPjvdghbbWdDZGNLZb\nJjghvvhRwhwJVhHTzmfRfzGSMrzBfnGC\nJbCmrbnzmntnVJjbCHJJFQFvqgJgQgqLDQ\nNGhhhhPMGhWsSSchWlNsCLBBlLFQCgqvgCFFgQBg\nPdcNWWcdGdPssPPNTSNNtzbTwjntzbbVwtZpCVnb\ntGNgtsNQHsJmwwzddmQw\nhMhhDBwMhDDfCRRBjFDDTTWjdWmrmdWqjlmmmjJz\nRSpSSBhppDhRncRLswZLGvtGvNcNtL"; + +const getPriority = (char) => { + const code = char.charCodeAt(0); + if(code < 92) { + return code - 38; + } + return code - 96; +} + +const main = async () => { + const sacks = input.split("\n").map(r => r.split('')); + let sum = 0; + console.log(sacks); + for(let i = 0; i < sacks.length; i = i + 3) { + const group = sacks.slice(i, i + 3); + console.log("Group: ", group); + const badge = group[0].find(item => group[1].includes(item) && group[2].includes(item)); + console.log("found badge: ", badge); + sum += getPriority(badge); + }; + + return sum; + +}; + + +main().then(r => console.log("Result: ", r));