2023: Day 8, part 1

This commit is contained in:
Wesley Moore 2023-12-08 21:25:22 +10:00
parent 8fcfb3c01a
commit 98d9031a83
No known key found for this signature in database
3 changed files with 841 additions and 0 deletions

43
2023/day8.rb Normal file
View file

@ -0,0 +1,43 @@
START = "AAA"
FINISH = "ZZZ"
class Node
attr_reader :name, :left, :right
def initialize(name, left, right)
@name = name
@left = left
@right = right
end
end
raw_instructions, raw_nodes = ARGF.read.split("\n\n")
nodes = Hash.new
raw_nodes.each_line do |line|
next if line.empty?
if line =~ /^([A-Z]+) = \(([A-Z]+), ([A-Z]+)\)$/
nodes[$1] = Node.new($1, $2, $3)
else
throw "unmatched line #{line}"
end
end
node = nodes[START]
instructions = raw_instructions.split("").cycle
steps = 0
while node.name != FINISH
steps += 1
instruction = instructions.next
case instruction
when "L"
node = nodes[node.left]
when "R"
node = nodes[node.right]
else
throw "unexpected instruction: '#{instruction}'"
end
end
puts "Part 1: #{steps}"

6
2023/input/day8.sample Normal file
View file

@ -0,0 +1,6 @@
LLR
AAA = (BBB, BBB)
BBB = (AAA, ZZZ)
ZZZ = (ZZZ, ZZZ)

792
2023/input/day8.txt Normal file
View file

