about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--day022500
-rw-r--r--day02.k3
-rw-r--r--day02.mew7
-rw-r--r--day02.rkt43
-rw-r--r--day02.zig27
5 files changed, 2580 insertions, 0 deletions
diff --git a/day02 b/day02
new file mode 100644
index 0000000..6b75281
--- /dev/null
+++ b/day02
@@ -0,0 +1,2500 @@
+A Y
+A Z
+A X
+B X
+A Y
+B Y
+B Y
+A X
+A Z
+A X
+A X
+A X
+B X
+B X
+B X
+B X
+C Z
+B Z
+B Y
+B X
+A X
+A Y
+B X
+B X
+B X
+B Z
+B X
+B X
+B X
+B Z
+B Z
+A X
+A X
+C X
+B X
+B X
+B X
+A X
+B X
+B X
+A Z
+B X
+B X
+B X
+B Z
+B X
+A X
+B X
+B Z
+B X
+B X
+B Z
+A Z
+B X
+B X
+B X
+A X
+C Z
+A X
+A X
+C Y
+A X
+B X
+B X
+B X
+A X
+B X
+B X
+A X
+C X
+B Y
+A Z
+A Y
+B Z
+B Z
+C X
+B Y
+A X
+B Y
+A Y
+B X
+C X
+B X
+B X
+C X
+B X
+A X
+B X
+B X
+A Y
+A X
+B X
+B Z
+A Z
+B Z
+B Y
+A Y
+B Z
+B X
+B X
+B X
+A Z
+B X
+B X
+A X
+A Y
+B X
+B Z
+B X
+B X
+B Y
+B X
+C X
+B Z
+C X
+B Z
+B X
+A Y
+B X
+A Z
+C Y
+B Z
+B Y
+B X
+A X
+A Y
+A X
+B Z
+B Z
+A Z
+B X
+B Z
+B X
+A Y
+B Z
+B X
+B Z
+C X
+B X
+B X
+B X
+B Z
+B Y
+C Z
+A X
+B Y
+B X
+B X
+B Z
+B X
+B Z
+B X
+A X
+B Z
+B Z
+B Z
+B Y
+B X
+C Z
+B X
+B Y
+A X
+B X
+B Z
+A X
+B X
+B X
+B Z
+B X
+B Z
+B Y
+B Y
+B Z
+A X
+B X
+B Y
+A Y
+A Y
+C X
+B Z
+B X
+B X
+A Y
+C Y
+B X
+A Z
+A Y
+B Z
+B X
+B X
+B Z
+A Y
+B X
+B Z
+A Y
+B Z
+B X
+B X
+A X
+B Z
+A X
+B X
+B Z
+A X
+B X
+A X
+A X
+B X
+A Y
+B Z
+B X
+B Y
+B X
+B X
+A Y
+A X
+C X
+A Z
+B Y
+B Z
+C X
+B X
+B Z
+B Z
+B Z
+B X
+B X
+C X
+C X
+C Y
+A Z
+B X
+A X
+A Z
+A X
+B Y
+A Z
+B Z
+B X
+B Y
+B X
+C Z
+A Y
+B X
+A X
+B Z
+B Z
+A Z
+A X
+A X
+B X
+B Y
+B Y
+B Z
+B X
+B Z
+A X
+B X
+B X
+A X
+A Y
+A Z
+B Z
+B X
+B Z
+B X
+A X
+C Z
+B X
+A Z
+B X
+B X
+B Z
+B X
+B Z
+B X
+B X
+A Z
+B Z
+B X
+C X
+B X
+A X
+B X
+C X
+B X
+B X
+B X
+B X
+B X
+A X
+A Z
+A X
+B Z
+C Z
+B X
+A Z
+C Y
+B Z
+B Z
+B X
+A Z
+B X
+A Z
+B Y
+B X
+A X
+B X
+B X
+B X
+A Z
+B X
+C X
+B Y
+C X
+B Y
+B X
+B X
+B Z
+A X
+B X
+A Y
+A Y
+A Y
+A Y
+A Y
+B X
+A X
+B X
+A Z
+A Z
+B Y
+A Z
+A Y
+A X
+B X
+A Z
+A X
+A X
+B Z
+B Z
+A Z
+B Z
+B X
+B X
+A X
+B X
+B X
+B X
+A X
+B X
+C Z
+A Z
+A X
+A X
+B X
+B X
+B X
+B X
+A X
+A X
+A X
+B Y
+B Y
+B X
+A X
+A Y
+A Y
+B X
+A X
+B X
+A X
+A Z
+B Z
+B X
+B X
+A Y
+C X
+C X
+A Y
+B X
+B Z
+B X
+B X
+A Z
+C X
+C X
+B X
+B X
+C X
+B X
+B X
+B X
+B Y
+B X
+A Y
+B X
+A Y
+B Z
+B X
+B X
+B X
+B X
+A X
+B X
+B X
+B X
+B X
+B Y
+B Y
+B Z
+A Y
+B X
+B Z
+A X
+B X
+A X
+A Y
+B Y
+B X
+B X
+C Z
+B X
+A Z
+C Y
+B Z
+C Z
+A X
+B X
+A X
+A Z
+A X
+A X
+A Y
+B X
+B X
+B Y
+A X
+B Z
+B Z
+B X
+B Y
+C X
+B X
+B X
+B X
+A X
+C X
+A Y
+B Z
+B X
+B Z
+B Y
+C Y
+A X
+C Z
+A X
+B X
+A Y
+B Z
+C X
+B Z
+B X
+A X
+A Z
+B X
+C Y
+A X
+B X
+B X
+B Z
+B Z
+B X
+A X
+A X
+B X
+B Z
+A X
+A Z
+A Z
+A Y
+A Z
+B X
+C Z
+A Y
+B X
+B Z
+B X
+B X
+B X
+B Z
+A X
+B X
+A X
+B Y
+B Y
+B X
+C Z
+A X
+A X
+A X
+B X
+B X
+B X
+B X
+A Z
+B X
+B X
+B Y
+A X
+B Z
+C X
+A Y
+B X
+A Y
+A Y
+B X
+C X
+C X
+B Z
+B Z
+B Z
+B X
+B Y
+A Y
+B Z
+B X
+C Z
+B Z
+A Z
+A X
+A Z
+A X
+B X
+B Z
+B X
+B X
+A Z
+B Z
+C Y
+B Z
+B X
+B X
+A X
+A X
+C X
+B X
+C Z
+B Z
+B X
+A Y
+B Z
+B X
+B X
+A Z
+A X
+B X
+A X
+A X
+A X
+A Z
+C Y
+B X
+B X
+A X
+B X
+B Y
+B Y
+B X
+B X
+B X
+C Z
+B X
+B X
+C Z
+B Z
+A X
+C Y
+A X
+A X
+A X
+A X
+B X
+A X
+C Y
+B Z
+A X
+B X
+B Y
+C X
+B Z
+A X
+B X
+B Y
+B X
+C Y
+A X
+B Z
+B Y
+B X
+B X
+B Z
+B X
+B Y
+B Z
+B X
+C X
+B Y
+B X
+B Z
+B Z
+B Z
+B X
+B X
+B X
+B Y
+A Y
+B X
+B X
+B X
+B Z
+B Y
+C X
+C X
+C Z
+B X
+A X
+B X
+B Z
+B Z
+B Z
+A Z
+A Y
+B X
+A X
+A Z
+B Y
+A X
+B X
+A Y
+A X
+B X
+B Z
+A X
+A X
+A Z
+B X
+B X
+A X
+B Y
+B X
+B Z
+A Y
+B X
+A X
+B X
+B X
+B X
+A Y
+B X
+B X
+B Z
+C X
+C Y
+B X
+A X
+B Y
+B X
+B X
+B Y
+B X
+B Z
+B Y
+C X
+B Y
+B X
+C Y
+A Z
+C X
+B X
+B Z
+A X
+B X
+B X
+B X
+B X
+A Y
+C Z
+B X
+B X
+B Z
+A Y
+B X
+B Y
+A X
+C X
+B X
+A Y
+A X
+B X
+B X
+B X
+B Y
+A X
+C X
+B X
+A X
+B X
+B Z
+C Z
+A X
+A X
+B X
+A X
+C X
+A X
+B Z
+B X
+B X
+B X
+A Y
+A Z
+B X
+C X
+B Y
+B Z
+A Z
+A Y
+B Y
+A Y
+B X
+B X
+C X
+B X
+A X
+B X
+B Z
+A Y
+B Z
+A X
+B X
+A Y
+B X
+B X
+B X
+B Z
+B X
+B X
+A X
+B X
+B X
+B X
+B X
+C X
+A Y
+A Z
+B Z
+A X
+A Z
+A X
+B Z
+B Z
+B X
+B X
+B X
+A X
+B X
+B Y
+A X
+B X
+C X
+A Z
+B X
+B X
+C Z
+B X
+B Z
+A Y
+A X
+A Y
+A X
+B X
+B Y
+B Z
+B X
+B X
+B X
+B Z
+B Z
+A X
+A X
+B X
+B Z
+A X
+A Y
+A Y
+A X
+B X
+A Z
+B X
+A Y
+B Z
+A X
+C X
+B X
+B X
+A X
+B X
+C X
+B Z
+B X
+B X
+C X
+A Y
+B X
+B X
+B Z
+B X
+A Y
+B Z
+C Z
+B Y
+B X
+A Y
+B X
+B X
+B X
+B X
+C X
+A Y
+B X
+B Z
+B X
+B X
+C Z
+A X
+B X
+A Y
+A X
+B X
+B X
+A X
+A Z
+C X
+A X
+A Y
+A Y
+B Z
+A X
+B Z
+B X
+B Y
+A Z
+A X
+A X
+A Y
+C Z
+B X
+A Y
+B Z
+B X
+B X
+B Z
+B X
+A Z
+C Z
+B Z
+A Z
+B X
+A X
+B Z
+A X
+B X
+B Z
+B X
+A X
+B Y
+A Z
+A Z
+B X
+B Z
+A Y
+B Z
+A Y
+B X
+C X
+A Y
+B Z
+A X
+B X
+B X
+C X
+B Y
+B Z
+B Z
+B X
+A X
+A X
+B X
+A X
+C Y
+A Y
+A X
+A Z
+A X
+A X
+B X
+B X
+B X
+B Y
+C Y
+A X
+B X
+B X
+B X
+B X
+B X
+C Y
+A Z
+B X
+A X
+A X
+A Z
+A Y
+C X
+A Z
+B X
+B X
+B X
+A X
+B Z
+B X
+C Z
+A Y
+B X
+A Y
+B Y
+B X
+A Y
+B Z
+B X
+B Z
+B X
+A Y
+B Y
+B Y
+A X
+B X
+C Z
+B Z
+B Z
+B X
+A Z
+C X
+B Z
+C Y
+B X
+A Y
+A X
+B X
+A X
+B Z
+A Y
+B Y
+B Y
+B X
+C X
+C X
+A Y
+A Z
+B X
+B X
+B X
+B X
+C X
+B X
+C X
+B X
+B Z
+A X
+A X
+B X
+A Y
+B Z
+B X
+A X
+B X
+B X
+A Z
+C X
+B Z
+C X
+A X
+B Z
+C X
+B X
+B Z
+A X
+C X
+A Y
+A X
+A X
+A Y
+B Y
+B X
+B X
+B X
+B Y
+B X
+A Y
+B X
+A X
+B X
+C X
+B X
+B X
+B X
+B X
+B X
+A X
+C X
+C Z
+B X
+B X
+B Z
+B Z
+A X
+B Y
+B X
+B X
+A Y
+B X
+B Z
+A X
+A X
+C X
+B X
+B X
+C X
+B X
+B X
+B X
+A X
+A X
+C X
+B X
+B X
+B Z
+B Z
+A Z
+B X
+A X
+A X
+B X
+B Y
+A X
+B X
+B X
+A X
+B X
+B X
+B X
+B X
+A Y
+A X
+B X
+A X
+B X
+A Z
+A Y
+B X
+B X
+A Z
+B Z
+B X
+B X
+B X
+B X
+A X
+B X
+B X
+B X
+A Y
+C Y
+A X
+B Z
+A X
+B X
+B X
+B X
+B Y
+C X
+A X
+B Z
+B X
+C X
+A X
+A X
+A Y
+B Z
+B X
+B X
+B Z
+C Z
+B X
+B Z
+B X
+A X
+A Y
+A Y
+B Z
+B X
+C Y
+B X
+B Z
+A Y
+B Z
+A Y
+B Y
+B X
+C Z
+B X
+A X
+A Z
+B Z
+C X
+A Y
+C X
+A Y
+B Y
+B X
+C X
+A X
+A Y
+A Y
+B X
+A Z
+A Z
+A Z
+B X
+A Z
+B Z
+A X
+B X
+A Y
+A Z
+A X
+B X
+A Y
+B X
+B X
+B Z
+A X
+B X
+B Y
+C Y
+B Y
+B X
+C Y
+A X
+C Y
+A Z
+A Y
+B Z
+B X
+A X
+C X
+B X
+C Z
+C Y
+B Z
+B X
+C X
+B Z
+B X
+C X
+B Z
+B Z
+C X
+B X
+B Z
+A X
+A Y
+C Y
+B X
+A Y
+A Y
+A Z
+B X
+B Z
+A Y
+B Y
+A Z
+B X
+B Y
+A Y
+B Y
+A X
+A Y
+B Z
+A Y
+B Z
+B Z
+B X
+B X
+C Z
+A Y
+A Y
+B Y
+B Z
+B Z
+A X
+B X
+A Y
+C Z
+B X
+B Z
+B X
+B Z
+B X
+C X
+A X
+B Z
+A X
+B Z
+C X
+B X
+A X
+A X
+A Y
+B X
+B Z
+B X
+A X
+B Z
+B Z
+B Y
+B Z
+C Y
+B X
+B X
+B X
+A X
+B X
+C Z
+B X
+C Z
+A X
+B Y
+B X
+C Y
+C X
+B X
+B X
+B Z
+B Z
+B X
+B X
+B Z
+B X
+B Y
+A X
+B X
+A X
+C Z
+B X
+B Z
+B X
+B X
+B X
+A X
+A X
+A Y
+B Z
+C X
+B X
+C Y
+A Y
+B Y
+B Y
+A X
+B Z
+B X
+A Y
+B Z
+B Z
+A X
+B Z
+B Y
+C X
+C X
+B X
+B X
+B Y
+B Y
+B Y
+A X
+B X
+B X
+A Y
+B Z
+A X
+A Z
+A Y
+A Z
+B Z
+B Z
+A Y
+A X
+A X
+B X
+B Z
+A Y
+B X
+A Y
+B X
+B X
+A Y
+B X
+B X
+B Z
+C X
+A Y
+B X
+B X
+C Y
+B Y
+B X
+B X
+B X
+A X
+B X
+A Z
+B X
+A Z
+B Z
+A Y
+B X
+C X
+B X
+A X
+A Z
+B Z
+B Z
+B X
+B X
+C X
+B X
+B Z
+B X
+B Z
+B X
+B X
+A Y
+B X
+B Y
+B X
+B X
+B Y
+B X
+B Z
+B X
+B Z
+A X
+A Y
+B Y
+A X
+B X
+A X
+B X
+A X
+A Y
+B Y
+B Y
+B X
+B X
+B Z
+A X
+B X
+A X
+A X
+A Y
+B X
+A Y
+A X
+A Y
+B Y
+B Z
+B X
+A X
+B X
+B X
+A Y
+A Z
+B X
+A Z
+B X
+B X
+C Z
+B Z
+B Z
+B Y
+A Z
+B Z
+A Z
+B Y
+B X
+C Z
+A Z
+B Z
+A X
+B X
+B X
+B X
+C Y
+C Z
+B Z
+C Z
+B X
+B X
+B X
+B X
+B X
+A X
+A Z
+B X
+A X
+B X
+C Z
+B Z
+B X
+A Z
+A X
+B X
+A X
+B X
+A Y
+B X
+A X
+A Y
+C X
+B X
+C X
+A Z
+C Z
+B X
+C X
+B Z
+A X
+B X
+B X
+B Z
+A Y
+A Z
+B Z
+B X
+A X
+C Y
+B Z
+B Z
+B X
+B X
+A X
+B X
+A Y
+B X
+B Y
+A Z
+B X
+B X
+A Z
+A X
+B Y
+B Z
+B X
+B X
+C X
+B Z
+A X
+B X
+A Z
+B X
+B X
+B X
+B X
+B X
+B X
+B Z
+A X
+B X
+B X
+B X
+B X
+B Z
+B Z
+A Y
+B X
+C Y
+B Z
+B Z
+A Z
+B Z
+C Y
+B X
+B Y
+A X
+A X
+A Z
+B X
+B Y
+C X
+B Z
+B X
+B X
+B X
+B Z
+B X
+B X
+C Y
+C X
+A X
+B X
+B Y
+B X
+B X
+A Y
+A X
+B X
+A X
+B X
+A Z
+B X
+C Y
+C Y
+A Y
+B Z
+C Y
+C Y
+C X
+C Y
+C Z
+C X
+B X
+B X
+B X
+B Y
+B X
+A Y
+C Y
+B X
+B X
+A Z
+B X
+B X
+B X
+C Z
+B Y
+A Z
+C Z
+B X
+B Z
+A X
+B X
+B Z
+B X
+B X
+B Z
+A Y
+B Z
+A X
+A X
+B X
+B X
+B X
+B X
+A Y
+A Z
+B X
+B Z
+B Z
+B Z
+B X
+B X
+B Y
+A Y
+B X
+C Y
+B Z
+B Y
+B Z
+B X
+C Y
+B Z
+A X
+B X
+A X
+B Z
+B Y
+B X
+B Z
+C Y
+A Y
+B X
+C Y
+C Y
+A X
+A X
+A X
+A X
+B X
+B X
+A Y
+A Z
+B Y
+B Z
+B X
+B X
+B X
+B Y
+B Y
+A X
+B Y
+B X
+B Z
+B X
+B Z
+B X
+A X
+B X
+B X
+B Y
+B X
+B Z
+B Z
+B X
+B X
+B X
+B X
+B Z
+B X
+B Z
+A Z
+B X
+B X
+B X
+B Y
+A X
+B Z
+A X
+C Y
+B Y
+B Z
+C X
+C X
+B Z
+B Z
+C X
+A X
+B X
+A X
+B X
+B X
+A Z
+B X
+A Y
+A X
+A X
+B Y
+A Y
+A Y
+C X
+A X
+B X
+B Y
+B Y
+A Y
+A X
+C Y
+A Y
+B Z
+B X
+B Y
+B Z
+A Y
+A Y
+B Z
+A X
+C X
+A Z
+B X
+B X
+B X
+B X
+A X
+A Y
+B X
+B X
+B Z
+A Y
+A Y
+C Z
+B Z
+B Y
+A Y
+A X
+C X
+A Y
+B X
+C X
+A X
+A Z
+B X
+A X
+B X
+B Z
+C X
+B X
+A Y
+B X
+B Z
+B X
+B X
+B X
+C X
+B X
+C Y
+B Z
+B Z
+B X
+B X
+B Z
+C X
+B X
+B X
+A Z
+B X
+A Y
+B X
+B Y
+B Z
+A X
+A Z
+A X
+B X
+B Z
+B Z
+B X
+A Y
+B Z
+B X
+C Y
+A X
+A Y
+A Y
+B Z
+B X
+A X
+A Y
+C X
+A Y
+A X
+B X
+B X
+A X
+C X
+B Z
+A X
+B Y
+B X
+A X
+C Z
+C X
+B Z
+A X
+B X
+B Y
+B X
+B X
+A Y
+B Y
+A X
+A X
+A Z
+B X
+A Z
+A X
+B X
+A X
+B Z
+A X
+A X
+A X
+B X
+A Y
+B X
+B Z
+C Z
+B X
+A X
+B X
+C Z
+B X
+B Z
+A X
+C X
+B X
+B X
+A X
+B X
+B Z
+A X
+C X
+B Z
+B X
+B X
+B X
+B X
+B X
+A Y
+C Y
+B Z
+C Z
+B X
+A X
+A X
+A Y
+B X
+B X
+C Y
+B X
+C Z
+A X
+B X
+A Y
+B X
+B X
+A X
+C X
+B X
+C Y
+B X
+C Y
+A X
+B X
+B Y
+C Y
+B Z
+B X
+A X
+B X
+B X
+B Y
+A X
+B X
+A Z
+A Y
+A X
+A Z
+B X
+A Y
+C Y
+B Z
+C Y
+B X
+B X
+A Y
+C X
+C Z
+B Z
+B X
+B X
+A Y
+B X
+B Y
+A X
+A X
+B X
+B Z
+A Y
+A Y
+A Y
+B X
+B X
+C X
+B Y
+B X
+A Y
+A X
+C X
+B X
+B Z
+A Z
+B Z
+A Y
+B Z
+A X
+B X
+B X
+B X
+B Y
+C Z
+B Y
+B X
+A X
+B X
+A X
+A Z
+B Z
+B X
+B X
+B X
+C X
+C Z
+B Z
+A X
+B X
+B X
+A Y
+B X
+B Z
+A X
+B X
+A X
+A X
+C Y
+B Z
+A X
+A X
+B Y
+B X
+A Y
+B Y
+C X
+B Z
+A X
+A Z
+B X
+B X
+A X
+B X
+A Y
+A X
+C X
+B X
+A X
+C X
+B Z
+B X
+A X
+A Z
+B X
+B X
+B Z
+B X
+B Z
+C X
+B Z
+A X
+A X
+B X
+B X
+B Y
+B X
+B X
+B Z
+A Y
+A X
+C X
+A X
+B X
+A Z
+B X
+A X
+A X
+B X
+A X
+B X
+B X
+A Y
+A Y
+A X
+B X
+B Z
+C X
+A X
+B X
+B X
+B Z
+B X
+B X
+A Z
+B Z
+B Z
+B X
+B Y
+C X
+B Z
+A X
+B X
+B X
+B Z
+A Y
+B X
+B X
+B X
+B X
+B X
+C X
+C Y
+A Z
+B X
+C Y
+A Y
+C X
+B X
+B X
+B Z
+B X
+B X
+A X
+A X
+A Z
+C Y
+B X
+B X
+A Y
+B Z
+B Z
+A X
+A Z
+C X
+B X
+B X
+B X
+B X
+A X
+C X
+B Z
+B X
+A X
+A X
+A Y
+B X
+B X
+A Z
+C X
+B X
+A X
+B Z
+A X
+B Y
+B X
+B X
+A Y
+C Y
+B Z
+A X
+A Z
+A Y
+C Y
+B X
+C X
+B X
+B Y
+B X
+B Z
+A X
+C Y
+A Y
+B Z
+B X
+A X
+C Z
+B X
+B Z
+A X
+C Y
+B Y
+B X
+B X
+A Y
+B X
+B Z
+B X
+B Z
+B X
+B Z
+A Y
+A X
+B X
+B X
+A Y
+C X
+A X
+C X
+B X
+B X
+B X
+A X
+B Z
+B Z
+C Z
+B Z
+A X
+A X
+B Z
+C X
+A Z
+A Y
+B Y
+B X
+A X
+A Y
+A X
+A Z
+B X
+B X
+B Z
+B Z
+A Y
+B X
+B X
+B Z
+B X
+A X
+C X
+B X
+B X
+B Y
+A X
+B X
+B X
+C Z
+B X
+B Z
+B X
+B Y
+B X
+B X
+A X
+A Y
+A Y
+B X
+A X
+A Z
+B Z
+B Z
+B X
+B X
+B Z
+B X
+A Z
+B X
+A X
+C X
+B X
+B X
+B Z
+B X
+A X
+B Z
+B X
+B Z
+C Y
+B X
+B X
+B X
+B Z
+C X
+B X
+B X
+B Y
+B Z
+B X
+C Y
+A Y
+C X
+A X
+B X
+A X
+B Z
+B X
+B X
+A Y
+C Z
+A X
+B Y
+A X
+B Z
+B X
+C Z
+B X
+C Z
+A X
+B X
+A X
+B X
+A Y
+B X
+B Z
+B X
+B Z
+C Z
+B X
+B X
+A Z
+A X
+A X
+B X
+A X
+B X
+B X
+B X
+B X
+A X
+B Z
+B X
+A X
+B Z
+C Y
+C Z
+A X
+B X
+B X
+B Z
+B Z
+A X
+A Y
+B X
+A Y
+B X
+B X
+C X
+B Z
+B Y
+B Z
+B Z
+A Y
+C X
+B Y
+B X
+B X
+A Z
+B X
+B Y
+C X
+B Y
+C Y
+B X
+B X
+C Y
+A Z
+C X
+B X
+C X
+A Y
+B X
+C Z
+B Z
+B X
+B Y
+A Y
+A X
+B X
+C Y
+C X
+A X
+B X
+B X
+A X
+B X
+B X
+C X
+C Y
+A Z
+C X
+A X
+C X
+B X
+A Y
+B X
+A Y
+C X
+B X
+C Z
+C X
+B Z
+B X
+B X
+A X
+A X
+A Y
+B Y
+B Y
+A Y
+C Z
+A Y
+A X
+B Z
+B X
+B X
+C X
+B X
+C X
+A Y
+B Z
+B X
+A Y
+A Y
+C X
+A Y
+B Z
+B Z
+A X
+B X
+A Y
+B Y
+B X
+A Z
+B X
+B X
+B Z
+C X
+B X
+C X
+B X
+B X
+C X
+A X
+A Y
+B X
+A Y
+C Z
+C X
+A Z
+B X
+B X
+B X
+A X
+B X
+B Y
+B X
+B Z
+B X
+A Y
+B X
+B X
+B X
+B X
+B Y
+B Y
+B Z
+C X
+A Y
+C X
+B Y
+B X
+B Y
+B X
+A X
+B Z
+B Z
+B X
+A Z
+C X
+A X
+B Z
+B Y
+A Y
+B X
+B X
+B X
+A X
+B X
+A Y
+A X
+B X
+B Z
+B X
+A X
+A Y
+B X
+B X
+A X
+B Z
+A Z
+A X
+A Y
+C X
+A Z
+B X
+B X
+A X
+B Z
+B Z
+A X
+A Y
+B X
+B Z
+B X
+A Y
+B Y
+A Y
+B X
+B X
+A X
+B X
+A X
+B X
+C Z
+A X
+B X
+C Z
+A X
+A X
+B X
+A X
+A X
+C Z
+B Z
+B X
+B Z
+A X
+B Z
+B X
+B X
+B X
+A Z
+B X
+B X
+B Z
+A X
+A Y
+B X
+A X
+C X
+A Y
+A X
+B X
+B X
+B Y
+A Y
+B X
+A Y
+A Z
+B Z
+B Z
+B Z
+B X
+B X
+A Y
+A Z
+B X
+B X
+B X
+B X
+B X
+A Z
+A Z
+B X
+B X
+B X
+B X
+A X
+B X
+A X
+B X
+B Z
+C X
+A X
+B X
+C Z
+B X
+B X
+B X
+A X
+A Z
+B Z
+C X
+A X
+B X
+C X
+B X
+A X
+C Z
+A Z
+A Y
+B X
+C X
+B X
+C X
+B X
+B Y
+B Z
+A X
+B X
+B X
+A X
+A Z
+B Z
diff --git a/day02.k b/day02.k
new file mode 100644
index 0000000..7741b09
--- /dev/null
+++ b/day02.k
@@ -0,0 +1,3 @@
+(a;x;b):+-"A X"-/:0:"day02"
+c:(b;3!a+b+2)
++/'1+c+3*3!1+c-\:a
diff --git a/day02.mew b/day02.mew
new file mode 100644
index 0000000..d274993
--- /dev/null
+++ b/day02.mew
@@ -0,0 +1,7 @@
+(op=> (lines "day02")
+      (gmap (match-fun ("A X" '(4 3)) ("A Y" '(8 4)) ("A Z" '(3 8))
+                       ("B X" '(1 1)) ("B Y" '(5 5)) ("B Z" '(9 9))
+                       ("C X" '(7 2)) ("C Y" '(2 6)) ("C Z" '(6 7))) _)
+      ,(inject (op* map +))
+      unlist
+      prn)
diff --git a/day02.rkt b/day02.rkt
new file mode 100644
index 0000000..d8fd4c0
--- /dev/null
+++ b/day02.rkt
@@ -0,0 +1,43 @@
+#lang racket
+
+(define/match (translate move)
+  [((or "A" "X")) 'rock]
+  [((or "B" "Y")) 'paper]
+  [((or "C" "Z")) 'scissors])
+
+(define/match (win-score p1 p2) ; for p2
+  [(draw draw) 3]          
+  [('rock 'paper) 6]
+  [('paper 'rock) 0]
+  [('rock 'scissors) 0]
+  [('scissors 'rock) 6]
+  [('rock 'paper) 0]
+  [('paper 'scissors) 6]
+  [('scissors 'paper) 0])
+
+(define/match (shape-score p)
+  [('rock) 1]
+  [('paper) 2]
+  [('scissors) 3])
+
+(define (score p1 p2)
+  (+ (shape-score p2) (win-score p1 p2)))
+
+(for/sum ([line (file->lines "day02")])
+  (apply score (map translate (string-split line))))
+;; 10595
+
+(define/match (correct-move p1 p2)
+  [(p1        "Y") (list p1 p1)]        ; draw
+  [('rock     "X") (list p1 'scissors)] ; lose
+  [('paper    "X") (list p1 'rock)]     ; lose
+  [('scissors "X") (list p1 'paper)]    ; lose
+  [('rock     "Z") (list p1 'paper)]    ; win
+  [('paper    "Z") (list p1 'scissors)] ; win
+  [('scissors "Z") (list p1 'rock)]     ; win
+  )
+
+(for/sum ([line (file->lines "day02")])
+  (match-let ([(list p1 p2) (string-split line)])
+    (apply score (correct-move (translate p1) p2))))
+;; 9541
diff --git a/day02.zig b/day02.zig
new file mode 100644
index 0000000..7278131
--- /dev/null
+++ b/day02.zig
@@ -0,0 +1,27 @@
+// hat tip to https://gitlab.cs.washington.edu/fidelp/advent-of-code-2022/-/blob/main/advent-2022-02-rough.fs
+
+const std = @import("std");
+const data = @embedFile("day02");
+
+pub fn main() !void {
+    var lines = std.mem.split(u8, data, "\n");
+
+    var part1: i32 = 0;
+    var part2: i32 = 0;
+
+    while (lines.next()) |line| {
+        if (line.len == 0)
+            break;
+
+        var p1: i32 = line[0] - 'A';
+        var p2: i32 = line[2] - 'X';
+
+        part1 += 3 * @rem(p2 - p1 + 4, 3) + (p2 + 1);
+
+        p2 = @rem(p1 + p2 + 2, 3);
+
+        part2 += 3 * @rem(p2 - p1 + 4, 3) + (p2 + 1);
+    }
+
+    std.debug.print("{} {}\n", .{ part1, part2 });
+}