diff --git a/08/08-1.py b/08/08-1.py
new file mode 100644
index 0000000..fbeba64
--- /dev/null
+++ b/08/08-1.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+dic = {}
+rl = ""
+source = "AAA"
+dest = "ZZZ"
+counter = 0
+
+# parse input
+input_file = open("input", "r")
+for line in input_file:
+ line = line.strip()
+ if line == "":
+ continue
+ elif "=" in line:
+ line = line.split("=")
+ dic[line[0].strip()] = line[1].replace("(", "").replace(")", "").replace(" ", "").split(",")
+ else:
+ rl = line
+input_file.close()
+
+
+def left_or_right(zahl):
+ i = zahl % len(rl)
+ return rl[i]
+
+
+while source != dest:
+ x = left_or_right(counter)
+ counter += 1
+ if x == "R":
+ source = dic[source][1]
+ elif x == "L":
+ source = dic[source][0]
+
+print(source, dest)
+print(rl)
+print(dic)
+print(f"Lösungschritte: {counter}")
diff --git a/08/08-2.py b/08/08-2.py
new file mode 100644
index 0000000..6b25093
--- /dev/null
+++ b/08/08-2.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+from time import time
+
+startzeit = time()
+dic = {}
+rl = ""
+source = []
+counter = 0
+all_end_z = False
+
+# parse input
+input_file = open("input", "r")
+for line in input_file:
+ line = line.strip()
+ if line == "":
+ continue
+ elif "=" in line:
+ line = line.split("=")
+ dic[line[0].strip()] = line[1].replace("(", "").replace(")", "").replace(" ", "").split(",")
+ else:
+ rl = line
+input_file.close()
+
+
+def left_or_right(zahl):
+ j = zahl % len(rl)
+ return rl[j]
+
+
+for key in dic.keys():
+ if key.endswith("A"):
+ source.append(key)
+
+print("Start:", source)
+
+
+def all_z_at_end():
+ for s in source:
+ if s[2] != "Z":
+ return False
+ return True
+
+
+while not all_z_at_end():
+ x = left_or_right(counter)
+ counter += 1
+ for i in range(len(source)):
+ if x == "R":
+ source[i] = dic[source[i]][1]
+ elif x == "L":
+ source[i] = dic[source[i]][0]
+
+print("End:", source)
+print("RL-Folge", rl)
+print("dictonary:", dic)
+print(f"Lösungschritte: {counter}")
+print(f"benötigte Zeit in s: {int(time()-startzeit)}")
diff --git a/08/08-2a.py b/08/08-2a.py
new file mode 100644
index 0000000..435beea
--- /dev/null
+++ b/08/08-2a.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+from time import time
+from itertools import chain
+
+startzeit = time()
+dic = {}
+rl = ""
+source = []
+counter = 0
+all_end_z = False
+
+# parse input
+input_file = open("input", "r")
+for line in input_file:
+ line = line.strip()
+ if line == "":
+ continue
+ elif "=" in line:
+ line = line.split("=")
+ dic[line[0].strip()] = line[1].replace("(", "").replace(")", "").replace(" ", "").split(",")
+ else:
+ rl = line
+input_file.close()
+
+
+def left_or_right(zahl):
+ j = zahl % len(rl)
+ return rl[j]
+
+
+for key in dic.keys():
+ if key.endswith("A"):
+ source.append(key)
+
+print("Start:", source)
+
+loops = []
+for s in source:
+ counter = 0
+ zcount = 0
+ ss = s
+ out = []
+ while zcount < 1:
+ x = left_or_right(counter)
+ counter += 1
+ if x == "R":
+ ss = dic[ss][1]
+ elif x == "L":
+ ss = dic[ss][0]
+ out.append(ss)
+ if ss.endswith("Z"):
+ zcount += 1
+ print(s, counter)
+ loops.append(counter)
+print(loops)
+
+teiler_liste = []
+for n in loops:
+ li = []
+ for i in chain([2], range(3, n // 2 + 1, 2)):
+ while n % i == 0:
+ li.append(i)
+ teiler_liste.append(i)
+ n = n // i
+ if i > n:
+ break
+ if not li:
+ teiler_liste.append(n)
+
+print("Teilerliste:", teiler_liste)
+
+unique_teiler = []
+for teiler in teiler_liste:
+ if teiler not in unique_teiler:
+ unique_teiler.append(teiler)
+solution = 1
+for tt in unique_teiler:
+ solution *= tt
+print("Lösung:", solution)
diff --git a/08/input b/08/input
new file mode 100644
index 0000000..9bca51e
--- /dev/null
+++ b/08/input
@@ -0,0 +1,800 @@
+LRRLLRLLRRRLRRLRLRRRLRLLRLRRLRRRLRRRLRRLRRRLRLRRRLRLRRLRLRRRLRRLLRRLLLRRLRLRRRLRLRRRLRRLRRRLRLLRRLRRLRLRRRLRRRLRRLRRLLRLLRRRLRLRRLRRRLRRLRRRLRRRLLLLRRLRLRRRLRRRLLRRLLRRLRRRLRRRLRLRLLRRLRLRLRLRLRRLRLRLRRRLRRLRRLRRLRRRLRLRRRLRLRRLRLLLLRRRLLRRRLRLLRRRLRLLRRRLLRRLRLRLRLRLLLLRRLRRRLRLLRRLRRRLRRRLRLRRLRRLRLLRRRR
+
+HQV = (LSD, NCQ)
+TLQ = (VLQ, KVB)
+LND = (BFJ, LGF)
+SRL = (VXG, BRQ)
+BQJ = (FPN, QLP)
+RCP = (RBR, RTQ)
+KJL = (TVF, MMF)
+XRF = (RQT, MQT)
+TVR = (HLG, KJQ)
+QJC = (DLG, HVL)
+HQL = (JKK, SNF)
+JHK = (LRD, DDR)
+PVM = (XJD, KXM)
+VCQ = (TTT, JMS)
+KHQ = (SRH, BJC)
+TKV = (VXX, GTG)
+NTQ = (CCC, SHP)
+PMB = (HCJ, PXT)
+FFL = (FFT, HLS)
+RFL = (CCS, QML)
+PGB = (QQN, XMC)
+CJX = (RNX, CHJ)
+DBP = (RFK, FHH)
+FLP = (MBM, MPS)
+KBH = (MVJ, LHL)
+FVF = (RJB, VSD)
+RRQ = (BGH, BTC)
+SNF = (XJG, SLG)
+VHX = (NFH, MRC)
+LSD = (SPJ, FJD)
+DJP = (BPM, NRG)
+RTR = (JHQ, VPS)
+VFH = (RRN, HXX)
+RRB = (CVM, CHM)
+RRK = (KXG, RST)
+HTF = (FQC, PMB)
+XDJ = (LXC, MJV)
+KTD = (XMX, GNP)
+RST = (MGN, DCK)
+BFF = (TMH, DDV)
+FBP = (TNQ, HBV)
+VKT = (VTK, XNB)
+HVX = (SMQ, TQJ)
+NSG = (FDR, TGD)
+MKB = (KJD, SGP)
+XNV = (DNT, BQQ)
+NQR = (HQP, FFV)
+RDV = (KLT, DHD)
+HFV = (BLF, DPZ)
+MCM = (PBL, KCJ)
+SRC = (LNL, PVD)
+DLH = (QHM, KSX)
+TMF = (VNF, SRC)
+LKB = (DDK, VNL)
+PJT = (LHJ, RJF)
+BPS = (BST, THS)
+VFT = (KJL, RHH)
+CSN = (DJP, QJD)
+XKR = (DXS, XLT)
+HHM = (JBR, FNJ)
+NJD = (QCV, GPN)
+SHP = (TNC, FLJ)
+FPL = (FPD, CHV)
+HMM = (VCQ, CDF)
+QKK = (JQM, RKF)
+DDV = (RGH, CLR)
+DCF = (FVM, KQM)
+QNM = (SXD, VJT)
+FQA = (FDR, TGD)
+VCM = (SKD, VBP)
+DMD = (RLB, GVF)
+NVK = (HVT, ZZZ)
+FVQ = (STM, CHH)
+SFT = (FFL, SHM)
+NNT = (VXG, BRQ)
+GMV = (XRS, CBP)
+VVT = (QHM, KSX)
+DNM = (QBF, MGD)
+DVX = (SQN, DBP)
+KKS = (VHB, CDQ)
+NSF = (LJH, PVJ)
+DXS = (QNM, GSJ)
+DLV = (LBD, PLB)
+FSQ = (XPV, THH)
+MFB = (KNB, XHC)
+RHS = (QLC, GKK)
+PRD = (FSQ, KMG)
+BJK = (SJF, TVR)
+TXV = (NKJ, NDD)
+HHP = (GJC, NXF)
+JCC = (XGB, XGB)
+DQX = (QMX, KHT)
+NXF = (GSG, MXD)
+VQP = (NDC, CJT)
+KMG = (THH, XPV)
+BFV = (FPN, QLP)
+HND = (JDM, RLS)
+QJD = (BPM, NRG)
+TCH = (PJB, JMX)
+CRD = (DLT, QJC)
+LMG = (LSX, LSX)
+FPZ = (KRF, JND)
+VBD = (KLQ, PJT)
+CCQ = (MLX, KGB)
+QLC = (KNN, KNN)
+RBK = (TQJ, SMQ)
+PVK = (XHX, JGN)
+CLQ = (MLR, RKQ)
+SHS = (HVT, HVT)
+DDT = (TPJ, RNV)
+MCL = (JMT, JTQ)
+VNF = (PVD, LNL)
+CDF = (JMS, TTT)
+PHL = (HDQ, MXG)
+LPK = (LMG, CJH)
+SLG = (QDD, LVX)
+DLL = (JJJ, PDH)
+JSA = (NLQ, NJD)
+SQN = (RFK, FHH)
+TLN = (XBJ, GDG)
+PVD = (RTP, FJR)
+GVH = (QKK, VFN)
+VKK = (GLF, MFB)
+CGF = (HHP, LJB)
+DDK = (DLQ, SMR)
+LST = (XFP, TKM)
+RVL = (DDR, LRD)
+MNR = (MFM, TNP)
+TQX = (TQB, GVQ)
+XMH = (MKP, PXS)
+SDT = (QFN, JDX)
+GJA = (DLH, VVT)
+RBX = (MRC, NFH)
+MQM = (HMM, FJH)
+GVS = (JGJ, PTM)
+XBJ = (VSG, DXV)
+NKT = (DGD, LND)
+TNC = (RBK, HVX)
+GRT = (BFV, BQJ)
+JPL = (MVJ, LHL)
+MXH = (CMD, MQM)
+RJB = (TVN, BFF)
+GSJ = (SXD, VJT)
+PKT = (GNF, XLM)
+RNX = (BXR, XQR)
+GMX = (KKN, HLL)
+PVR = (JJN, CSN)
+KVB = (HTF, DHC)
+QFN = (KXC, JVX)
+GKK = (KNN, HFV)
+LPM = (LMG, LMG)
+HLG = (NSG, NSG)
+XPV = (TBV, DQD)
+PHR = (SSD, NGM)
+RKN = (QVM, LRV)
+GNS = (NPL, RCP)
+BGB = (NLG, RGT)
+DVL = (LVF, MKC)
+HVJ = (KXX, MVF)
+SNT = (CPM, VFT)
+FRD = (BVP, GMM)
+FFT = (HDG, HRL)
+QQQ = (BVP, GMM)
+DGJ = (PCJ, GMV)
+HQP = (DNM, XVF)
+PRV = (GXL, FBQ)
+BQQ = (XBV, RHN)
+MHL = (VBP, SKD)
+KXC = (CRV, RPJ)
+HMQ = (XFP, TKM)
+HCX = (RVB, DDT)
+SBK = (RFL, XNT)
+QCV = (HCX, MXV)
+RRN = (PFQ, DDB)
+FDG = (CLB, XQG)
+KVP = (VSM, QBQ)
+GBD = (FPF, FHP)
+GVR = (KBG, XDJ)
+DTS = (KHQ, JVS)
+CHJ = (BXR, XQR)
+XDR = (FCL, FNM)
+XVF = (QBF, MGD)
+LVF = (XNV, PTH)
+TMV = (SJF, SJF)
+ZZZ = (GCC, XRF)
+STM = (QRT, GFH)
+GCC = (MQT, RQT)
+PPN = (CHJ, RNX)
+FPN = (CGF, DHN)
+KLT = (DGP, BKF)
+XBV = (HSG, BHD)
+FNZ = (TGD, FDR)
+VHR = (QLC, QLC)
+JCM = (TCH, GJB)
+SHC = (LPM, LPK)
+RTP = (XRJ, HHM)
+HVT = (XRF, GCC)
+KDB = (MSC, JRB)
+FDR = (PRD, XFR)
+NLL = (SQN, DBP)
+FJD = (JNT, HXR)
+RHD = (BNH, BNV)
+XQF = (SNF, JKK)
+LLC = (PDP, CJC)
+KMC = (CMD, MQM)
+KHT = (FBK, SFT)
+NFH = (BLC, PHR)
+PBL = (LLC, GJG)
+KLD = (LRJ, BND)
+XJG = (QDD, LVX)
+DPK = (XGJ, RRD)
+FHH = (FVQ, DPN)
+PMX = (QNF, STR)
+BXR = (XVP, QMK)
+XFR = (FSQ, KMG)
+JJN = (QJD, DJP)
+XQS = (CCQ, MMV)
+VND = (BHT, LNJ)
+PTH = (DNT, BQQ)
+MLC = (DJD, LCM)
+TKT = (BMT, BJP)
+NLG = (XDC, BPC)
+GTG = (SHC, BLH)
+NKJ = (GRT, NTH)
+MTX = (BQH, SNN)
+CLN = (VXX, GTG)
+QML = (DTM, FDG)
+PJB = (SNT, TXC)
+MHP = (RCV, PHL)
+JNQ = (MFS, DST)
+KHM = (JRL, FDK)
+TNK = (PRG, JRP)
+KPH = (NNT, SRL)
+FDP = (RLN, GVH)
+PSG = (RHG, KVP)
+JQM = (HFK, NMN)
+VNT = (DPK, QHD)
+RQT = (BHQ, SKT)
+BMT = (VQN, HNQ)
+HFK = (GCL, XRB)
+SJM = (KBG, XDJ)
+VJF = (RGX, SNR)
+DTM = (CLB, XQG)
+FJR = (XRJ, HHM)
+SPJ = (JNT, HXR)
+TQB = (VXH, HTV)
+XHC = (VCM, MHL)
+HCJ = (FRR, GRB)
+BQK = (MKM, KKS)
+SKD = (QDG, QQV)
+PTM = (VNT, XQD)
+SMQ = (MCL, JDJ)
+KQP = (PRG, JRP)
+PBC = (BHX, QLT)
+MKC = (PTH, XNV)
+DBG = (RKG, VRH)
+BTC = (RFS, CMX)
+HRR = (RRN, HXX)
+JHL = (MCK, VKT)
+DDM = (PDK, BBF)
+DTG = (CNK, VKD)
+GRB = (HGN, FVF)
+XHX = (TLN, GRL)
+VPL = (CJX, PPN)
+HLS = (HDG, HRL)
+SFC = (HQL, XQF)
+MTH = (NLQ, NJD)
+PBF = (THK, FLP)
+DFV = (KJP, NKT)
+RBS = (JNQ, PFS)
+BXN = (SHP, CCC)
+PDH = (MCM, NRQ)
+GLF = (XHC, KNB)
+KBG = (LXC, MJV)
+XRB = (RBQ, TVP)
+FLV = (TKV, CLN)
+BHQ = (KBH, JPL)
+GLS = (KLT, DHD)
+NJN = (NSS, GSN)
+LDV = (XLT, DXS)
+MCK = (XNB, VTK)
+LHJ = (RDL, KPH)
+KJQ = (NSG, FNZ)
+DJD = (SBG, JHH)
+LHL = (BPK, MNH)
+SXV = (FMR, MQS)
+QDD = (JCC, KHV)
+CVM = (XSX, QDB)
+LGF = (FPL, PBK)
+TCG = (STR, QNF)
+HDG = (MTN, QHV)
+GJB = (PJB, JMX)
+NTL = (PLB, LBD)
+SQK = (FJV, XMH)
+KDL = (SNN, BQH)
+NSS = (PCP, KDB)
+GDG = (DXV, VSG)
+HTG = (FHN, XCT)
+FRR = (FVF, HGN)
+XQD = (QHD, DPK)
+FRT = (JHL, RRL)
+SVQ = (BBF, PDK)
+JJX = (XVJ, BLG)
+SNR = (GXH, NJN)
+DJG = (GHX, BVD)
+GNP = (PBC, XKL)
+XDC = (XTS, GNS)
+DHN = (HHP, LJB)
+RVG = (TFF, RTR)
+CVC = (VFH, HRR)
+BPC = (GNS, XTS)
+BVP = (RDK, TXV)
+DDR = (PMX, TCG)
+MJV = (QLD, DGJ)
+JGN = (GRL, TLN)
+THH = (TBV, DQD)
+BNF = (GJB, TCH)
+XVP = (TTX, KQH)
+SHB = (NTL, DLV)
+QCK = (FMR, MQS)
+VRH = (XJP, DMD)
+BLF = (DLH, VVT)
+TBX = (JSM, GHP)
+JMX = (TXC, SNT)
+JDM = (TMF, PVC)
+XMX = (PBC, XKL)
+CMD = (FJH, HMM)
+BCX = (CSN, JJN)
+QGG = (KJT, KHM)
+CJT = (GRV, PPS)
+CLR = (DDJ, STP)
+MPS = (CVR, NFD)
+FHP = (HST, NQR)
+THK = (MBM, MPS)
+BRB = (XMS, JGG)
+CHH = (QRT, GFH)
+FPD = (TBX, PSN)
+FDK = (VHR, RHS)
+XMS = (TMV, BJK)
+XRJ = (JBR, FNJ)
+GSN = (PCP, KDB)
+QGD = (KVB, VLQ)
+FMT = (BMK, LNK)
+LSX = (FMT, FMT)
+MMJ = (LKB, FHL)
+NCJ = (RBS, QBJ)
+SSD = (FNK, RRQ)
+PVG = (TFL, SBK)
+LNK = (DTG, TLL)
+KSX = (JTJ, DBG)
+KNB = (VCM, MHL)
+CBP = (LKF, BRB)
+KCP = (HMQ, LST)
+BVD = (QND, GDD)
+TLL = (CNK, VKD)
+RDK = (NKJ, NDD)
+TFL = (XNT, RFL)
+TXR = (HJH, HND)
+VBJ = (FMT, PKZ)
+QBJ = (JNQ, PFS)
+PQR = (BMT, BJP)
+MGN = (XPX, MFD)
+NMB = (MVF, KXX)
+MNH = (BNF, JCM)
+KKN = (TCQ, MTC)
+MXG = (VTT, FRT)
+NLV = (TNQ, HBV)
+SGP = (XKR, LDV)
+QTS = (KXG, RST)
+XGJ = (NSF, QNH)
+QLD = (PCJ, GMV)
+MGD = (QKR, MSB)
+GGD = (SJM, GVR)
+TLD = (QBP, XGQ)
+TBN = (BPS, VHJ)
+FNK = (BGH, BTC)
+NKK = (DDM, SVQ)
+XQG = (MJR, SPB)
+PFQ = (TLD, XPL)
+VFN = (JQM, RKF)
+GRV = (BJM, VFK)
+CJH = (LSX, VBJ)
+DBV = (KLD, XMM)
+JSP = (DJG, MRM)
+KRF = (RBC, RRB)
+PVJ = (MTX, KDL)
+JRP = (JPH, MLC)
+XNT = (QML, CCS)
+FRL = (MRM, DJG)
+JTF = (JFX, FPZ)
+BLG = (FDC, PVM)
+PCP = (MSC, JRB)
+GHX = (GDD, QND)
+STP = (NLV, FBP)
+BMN = (TXX, GKL)
+JDX = (KXC, JVX)
+BRQ = (TQD, PGB)
+VXG = (PGB, TQD)
+CMX = (DHT, RHD)
+STR = (SCK, BLK)
+DGD = (BFJ, LGF)
+FJM = (TKT, PQR)
+HST = (FFV, HQP)
+RGX = (GXH, NJN)
+MXD = (QGR, PSG)
+JRL = (VHR, RHS)
+BGH = (RFS, CMX)
+SPB = (DXD, SFC)
+KXM = (GVS, RLH)
+KFK = (XMH, FJV)
+QDG = (NPS, DLL)
+TQD = (XMC, QQN)
+RNV = (TQX, GDR)
+KNN = (BLF, BLF)
+PBG = (QFN, JDX)
+JHQ = (DML, PBF)
+VQN = (JPP, SFN)
+CHV = (PSN, TBX)
+RVB = (TPJ, RNV)
+BXK = (KHT, QMX)
+MFS = (MBV, MBV)
+KXG = (MGN, DCK)
+JMS = (MHX, VJF)
+TRM = (CJX, PPN)
+KLQ = (LHJ, RJF)
+TVG = (NTF, DVL)
+HJH = (JDM, RLS)
+XMT = (RCV, PHL)
+GCK = (XVJ, BLG)
+BLH = (LPM, LPK)
+RLH = (JGJ, PTM)
+CHM = (XSX, QDB)
+JGD = (FRL, JSP)
+PLP = (MMV, CCQ)
+VJT = (QSQ, RKN)
+NDC = (PPS, GRV)
+SMP = (JGN, XHX)
+QBF = (MSB, QKR)
+HGR = (JHK, RVL)
+XTS = (RCP, NPL)
+MJR = (SFC, DXD)
+CJJ = (QVK, PPQ)
+XJT = (MNR, XNN)
+VRK = (GNP, XMX)
+BST = (KTD, VRK)
+CNK = (XQS, PLP)
+TMH = (CLR, RGH)
+MQS = (PVG, LDT)
+GJK = (MSF, JTF)
+LBD = (CVD, QGG)
+VGL = (RVL, JHK)
+KXX = (RRK, QTS)
+SDG = (HJH, HND)
+DML = (THK, FLP)
+PPS = (BJM, VFK)
+BQH = (SDG, TXR)
+XGQ = (VPL, TRM)
+BMK = (TLL, DTG)
+CKM = (NCJ, MXK)
+RDL = (NNT, SRL)
+NRQ = (KCJ, PBL)
+KRG = (NCJ, MXK)
+PNB = (NCQ, LSD)
+RCV = (HDQ, MXG)
+FKR = (FNM, FCL)
+XMM = (LRJ, BND)
+QNT = (GXL, FBQ)
+XLT = (GSJ, QNM)
+XKL = (QLT, BHX)
+SMR = (QGD, TLQ)
+VTK = (JCN, FLV)
+JPS = (PPQ, QVK)
+FBK = (SHM, FFL)
+RKG = (DMD, XJP)
+QQN = (KMC, MXH)
+TCQ = (DQX, BXK)
+QNF = (BLK, SCK)
+MFD = (VND, DLB)
+PPQ = (DFV, XSP)
+MKM = (VHB, CDQ)
+MSB = (NKK, PSJ)
+VHB = (JPC, JPC)
+PDP = (KNL, VBD)
+MRC = (PHR, BLC)
+HBV = (BQK, PDN)
+PPG = (MFB, GLF)
+BPM = (FHV, FMJ)
+TKM = (TNK, KQP)
+VLS = (XNN, MNR)
+FDC = (KXM, XJD)
+FQC = (PXT, HCJ)
+KKX = (FRD, QQQ)
+FCL = (CFK, RHC)
+JND = (RBC, RRB)
+JBR = (JGD, DRR)
+PDK = (SSP, KCP)
+BQR = (TXX, GKL)
+FPK = (TFF, RTR)
+RRL = (VKT, MCK)
+FVM = (PNB, HQV)
+QMK = (TTX, KQH)
+PBA = (JND, KRF)
+BNH = (BQR, BMN)
+JTQ = (XJT, VLS)
+PBK = (CHV, FPD)
+CCS = (FDG, DTM)
+NLQ = (QCV, GPN)
+XQR = (XVP, QMK)
+MMV = (MLX, KGB)
+VSM = (SDT, PBG)
+LNJ = (NHR, BGB)
+GFH = (QCK, SXV)
+BHT = (NHR, BGB)
+FJH = (VCQ, CDF)
+GNF = (RVG, FPK)
+TXX = (CJJ, JPS)
+QMX = (FBK, SFT)
+QSQ = (LRV, QVM)
+DXV = (FNF, SNQ)
+PVC = (VNF, SRC)
+HFR = (KLD, XMM)
+SRH = (GGT, GMX)
+JGG = (TMV, BJK)
+MXK = (RBS, QBJ)
+NPS = (JJJ, PDH)
+RHH = (TVF, MMF)
+HRL = (MTN, QHV)
+MSF = (JFX, JFX)
+RBC = (CVM, CHM)
+MMF = (GCK, JJX)
+GHP = (CTQ, SHB)
+NPX = (DTS, XPF)
+XGB = (HXC, HXC)
+XVJ = (FDC, PVM)
+XNB = (FLV, JCN)
+XCT = (PRV, QNT)
+LXC = (QLD, DGJ)
+JJJ = (NRQ, MCM)
+SFG = (CJT, NDC)
+MRM = (GHX, BVD)
+DST = (MBV, HNG)
+NCQ = (SPJ, FJD)
+JPH = (DJD, LCM)
+LRV = (VHX, RBX)
+RPJ = (TTJ, HKN)
+RBR = (PPG, VKK)
+XSP = (NKT, KJP)
+VBP = (QDG, QQV)
+XLM = (FPK, RVG)
+HNQ = (JPP, SFN)
+RMD = (HXC, KPB)
+FMS = (MLR, RKQ)
+CRV = (TTJ, HKN)
+NMN = (GCL, XRB)
+BPK = (JCM, BNF)
+LKF = (XMS, JGG)
+JRB = (MMJ, DRH)
+RTQ = (PPG, VKK)
+XNN = (TNP, MFM)
+GCL = (RBQ, TVP)
+RFK = (FVQ, DPN)
+TFF = (VPS, JHQ)
+JNT = (DMM, FDP)
+JVX = (CRV, RPJ)
+JPC = (MSF, MSF)
+BJC = (GGT, GMX)
+MVF = (RRK, QTS)
+HLL = (MTC, TCQ)
+DQD = (DCF, PJG)
+DCK = (XPX, MFD)
+RHG = (VSM, QBQ)
+LRD = (TCG, PMX)
+BNV = (BQR, BMN)
+KQM = (PNB, HQV)
+MLR = (GFS, MKB)
+QBQ = (PBG, SDT)
+KGB = (VGL, HGR)
+KHV = (XGB, RMD)
+JBT = (XLM, GNF)
+NDD = (NTH, GRT)
+MXV = (RVB, DDT)
+QKV = (NTF, DVL)
+CTR = (XPF, DTS)
+KJP = (DGD, LND)
+LJB = (NXF, GJC)
+LNL = (RTP, FJR)
+MBM = (NFD, CVR)
+QVK = (DFV, XSP)
+LXL = (PBP, SFP)
+BJM = (FJM, RPD)
+QHV = (SFG, VQP)
+KJD = (XKR, LDV)
+CVD = (KJT, KHM)
+DLQ = (QGD, TLQ)
+TXC = (CPM, VFT)
+VSD = (TVN, BFF)
+RFS = (RHD, DHT)
+KJT = (JRL, FDK)
+THV = (XCT, FHN)
+FFV = (XVF, DNM)
+BHX = (KRG, CKM)
+TVF = (JJX, GCK)
+GGT = (HLL, KKN)
+RGH = (DDJ, STP)
+PBP = (QKV, TVG)
+VTT = (RRL, JHL)
+SKT = (JPL, KBH)
+QDB = (NMB, HVJ)
+GMM = (RDK, TXV)
+CTQ = (NTL, DLV)
+FMR = (LDT, PVG)
+FHV = (VHP, GBD)
+QNH = (LJH, PVJ)
+JFX = (JND, KRF)
+DLB = (LNJ, BHT)
+QHM = (JTJ, DBG)
+TPJ = (TQX, GDR)
+XPF = (JVS, KHQ)
+NTH = (BFV, BQJ)
+GVQ = (HTV, VXH)
+VXH = (JBT, PKT)
+MSC = (MMJ, DRH)
+DRR = (FRL, JSP)
+PKZ = (LNK, BMK)
+DLT = (DLG, HVL)
+KQH = (FMS, CLQ)
+XPX = (DLB, VND)
+PSJ = (SVQ, DDM)
+FNJ = (DRR, JGD)
+VKD = (PLP, XQS)
+RHN = (BHD, HSG)
+QBH = (QJC, DLT)
+QHD = (RRD, XGJ)
+BBF = (KCP, SSP)
+NGM = (RRQ, FNK)
+PFS = (MFS, DST)
+NFD = (LXL, RXF)
+RVS = (GVR, SJM)
+FJV = (PXS, MKP)
+KCJ = (LLC, GJG)
+GSG = (PSG, QGR)
+FHN = (PRV, QNT)
+HVL = (NPX, CTR)
+NRG = (FHV, FMJ)
+DDJ = (NLV, FBP)
+PJG = (KQM, FVM)
+TTX = (FMS, CLQ)
+FPF = (HST, NQR)
+RBQ = (KKX, BKP)
+TGD = (XFR, PRD)
+SHM = (HLS, FFT)
+BKF = (PVR, BCX)
+SJF = (HLG, HLG)
+NHR = (NLG, RGT)
+JMT = (XJT, VLS)
+HXR = (FDP, DMM)
+HDQ = (FRT, VTT)
+JTJ = (VRH, RKG)
+PXS = (PVK, SMP)
+NPL = (RTQ, RBR)
+MTN = (SFG, VQP)
+AAA = (XRF, GCC)
+VXX = (SHC, BLH)
+RLN = (VFN, QKK)
+DLG = (NPX, CTR)
+TTT = (VJF, MHX)
+QKR = (NKK, PSJ)
+TNQ = (BQK, PDN)
+CFK = (GLS, RDV)
+XJP = (RLB, GVF)
+XPL = (XGQ, QBP)
+GVF = (CVC, JQR)
+THS = (KTD, VRK)
+DPZ = (VVT, DLH)
+PXT = (FRR, GRB)
+JKK = (SLG, XJG)
+JCN = (TKV, CLN)
+JGJ = (VNT, XQD)
+SFN = (MHP, XMT)
+BJP = (VQN, HNQ)
+HNG = (SHS, NVK)
+VHJ = (BST, THS)
+TVZ = (NJD, NLQ)
+MQT = (SKT, BHQ)
+HKN = (BXN, NTQ)
+XFP = (KQP, TNK)
+GJG = (CJC, PDP)
+RJF = (RDL, KPH)
+MVJ = (MNH, BPK)
+MLX = (VGL, HGR)
+VNL = (DLQ, SMR)
+GJC = (MXD, GSG)
+BHD = (FKR, XDR)
+NNA = (BMK, LNK)
+RHC = (GLS, RDV)
+CDQ = (JPC, GJK)
+QGR = (RHG, KVP)
+SNN = (SDG, TXR)
+PRG = (JPH, MLC)
+QBP = (TRM, VPL)
+MHX = (RGX, SNR)
+RLS = (TMF, PVC)
+FBQ = (TBN, NND)
+BFJ = (PBK, FPL)
+BKP = (QQQ, FRD)
+GDR = (TQB, GVQ)
+DRH = (FHL, LKB)
+TVN = (DDV, TMH)
+DNT = (RHN, XBV)
+JSM = (CTQ, SHB)
+PDN = (MKM, KKS)
+RLB = (JQR, CVC)
+XRS = (BRB, LKF)
+SNQ = (HFR, DBV)
+TVP = (KKX, BKP)
+HXC = (MTH, MTH)
+QLT = (KRG, CKM)
+KPB = (MTH, TVZ)
+LVX = (JCC, KHV)
+VLQ = (HTF, DHC)
+XSX = (NMB, HVJ)
+MBV = (SHS, SHS)
+PLB = (QGG, CVD)
+PCJ = (XRS, CBP)
+TQJ = (MCL, JDJ)
+FLJ = (HVX, RBK)
+MTC = (BXK, DQX)
+MKP = (SMP, PVK)
+SFP = (TVG, QKV)
+HXX = (PFQ, DDB)
+LJH = (MTX, KDL)
+PSN = (GHP, JSM)
+DHC = (PMB, FQC)
+RXF = (SFP, PBP)
+DMM = (GVH, RLN)
+NTF = (LVF, MKC)
+QVM = (VHX, RBX)
+BND = (THV, HTG)
+FNM = (CFK, RHC)
+HSG = (XDR, FKR)
+BLK = (QBH, CRD)
+VFK = (RPD, FJM)
+SBG = (NLL, DVX)
+DXD = (XQF, HQL)
+HGN = (RJB, VSD)
+GXL = (TBN, NND)
+QND = (SQK, KFK)
+FNF = (DBV, HFR)
+JDJ = (JMT, JTQ)
+TTJ = (BXN, NTQ)
+CVR = (RXF, LXL)
+SSP = (HMQ, LST)
+JVS = (BJC, SRH)
+SXD = (QSQ, RKN)
+XJD = (GVS, RLH)
+HTV = (PKT, JBT)
+DPN = (STM, CHH)
+RGT = (BPC, XDC)
+GPN = (HCX, MXV)
+DHT = (BNH, BNV)
+QLP = (CGF, DHN)
+QQV = (DLL, NPS)
+SCK = (CRD, QBH)
+XMC = (KMC, MXH)
+FHL = (DDK, VNL)
+NND = (BPS, VHJ)
+TNP = (GGD, RVS)
+RPD = (TKT, PQR)
+JQR = (HRR, VFH)
+TBV = (PJG, DCF)
+GXH = (NSS, GSN)
+GDD = (KFK, SQK)
+JHH = (NLL, DVX)
+RKQ = (GFS, MKB)
+GKL = (CJJ, JPS)
+CCC = (FLJ, TNC)
+KNL = (KLQ, PJT)
+MFM = (GGD, RVS)
+QRT = (SXV, QCK)
+LCM = (SBG, JHH)
+VHP = (FHP, FPF)
+DGP = (BCX, PVR)
+GRL = (XBJ, GDG)
+CLB = (SPB, MJR)
+BLC = (SSD, NGM)
+VSG = (SNQ, FNF)
+FMJ = (VHP, GBD)
+CPM = (RHH, KJL)
+RKF = (NMN, HFK)
+LDT = (TFL, SBK)
+VPS = (PBF, DML)
+GFS = (KJD, SGP)
+DDB = (XPL, TLD)
+CJC = (KNL, VBD)
+LRJ = (THV, HTG)
+JPP = (MHP, XMT)
+RRD = (NSF, QNH)
+DHD = (DGP, BKF)
diff --git a/08/input-ex11 b/08/input-ex11
new file mode 100644
index 0000000..9029a1b
--- /dev/null
+++ b/08/input-ex11
@@ -0,0 +1,9 @@
+RL
+
+AAA = (BBB, CCC)
+BBB = (DDD, EEE)
+CCC = (ZZZ, GGG)
+DDD = (DDD, DDD)
+EEE = (EEE, EEE)
+GGG = (GGG, GGG)
+ZZZ = (ZZZ, ZZZ)
diff --git a/08/input-ex12 b/08/input-ex12
new file mode 100644
index 0000000..7d1b58d
--- /dev/null
+++ b/08/input-ex12
@@ -0,0 +1,5 @@
+LLR
+
+AAA = (BBB, BBB)
+BBB = (AAA, ZZZ)
+ZZZ = (ZZZ, ZZZ)
diff --git a/08/input-ex21 b/08/input-ex21
new file mode 100644
index 0000000..5b3fa58
--- /dev/null
+++ b/08/input-ex21
@@ -0,0 +1,10 @@
+LR
+
+11A = (11B, XXX)
+11B = (XXX, 11Z)
+11Z = (11B, XXX)
+22A = (22B, XXX)
+22B = (22C, 22C)
+22C = (22Z, 22Z)
+22Z = (22B, 22B)
+XXX = (XXX, XXX)
diff --git a/AdventOfCode2023.iml b/AdventOfCode2023.iml
index b82982d..456e24f 100644
--- a/AdventOfCode2023.iml
+++ b/AdventOfCode2023.iml
@@ -5,7 +5,7 @@
-
+
\ No newline at end of file