@ -0,0 +1,792 @@
LRLRLLRLLRRRLRLLRRLRLRRLRRLLLLRRLLRLRRLRRLRLRLRRLRLLRLRLRLRRRLLRLRLRLRRLRRLRRRLRRLRRLRRLRRLRRRLRRLRLLRLLRRRLRLRLLRRRLLRRLLLLRLRRRLLRLRLRRLRRRLRLRRLRLRRLLRLRRLLRLLRRLRLLRLLRRLRRRLLRRLRLRLRRLRRLRRRLRRLRRRLLRRLRLRRRLRRRLRLRRRLRRLRRLRRLRRRLRRLRLRRRLRLRRLLRRLRRRLRLRRRLLRLRRRLRRRLRLRLRRRLLRRLLRLRRRLRRLRRRLLLRRRR
FTX = (VVM, VVM)
LNR = (DQG, CMF)
NXS = (TKM, FPB)
FQF = (HDC, NFB)
SPH = (MQB, XFB)
FDL = (CTR, NXS)
DMF = (VHG, LJV)
JBP = (CKR, VBF)
MMK = (JVC, NSS)
LLT = (MVP, QFC)
VVN = (SHF, XMN)
CRR = (QNC, JMC)
RRK = (QCR, VFT)
JXR = (DSM, RCD)
BMD = (KPL, CRR)
HQM = (LDR, LFR)
VDP = (MGM, GFQ)
HLV = (GLV, TSS)
LJQ = (VDS, LGB)
DVJ = (RJP, DTM)
VHL = (MFK, PCV)
LFH = (BTX, VPC)
NBN = (NBR, DRD)
NKB = (TRQ, LTT)
QPM = (VPQ, SQB)
VFD = (QBK, LCH)
HRX = (KJL, SJC)
RKF = (TFS, XMR)
GQK = (FVS, VDC)
DTV = (DHQ, PDG)
MHM = (KLF, QJL)
GTM = (CPP, JJT)
LBN = (RFM, KCX)
JJR = (PNN, HPG)
MDL = (BQM, RKF)
DSL = (BMD, GVK)
MQF = (JXR, SPJ)
VBF = (QVV, GTM)
MBJ = (NRH, JCX)
NRH = (CJM, KHS)
SCN = (BJC, GTN)
HRK = (KHH, TSX)
MCS = (TPF, HBM)
BQS = (VFD, MNF)
TPB = (HTS, FLR)
XVV = (XLX, GDL)
HGK = (PJC, KBT)
MXF = (MFC, FQN)
JVS = (TMB, JPF)
RFM = (FSQ, MQS)
XCG = (TPF, HBM)
CMR = (LNV, LNT)
BVF = (XXG, MRB)
KFQ = (DMF, VXS)
KVS = (VSF, PRK)
VVL = (QFC, MVP)
BNB = (GDL, XLX)
BRB = (LNR, XBR)
BJK = (QKC, SPG)
FDQ = (HQR, GQK)
JPC = (TVL, XDZ)
JCL = (SJC, KJL)
BBT = (LLL, XHB)
FNH = (NNN, LSM)
QQM = (THC, TQH)
VDB = (DDR, VSX)
MNS = (DPG, DBV)
JCS = (SNH, VDP)
BGS = (KVS, CLH)
MDS = (JXV, VFJ)
JJM = (XHG, PNJ)
NJF = (BBF, DVJ)
GKX = (KHH, TSX)
BXV = (DHM, VHR)
CMF = (NJF, VCK)
LQN = (VPV, RFH)
TST = (BMK, XSS)
SSB = (KMH, DKD)
RFH = (SSB, SFG)
XXG = (TQV, JDH)
TNT = (FNL, VNQ)
HDF = (NVD, GQR)
MQN = (HTH, FXL)
QSG = (LFP, FQF)
CKK = (GDS, FDL)
XXT = (NBM, XFJ)
PDG = (PPP, HKP)
FLV = (MBS, BVX)
HTZ = (DXG, XTB)
DPG = (TST, TPD)
DCR = (BFK, TPB)
PGD = (MBD, KBS)
FTG = (GLT, MNK)
GFK = (PMT, JDT)
HQR = (FVS, VDC)
VKD = (TQG, KVP)
KVL = (GQN, VMF)
SLT = (FFT, TXF)
ZZZ = (XCG, MCS)
JJT = (QSG, NLS)
XGL = (RRC, MRV)
DHV = (JKB, JXB)
FFV = (NPN, KVC)
LTV = (XGF, QPM)
MRB = (JDH, TQV)
QHV = (SLB, TGR)
HLD = (FXL, HTH)
GLV = (RQT, BXT)
QFC = (GLF, CMQ)
SRL = (QVM, FQM)
TMF = (BTX, VPC)
JST = (PST, SRQ)
FFX = (FJJ, MMF)
FNL = (NNT, LBM)
MVT = (SJV, TBL)
SLB = (TKV, CGV)
TQB = (CCF, VTB)
NTV = (QPM, XGF)
DXG = (NVP, JNH)
CNQ = (QFX, XRT)
VVM = (BVF, CNF)
XHG = (HRK, GKX)
PCV = (GVN, NMN)
XMR = (KST, NNH)
GQN = (BRM, FQD)
CLV = (VMQ, KFG)
TQR = (HPT, JVP)
JGH = (DPG, DBV)
BPX = (JJL, PGD)
GSH = (NDR, NDR)
TRP = (BSP, CMB)
QSD = (VSL, XTT)
DGL = (CNQ, JMT)
FFT = (GRM, KMF)
SHV = (NDR, HTZ)
TPJ = (MFB, SHN)
SHN = (TVQ, SMD)
BXJ = (CMR, STP)
RKV = (PJR, QHR)
TRQ = (JVR, QPL)
CKR = (GTM, QVV)
QQC = (FMM, DNH)
PPP = (MMS, BML)
XFP = (VXQ, XXT)
KJL = (RBJ, BKT)
KVC = (JXC, BVG)
KNL = (MDL, TBB)
PJK = (GMM, QLH)
PST = (KBH, QHQ)
HLB = (HPT, JVP)
RKG = (BCJ, PQV)
GSV = (BDF, CCK)
FBJ = (BSR, GJR)
BMK = (HPR, MRT)
PVR = (BGK, JHM)
PCX = (MRP, TRP)
JQJ = (HKT, NLD)
CMX = (VMN, FNQ)
LGQ = (QPC, XVK)
XTB = (JNH, NVP)
DBB = (GRF, RXP)
DXR = (HSK, BHF)
TKN = (LPJ, VLS)
JMC = (JCT, SBD)
XGR = (VGD, PVC)
NDR = (XTB, DXG)
TSX = (RRR, DBB)
DNR = (SLL, FPC)
QMX = (HSV, JQV)
VMS = (CFS, PJK)
JNX = (RKV, BCK)
LPJ = (HVL, SDC)
GHD = (GDT, NKL)
BMM = (XVL, SJB)
DFR = (QCB, JRD)
BQV = (XTF, FRM)
TMB = (NTK, NPR)
KDC = (CQD, DDQ)
LQX = (DXR, MQP)
SLV = (FKG, MQG)
NGP = (FVH, FVH)
NLS = (LFP, FQF)
GSS = (NSB, VVR)
JTT = (XFB, MQB)
MKN = (QHK, XGL)
TKV = (FTJ, BRB)
KHH = (DBB, RRR)
QKC = (JQL, SJJ)
BVV = (GVQ, LCP)
VTB = (XGR, LCL)
TGR = (CGV, TKV)
QVM = (SGD, QXN)
DVM = (QSD, XVD)
XRT = (PHB, QMX)
NTK = (CVB, QGV)
MQB = (FCT, JCS)
GCR = (TSN, VHL)
HDC = (GSH, GSH)
XBR = (DQG, CMF)
XDZ = (LHB, FLJ)
JNV = (TSB, FSJ)
TSB = (NDK, GVT)
RNM = (QDT, DDC)
NXL = (JGD, HNM)
JGD = (JXL, PCQ)
MRP = (CMB, BSP)
PFB = (RGM, VJQ)
GFQ = (FRL, KHJ)
VDC = (RCF, MCF)
XNV = (MDL, TBB)
TFS = (NNH, KST)
DNV = (XJG, BXP)
LBM = (JVS, CGX)
TBB = (RKF, BQM)
VSF = (BLL, HCN)
VJJ = (LPJ, VLS)
BSV = (HDF, NSX)
JHP = (LMP, PHK)
XJG = (VTL, SSG)
VPM = (KFG, VMQ)
MMS = (MPR, HJJ)
HTH = (GSS, SVJ)
HPG = (JQJ, TKR)
JCT = (DDB, CKX)
TVL = (FLJ, LHB)
FJK = (NLN, QHV)
DRD = (GGF, SLT)
XBB = (PVG, KSH)
JGX = (MNF, VFD)
SBD = (DDB, CKX)
NFB = (GSH, SHV)
HBM = (CQS, RLQ)
VSL = (VSR, JMN)
QBK = (RNT, NTX)
TMT = (BVH, SCN)
MQS = (FHL, QBP)
GVR = (MMK, QFN)
KPH = (RNG, JST)
NPG = (VRH, HGS)
CHR = (VPM, CLV)
JTJ = (VPM, CLV)
SGD = (LXP, KBL)
FXR = (BVH, SCN)
FKG = (GSV, GTK)
XFJ = (KQT, VMG)
HSV = (DCR, HJB)
QVK = (NBR, DRD)
MGM = (FRL, KHJ)
FRL = (PNB, DSL)
VCD = (VSX, DDR)
QCR = (DFJ, VQQ)
RSP = (GJR, BSR)
NFR = (KVS, CLH)
FQQ = (JNJ, RFG)
GLF = (MBG, RKX)
HPT = (RXG, NSP)
PLF = (PCX, FVV)
VDQ = (VSQ, LTB)
NGM = (LGB, VDS)
LNT = (VJS, GVP)
SJV = (HXX, VTN)
QNT = (KLF, QJL)
DHR = (XGD, KJC)
HJB = (TPB, BFK)
CHL = (NKL, GDT)
NSS = (VGJ, LCV)
LCL = (PVC, VGD)
KST = (LTV, NTV)
DDR = (RKG, VDM)
JXB = (NQC, DNJ)
LLZ = (RRK, GLG)
TKM = (DCT, CPK)
GXG = (VTB, CCF)
BJC = (TKN, VJJ)
GTN = (VJJ, TKN)
RBC = (QRX, XNN)
JVP = (NSP, RXG)
PMG = (QRX, XNN)
FXX = (VPV, RFH)
JXV = (QQM, KVV)
BTX = (MTL, HNB)
BVG = (VXM, NXL)
JVC = (LCV, VGJ)
LJV = (CHL, GHD)
PRK = (BLL, HCN)
MHC = (KVG, KMG)
MQG = (GTK, GSV)
RCD = (JGH, MNS)
FRR = (TDV, GGV)
HBH = (GBR, DSF)
HSK = (PLF, DPV)
DFQ = (RJT, MQF)
PHK = (HGJ, GNN)
RHK = (DHV, HFG)
SQG = (FCP, PDM)
VFS = (SPD, PFM)
TPD = (XSS, BMK)
PQV = (CJH, QBR)
GDL = (GCR, KTX)
JXC = (NXL, VXM)
MRV = (FNH, VQM)
TVM = (FCP, PDM)
HKL = (LSR, BRQ)
TQH = (FTG, TPN)
FTJ = (XBR, LNR)
KVG = (PJJ, FDQ)
LMP = (HGJ, GNN)
SVJ = (NSB, VVR)
XNN = (JKR, FFV)
VXS = (LJV, VHG)
FVH = (FML, RTR)
LMN = (XXH, XXH)
QJD = (PGJ, PGJ)
KMF = (CVF, TRC)
XVD = (XTT, VSL)
PMT = (GML, DPT)
DBV = (TPD, TST)
STB = (VHR, DHM)
HJJ = (PJV, HLV)
GJC = (GDS, FDL)
PGH = (PGJ, LLZ)
MBB = (JCX, NRH)
BVX = (JHP, VRP)
HPR = (GPM, BMM)
QXN = (KBL, LXP)
VRH = (NFR, BGS)
TKR = (HKT, NLD)
KHK = (DNV, MBP)
LCP = (MXM, HXP)
BJM = (XLV, XRG)
NNN = (BNH, FRP)
NTX = (STG, JCD)
FMM = (FFX, JCH)
VPC = (MTL, HNB)
FKC = (XDD, TTL)
XHB = (KHK, RCM)
HRB = (QVK, NBN)
FPC = (CPR, GQP)
STA = (BVF, CNF)
VPQ = (QPK, FNV)
RDD = (FKG, MQG)
AAA = (MCS, XCG)
VLS = (HVL, SDC)
JCX = (CJM, KHS)
GNN = (FQL, BSV)
XGD = (PQK, BXJ)
NDK = (CLT, MHC)
XLV = (HQS, KTL)
DGQ = (CKR, VBF)
VRP = (LMP, PHK)
GTK = (BDF, CCK)
BKP = (RSR, BNN)
CFS = (GMM, QLH)
SFG = (KMH, DKD)
TTL = (HKL, DGF)
CHB = (MFC, MFC)
HXP = (JBP, DGQ)
SPD = (GFK, SXN)
LLJ = (MBJ, MBB)
JRD = (QGT, XMV)
HQS = (LFH, TMF)
CVB = (CCL, PFB)
QBF = (PJK, CFS)
QJL = (HRD, CMX)
QFX = (PHB, QMX)
NSB = (QGG, HKQ)
HCV = (CHR, JTJ)
RMM = (BCK, RKV)
FRT = (CFL, SHK)
QPC = (BRJ, VFS)
RXG = (TKX, BJM)
STG = (PNF, GVR)
LTC = (JRD, QCB)
GVQ = (MXM, HXP)
KTL = (TMF, LFH)
DGF = (LSR, BRQ)
CLT = (KMG, KVG)
KBH = (JGX, BQS)
NBM = (KQT, VMG)
XMN = (HQM, NVS)
HCN = (TPJ, LJK)
TDS = (RJT, MQF)
LTB = (DGL, KQH)
VNQ = (NNT, LBM)
BLQ = (KJC, XGD)
GDS = (NXS, CTR)
FRM = (GVX, LBN)
GML = (QNT, MHM)
QNC = (SBD, JCT)
RQT = (TQB, GXG)
GGV = (XVV, BNB)
HFG = (JKB, JXB)
VJQ = (NPG, PPK)
GDT = (NSH, PMX)
VMF = (BRM, FQD)
HKQ = (QCX, FLV)
VVR = (HKQ, QGG)
JQL = (TQR, HLB)
BXP = (SSG, VTL)
KBS = (LJQ, NGM)
BNH = (DFR, LTC)
BSR = (QBF, VMS)
RFG = (GCH, FXF)
XGZ = (CNF, BVF)
VMG = (KKT, VKD)
JCH = (FJJ, MMF)
QHX = (CHB, MXF)
FXL = (GSS, SVJ)
CCL = (VJQ, RGM)
GMM = (RDD, SLV)
FFN = (VXS, DMF)
CFK = (FMM, DNH)
BKT = (JFV, MVQ)
HTJ = (HFQ, KJH)
BQM = (XMR, TFS)
LJK = (SHN, MFB)
CGX = (JPF, TMB)
PHB = (HSV, JQV)
FVS = (MCF, RCF)
LFG = (JST, RNG)
FLC = (XXH, PRN)
JFC = (GBR, DSF)
FRP = (LTC, DFR)
MTL = (FBJ, RSP)
GLG = (QCR, VFT)
MNF = (LCH, QBK)
NVP = (HBH, JFC)
CJS = (TNT, RNF)
QCX = (MBS, BVX)
KJC = (BXJ, PQK)
TMZ = (RTR, FML)
QGG = (FLV, QCX)
XSS = (HPR, MRT)
RNG = (PST, SRQ)
KKM = (PJC, KBT)
FQM = (SGD, QXN)
QDT = (PHQ, QHX)
DPT = (MHM, QNT)
KFG = (VBX, KDC)
NPN = (JXC, BVG)
RNT = (STG, JCD)
PNF = (QFN, MMK)
MPS = (FVH, TMZ)
LHB = (VVN, CKN)
FCP = (XBB, BFC)
CKX = (FXX, LQN)
XLX = (GCR, KTX)
QFN = (NSS, JVC)
FML = (BPX, KDV)
CPP = (QSG, NLS)
FQL = (HDF, NSX)
GVT = (CLT, MHC)
NDN = (MBJ, MBB)
GPA = (GLG, RRK)
PGB = (XFX, RHX)
RRC = (VQM, FNH)
MQP = (HSK, BHF)
GLT = (XFP, JMV)
GVN = (JTT, SPH)
CPK = (BBT, PXB)
KCX = (FSQ, MQS)
KQH = (JMT, CNQ)
JQV = (DCR, HJB)
CVF = (HRX, JCL)
TQG = (NGP, NGP)
GVP = (BJK, NMS)
NVS = (LFR, LDR)
NKL = (PMX, NSH)
SKF = (KJH, HFQ)
NSP = (BJM, TKX)
JHM = (VDB, VCD)
DPV = (PCX, FVV)
LLL = (KHK, RCM)
XVK = (VFS, BRJ)
JNH = (JFC, HBH)
HGS = (BGS, NFR)
VMQ = (VBX, KDC)
DSM = (MNS, JGH)
HXX = (SKF, HTJ)
LXP = (BJH, FJS)
TVQ = (CQV, FRR)
RJT = (JXR, SPJ)
RRR = (RXP, GRF)
TKX = (XLV, XRG)
MVP = (CMQ, GLF)
BGK = (VDB, VCD)
TQV = (MVT, TNC)
DDB = (LQN, FXX)
FQN = (HGT, ZZZ)
DQG = (VCK, NJF)
MRT = (GPM, BMM)
QGV = (CCL, PFB)
GRM = (CVF, TRC)
FLJ = (VVN, CKN)
BRM = (LLJ, NDN)
NQF = (FTX, TJR)
JKB = (NQC, DNJ)
CMQ = (RKX, MBG)
FLR = (XNV, KNL)
TPF = (RLQ, CQS)
JMT = (XRT, QFX)
MVS = (PDG, DHQ)
BRQ = (MNN, SRL)
QDG = (FTX, FTX)
NLN = (TGR, SLB)
PHQ = (CHB, CHB)
QRX = (JKR, FFV)
FJS = (LVV, DVM)
JDT = (DPT, GML)
HNB = (FBJ, RSP)
KPL = (JMC, QNC)
LFR = (MCR, BQV)
JPF = (NTK, NPR)
VHG = (GHD, CHL)
KQT = (KKT, VKD)
LKA = (XTB, DXG)
JXL = (GCM, RHK)
FQD = (LLJ, NDN)
CCF = (XGR, LCL)
FNV = (LQX, KMS)
MBS = (JHP, VRP)
RGM = (NPG, PPK)
CQS = (TTB, CJS)
DFJ = (KVL, RJG)
RQQ = (LGQ, HPV)
PBF = (STB, BXV)
NBT = (QHK, XGL)
PRN = (PVT, JPC)
CBF = (FKC, KKL)
PVC = (DFQ, TDS)
THC = (FTG, TPN)
LCV = (GJC, CKK)
SJB = (QJD, PGH)
HNS = (TMT, FXR)
TJR = (VVM, XGZ)
PQK = (STP, CMR)
MBG = (CCX, FJK)
KKL = (TTL, XDD)
PXB = (LLL, XHB)
RTR = (KDV, BPX)
PJC = (DTV, MVS)
DDQ = (TFD, GSR)
QCB = (QGT, XMV)
MBD = (NGM, LJQ)
VTD = (BGK, JHM)
CJH = (RNM, JRQ)
VHR = (CBF, XCQ)
QPK = (KMS, LQX)
BBJ = (FXR, TMT)
JCD = (GVR, PNF)
NBR = (SLT, GGF)
PNJ = (HRK, GKX)
VXM = (HNM, JGD)
JFV = (RQQ, TKD)
FHL = (JSL, DNR)
VQM = (NNN, LSM)
CKN = (SHF, XMN)
NMS = (SPG, QKC)
FNQ = (JHK, TFV)
SSG = (FKV, BPG)
XFB = (JCS, FCT)
RSR = (PBF, HCX)
KBL = (FJS, BJH)
HKT = (PVR, VTD)
CPR = (FSN, JRH)
BDF = (HGK, KKM)
KVP = (NGP, MPS)
LNV = (VJS, GVP)
SXN = (PMT, JDT)
HGT = (MCS, XCG)
TNC = (TBL, SJV)
KKT = (TQG, TQG)
KTX = (VHL, TSN)
XFX = (GXX, HRB)
VQQ = (RJG, KVL)
KHJ = (DSL, PNB)
GCH = (NRR, NKB)
VPV = (SSB, SFG)
KMS = (MQP, DXR)
QPL = (JJM, NDS)
FVV = (MRP, TRP)
MQV = (RSR, BNN)
XGF = (SQB, VPQ)
DDC = (PHQ, QHX)
PQH = (FSJ, TSB)
SGV = (VSQ, LTB)
SHF = (HQM, NVS)
CCX = (NLN, QHV)
SPG = (JQL, SJJ)
HGJ = (FQL, BSV)
MNN = (QVM, FQM)
PJJ = (GQK, HQR)
TDV = (BNB, XVV)
PNB = (BMD, GVK)
GQR = (MKN, NBT)
MPR = (HLV, PJV)
JSL = (FPC, SLL)
QHK = (RRC, MRV)
FSN = (CFK, QQC)
HFQ = (KPH, LFG)
BRJ = (PFM, SPD)
PJR = (HLD, MQN)
KVJ = (GVQ, LCP)
VCK = (BBF, DVJ)
LSR = (SRL, MNN)
HVL = (QDG, QDG)
KBT = (DTV, MVS)
GGF = (TXF, FFT)
DKD = (TVM, SQG)
DNJ = (LMN, FLC)
NNH = (NTV, LTV)
TRC = (JCL, HRX)
BML = (HJJ, MPR)
BJH = (LVV, DVM)
QHQ = (JGX, BQS)
PMX = (MDS, THH)
JJL = (KBS, MBD)
BFC = (PVG, KSH)
HKP = (BML, MMS)
FNT = (KVJ, BVV)
JKR = (KVC, NPN)
VBR = (BVV, KVJ)
BCJ = (QBR, CJH)
FPB = (CPK, DCT)
XMV = (FFN, KFQ)
CQD = (TFD, GSR)
DFA = (FML, RTR)
KMH = (TVM, SQG)
JMN = (RMM, JNX)
JDH = (MVT, TNC)
GPM = (XVL, XVL)
DHQ = (PPP, HKP)
XTF = (GVX, LBN)
RBJ = (JFV, MVQ)
XXH = (PVT, PVT)
RJP = (HNS, BBJ)
JRQ = (QDT, DDC)
KMG = (PJJ, FDQ)
MFK = (NMN, GVN)
KSH = (JJR, JHJ)
XTT = (VSR, JMN)
RHX = (HRB, GXX)
VSQ = (DGL, KQH)
GJR = (VMS, QBF)
VMN = (JHK, TFV)
HTS = (KNL, XNV)
LVV = (QSD, XVD)
BHF = (PLF, DPV)
QLH = (RDD, SLV)
VDS = (JNV, PQH)
RCF = (MQV, BKP)
LDR = (MCR, BQV)
VTN = (SKF, HTJ)
TPN = (MNK, GLT)
QVV = (CPP, JJT)
KLF = (HRD, CMX)
JHK = (FNT, VBR)
DSF = (PGB, CCS)
NMN = (SPH, JTT)
SNH = (GFQ, MGM)
CFL = (VVL, LLT)
MVQ = (TKD, RQQ)
KDV = (PGD, JJL)
KHS = (HCV, FDS)
GVK = (KPL, CRR)
NLD = (PVR, VTD)
BBF = (DTM, RJP)
SDC = (QDG, NQF)
SLL = (CPR, GQP)
FJJ = (VDQ, SGV)
MFB = (TVQ, SMD)
JNJ = (FXF, GCH)
VFJ = (QQM, KVV)
GVX = (RFM, KCX)
PCQ = (RHK, GCM)
CGV = (FTJ, BRB)
XDD = (HKL, DGF)
CLH = (VSF, PRK)
QBR = (JRQ, RNM)
BNN = (PBF, HCX)
DNH = (FFX, JCH)
BSP = (FQQ, PDQ)
TFV = (FNT, VBR)
GCM = (HFG, DHV)
CMB = (PDQ, FQQ)
FXF = (NRR, NKB)
VSR = (RMM, JNX)
NSX = (GQR, NVD)
GRF = (RBC, PMG)
JRH = (CFK, QQC)
FCT = (VDP, SNH)
FSQ = (QBP, FHL)
MBP = (XJG, BXP)
FSJ = (GVT, NDK)
NVD = (NBT, MKN)
NRR = (LTT, TRQ)
MCF = (MQV, BKP)
SQB = (QPK, FNV)
HPV = (QPC, XVK)
PFM = (SXN, GFK)
TTB = (TNT, RNF)
HRD = (FNQ, VMN)
PGJ = (GLG, RRK)
XCQ = (KKL, FKC)
CQV = (TDV, GGV)
CJM = (FDS, HCV)
LTT = (JVR, QPL)
BVH = (GTN, BJC)
STP = (LNV, LNT)
QGT = (FFN, KFQ)
VTL = (FKV, BPG)
MNK = (JMV, XFP)
VXQ = (NBM, XFJ)
KKA = (FLJ, LHB)
SRQ = (KBH, QHQ)
VSX = (VDM, RKG)
CQM = (CFL, SHK)
PNN = (JQJ, TKR)
KVV = (TQH, THC)
MXM = (JBP, DGQ)
TSN = (PCV, MFK)
XRG = (HQS, KTL)
PVT = (TVL, TVL)
LFP = (HDC, HDC)
CCK = (KKM, HGK)
SHK = (VVL, LLT)
RLQ = (TTB, CJS)
BPG = (FRT, CQM)
TSS = (RQT, BXT)
CCS = (RHX, XFX)
NQC = (LMN, FLC)
BXT = (GXG, TQB)
PJV = (TSS, GLV)
NSH = (MDS, THH)
NDS = (XHG, PNJ)
TFD = (DHR, BLQ)
PDQ = (JNJ, RFG)
VGD = (DFQ, TDS)
DCT = (PXB, BBT)
LCH = (NTX, RNT)
MFC = (HGT, HGT)
DTM = (HNS, BBJ)
FDS = (CHR, JTJ)
BLL = (LJK, TPJ)
GXX = (QVK, NBN)
JMV = (XXT, VXQ)
LSM = (BNH, FRP)
JHJ = (PNN, HPG)
RKX = (FJK, CCX)
RXP = (PMG, RBC)
RJG = (GQN, VMF)
HCX = (BXV, STB)
PDM = (BFC, XBB)
SJJ = (HLB, TQR)
BFK = (FLR, HTS)
VJS = (NMS, BJK)
CNF = (XXG, MRB)
VDM = (PQV, BCJ)
QHR = (HLD, MQN)
SJC = (BKT, RBJ)
RCM = (MBP, DNV)
QBP = (DNR, JSL)
MMF = (SGV, VDQ)
VGJ = (CKK, GJC)
VBX = (DDQ, CQD)
GQP = (JRH, FSN)
BCK = (PJR, QHR)
VFT = (DFJ, VQQ)
CTR = (TKM, FPB)
NPR = (QGV, CVB)
SPJ = (RCD, DSM)
NNT = (CGX, JVS)
MCR = (FRM, XTF)
TBL = (VTN, HXX)
GSR = (DHR, BLQ)
PPK = (VRH, HGS)
PVG = (JHJ, JJR)
TXF = (KMF, GRM)
TKD = (HPV, LGQ)
RNF = (VNQ, FNL)
THH = (JXV, VFJ)
GBR = (PGB, CCS)
LGB = (PQH, JNV)
DHM = (XCQ, CBF)
FKV = (CQM, FRT)
SMD = (CQV, FRR)
HNM = (JXL, PCQ)
JVR = (NDS, JJM)
KJH = (KPH, LFG)
XVL = (QJD, QJD)