diff --git a/advent-of-code-2023.csproj b/advent-of-code-2023.csproj
index 7545f36..d69084c 100644
--- a/advent-of-code-2023.csproj
+++ b/advent-of-code-2023.csproj
@@ -40,6 +40,8 @@
+
+
diff --git a/inputs/06.txt b/inputs/06.txt
new file mode 100644
index 0000000..08fcbc9
--- /dev/null
+++ b/inputs/06.txt
@@ -0,0 +1,2 @@
+Time: 44 70 70 80
+Distance: 283 1134 1134 1491
\ No newline at end of file
diff --git a/inputs/06a.txt b/inputs/06a.txt
new file mode 100644
index 0000000..b948cae
--- /dev/null
+++ b/inputs/06a.txt
@@ -0,0 +1,2 @@
+Time: 7 15 30
+Distance: 9 40 200
\ No newline at end of file
diff --git a/src/06.cs b/src/06.cs
new file mode 100644
index 0000000..15490de
--- /dev/null
+++ b/src/06.cs
@@ -0,0 +1,67 @@
+namespace aoc2023;
+
+internal class Day06 : Day
+{
+ private List times = new();
+ private List dists = new();
+ private long time = 0;
+ private long dist = 0;
+ internal override void Parse()
+ {
+ var lines = Util.Parsing.ReadAllLines($"{GetDay()}").ToList();
+ var timeline = lines[0].Split(':');
+ times = timeline[1].Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
+ time = long.Parse(timeline[1].Replace(" ", ""));
+ var distline = lines[1].Split(':');
+ dists = distline[1].Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
+ dist = long.Parse(distline[1].Replace(" ", ""));
+ }
+
+ internal override string Part1()
+ {
+ long total = 1;
+ for (int i = 0; i < times.Count; i++)
+ {
+ long numWins = 0;
+ bool hasWon = false;
+ for (int chargetime = 1; chargetime < times[i]; chargetime++)
+ {
+ var d = chargetime * (times[i] - chargetime);
+ if (d > dists[i])
+ {
+ hasWon = true;
+ numWins++;
+ }
+ else if (hasWon)
+ {
+ break;
+ }
+ }
+
+ total *= numWins;
+ }
+
+ return $"Multiplied number of wins total: <+white>{total}";
+ }
+
+ internal override string Part2()
+ {
+ long numWins = 0;
+ bool hasWon = false;
+ for (int chargetime = 1; chargetime < time; chargetime++)
+ {
+ var d = chargetime * (time - chargetime);
+ if (d > dist)
+ {
+ hasWon = true;
+ numWins++;
+ }
+ else if (hasWon)
+ {
+ break;
+ }
+ }
+
+ return $"Number of wins with correct kerning: <+white>{numWins}";
+ }
+}