aboutsummaryrefslogtreecommitdiff
path: root/advent-of-code/2022/02
diff options
context:
space:
mode:
Diffstat (limited to 'advent-of-code/2022/02')
-rw-r--r--advent-of-code/2022/02/1.c30
-rw-r--r--advent-of-code/2022/02/2.c36
-rw-r--r--advent-of-code/2022/02/input2501
3 files changed, 2567 insertions, 0 deletions
diff --git a/advent-of-code/2022/02/1.c b/advent-of-code/2022/02/1.c
new file mode 100644
index 0000000..a699612
--- /dev/null
+++ b/advent-of-code/2022/02/1.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define BUFSZ 1024
+
+char buf[BUFSZ];
+int valuetbl[3] = {1, 2, 3};
+int wintbl[3][3] = {
+ {3, 6, 0},
+ {0, 3, 6},
+ {6, 0, 3}
+};
+
+
+int score(char a, char b) {
+ return valuetbl[b - 'X'] + wintbl[a - 'A'][b - 'X'];
+}
+
+int main() {
+ FILE *fp = fopen("input", "r");
+ if (fp == NULL) return -1;
+ int scr = 0;
+ while (fgets(buf, BUFSZ, fp)) {
+ if (strlen(buf) <= 1) continue;
+ scr += score(buf[0], buf[2]);
+ }
+ printf("%d\n", scr);
+ return 0;
+}
diff --git a/advent-of-code/2022/02/2.c b/advent-of-code/2022/02/2.c
new file mode 100644
index 0000000..5ec98ec
--- /dev/null
+++ b/advent-of-code/2022/02/2.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define BUFSZ 1024
+
+char buf[BUFSZ];
+int valuetbl[3] = {1, 2, 3};
+int wintbl[3][3] = {
+ {3, 6, 0},
+ {0, 3, 6},
+ {6, 0, 3}
+};
+char decodetbl[3][3] = {
+ {'C', 'A', 'B'},
+ {'A', 'B', 'C'},
+ {'B', 'C', 'A'}
+};
+
+
+int score(char a, char b) {
+ b = decodetbl[a - 'A'][b - 'X'];
+ return valuetbl[b - 'A'] + wintbl[a - 'A'][b - 'A'];
+}
+
+int main() {
+ FILE *fp = fopen("input", "r");
+ if (fp == NULL) return -1;
+ int scr = 0;
+ while (fgets(buf, BUFSZ, fp)) {
+ if (strlen(buf) <= 1) continue;
+ scr += score(buf[0], buf[2]);
+ }
+ printf("%d\n", scr);
+ return 0;
+}
diff --git a/advent-of-code/2022/02/input b/advent-of-code/2022/02/input
new file mode 100644
index 0000000..132a692
--- /dev/null
+++ b/advent-of-code/2022/02/input
@@ -0,0 +1,2501 @@
+B Y
+C Z
+C Y
+C Y
+A X
+C Y
+C Y
+C Y
+A X
+B X
+B Y
+B Y
+B Z
+C Z
+C Z
+C Z
+B Y
+A Z
+C Y
+C X
+B Z
+C Y
+C Z
+B Y
+B Y
+A X
+B Y
+A X
+C Y
+B Y
+B X
+A Y
+C X
+A Y
+B Y
+B Y
+A Y
+B Y
+A Z
+B Y
+B X
+C Z
+B X
+B Y
+A Z
+B X
+C Y
+C X
+C Y
+C Y
+B Y
+C Z
+C Z
+B Y
+B Y
+B Y
+C X
+B Y
+B Z
+B Y
+B X
+C X
+B X
+A Y
+C Z
+C X
+B Y
+B Y
+C Z
+B X
+C X
+C Y
+C Y
+C Y
+B X
+C Z
+C Z
+B Z
+B Y
+C Y
+C Y
+B Z
+A Y
+B Y
+A X
+B Y
+A X
+A X
+B Y
+B Z
+A X
+C Y
+C Z
+C Y
+C Z
+B X
+C Y
+A X
+B Y
+C Y
+C Z
+A Z
+A Z
+C Z
+A Y
+C Y
+B Y
+B Z
+C X
+A Z
+A Y
+C Z
+B X
+C Y
+C Y
+B Z
+C X
+B Y
+C Y
+A X
+C X
+B Y
+C Y
+B Y
+C X
+B Z
+C Y
+C Z
+B Y
+B Y
+B Y
+B Y
+B Z
+C Y
+B Z
+A Y
+C Z
+C Z
+C Z
+B Y
+B X
+C Z
+C Z
+C Z
+C Z
+C Z
+B Y
+C Y
+A Z
+B Y
+C Y
+A Y
+B Y
+C X
+A X
+A Y
+C Z
+C Y
+B X
+C Z
+B Y
+C Y
+C Y
+C X
+B Z
+B Z
+C Z
+A X
+B Z
+C Y
+C X
+C Z
+A X
+A X
+C X
+B Y
+C Y
+B Y
+B Y
+B X
+C X
+B Y
+B Y
+C Y
+A Y
+C Y
+B Y
+C Y
+A Y
+B Z
+C Y
+B Y
+C Y
+B Z
+A X
+C Z
+C Y
+B Y
+C Y
+C Y
+A X
+B Y
+C Y
+A Z
+C X
+A X
+B Y
+A X
+A X
+C Z
+B Y
+C Z
+C Z
+C Z
+C Z
+B Y
+C Y
+A Z
+A X
+B Y
+C Z
+B Z
+C X
+C X
+B Y
+C Y
+B Y
+B Z
+B Z
+C X
+B Y
+C X
+C X
+A Z
+B Y
+B X
+A Z
+A Y
+A X
+A Y
+C Y
+A X
+A Y
+C Y
+C Z
+B Y
+A Y
+C Y
+B X
+A Y
+B Y
+A Y
+B Y
+C Y
+A Y
+B Y
+C Y
+C Y
+C Y
+B Y
+C Z
+C Z
+A Z
+B Y
+C X
+B Z
+C Y
+A X
+B X
+B Z
+A Y
+C Z
+A X
+A Z
+C Y
+B Y
+B Y
+B X
+B Y
+B Y
+B Z
+A Y
+B Y
+A X
+C Y
+C Z
+C Z
+B Y
+C Y
+B Y
+C X
+C Y
+A Y
+B Y
+C Z
+B Y
+C Y
+C Y
+B X
+A Z
+A Y
+A Y
+C Y
+C Y
+B Y
+B Z
+B Y
+A Z
+B Y
+A X
+C Y
+A X
+C Z
+C Z
+C Y
+C Y
+A Y
+C Z
+C Z
+C Y
+B Y
+C Z
+B Z
+A X
+C Z
+A Y
+B Y
+A X
+A X
+A X
+B Z
+B Y
+A Y
+A X
+B X
+C Z
+B Y
+C X
+C Z
+A Z
+C Y
+A Z
+A Y
+A Z
+C Y
+A Z
+C Y
+B Y
+B Y
+A X
+A Y
+B Y
+B X
+A Y
+C Z
+B Y
+C Y
+C Z
+B Y
+C Y
+A X
+A X
+B Y
+B Y
+C Z
+A X
+B Z
+A X
+C Y
+B X
+C Z
+B Y
+C Y
+A Z
+C Z
+C Y
+C Z
+C Y
+B X
+B X
+C Z
+A Z
+C X
+C X
+A X
+B Z
+A X
+B X
+A Y
+B Y
+C Y
+C Z
+C Y
+C Z
+C Z
+B Y
+C Y
+B Z
+C Z
+C Z
+C Y
+B Y
+C Y
+A Y
+B Y
+C Z
+B Y
+A X
+C Y
+C X
+C Z
+B Y
+B X
+B Y
+C Y
+B Z
+A Z
+C Z
+C Y
+C Z
+C Y
+A X
+B Y
+A X
+B Y
+B Y
+A X
+C Y
+B X
+A X
+C Z
+C Z
+A X
+A Y
+A Y
+C X
+B Y
+A X
+B Y
+A Z
+A X
+C Y
+A X
+C Y
+C Z
+C Y
+B Z
+A X
+B Z
+B Z
+A Z
+C X
+C Y
+B Y
+C X
+C Y
+C X
+C X
+B X
+C X
+C Z
+A X
+A Y
+A X
+B X
+B Y
+B Y
+C Z
+B Z
+B Z
+B Y
+C Z
+C Y
+C Z
+B X
+C Y
+C Y
+C Z
+B X
+C Y
+C Z
+B Y
+B Z
+C X
+B Z
+C Y
+A X
+A X
+A Z
+B Y
+C X
+C Y
+B X
+A X
+A Y
+C Z
+A Y
+C Y
+C Z
+C X
+C Z
+C Z
+A X
+B Y
+A X
+A Z
+B X
+C X
+B X
+B Y
+C Y
+C Y
+C Z
+C Y
+C Y
+C X
+C Z
+C Y
+B Z
+C Y
+B Y
+A Y
+B Y
+C Y
+A X
+C Y
+B Z
+B Y
+C X
+C X
+C Z
+C Y
+B Y
+C Y
+B Y
+B Y
+C X
+C X
+C Y
+B Y
+B Y
+B X
+C X
+A Z
+B X
+C Y
+B X
+C Y
+C Y
+B X
+B X
+C Y
+A X
+B Y
+A Y
+B Y
+B Y
+B Y
+A X
+C Z
+A Y
+C X
+A Y
+C Y
+A X
+C Y
+C Z
+B Y
+B Y
+A Y
+C Y
+B Y
+C Y
+C Y
+A Z
+B Y
+A X
+C Z
+C Y
+A X
+A X
+C X
+B Y
+A X
+A Z
+C Y
+C Z
+B Y
+A X
+C Z
+C Z
+B Y
+B X
+C Y
+B Y
+B Y
+C Z
+B X
+B Z
+C Y
+C Y
+B X
+C Z
+C X
+A Y
+B X
+C Y
+B Y
+C Z
+C Y
+B Y
+C Z
+C X
+A Y
+B Y
+C Z
+C Y
+A Y
+C Y
+B Y
+B Y
+C Y
+B Z
+C Y
+C Y
+B Z
+C Y
+B Y
+A X
+C Z
+C Y
+C Z
+C Y
+A X
+A Z
+C Y
+A Y
+C X
+B X
+A X
+C Y
+C Z
+A X
+C Y
+C Y
+A Z
+C X
+B Z
+C X
+C Y
+B Z
+A X
+A X
+B Z
+A X
+A Y
+B X
+C Y
+A Y
+C Y
+A Z
+C Y
+B X
+B Y
+A Y
+C Y
+C Y
+C Y
+C Z
+B X
+C Z
+C Y
+B Y
+B Y
+C Z
+B Z
+B Y
+A X
+C Y
+C X
+A Y
+B Z
+C X
+A Z
+B Z
+C Z
+C Z
+C Y
+C Y
+B Y
+B Y
+B X
+A Z
+C Y
+A Y
+C Z
+A Y
+A X
+C Z
+C Y
+A X
+B Y
+C Z
+C Y
+C Z
+C Y
+C X
+B Z
+B Y
+B Y
+A Z
+B Z
+B Y
+C Z
+B Y
+B X
+C Z
+B Y
+C Z
+C Y
+C Y
+A X
+B Y
+B Z
+A X
+C X
+A Y
+B X
+B Y
+A Y
+A X
+A Z
+A X
+C Y
+B Z
+A Z
+C Z
+C X
+A X
+C X
+A X
+B Z
+C Y
+B Z
+C Z
+C Z
+A X
+A Z
+C X
+B Y
+C Z
+A X
+C Y
+A Y
+B Y
+C Y
+B X
+A X
+B X
+C Y
+A Z
+B X
+B Y
+C X
+B Y
+A Y
+B Y
+A Z
+C Z
+C Z
+C Z
+C Y
+B Y
+B Y
+C Z
+C Y
+A Y
+A Y
+C Z
+A Z
+C Y
+C Z
+C Y
+C Z
+A X
+C X
+C Z
+B Y
+C Z
+C Y
+B Y
+B Y
+A Z
+A Z
+C Y
+C Z
+C Z
+C Z
+C X
+B Z
+C Y
+A Z
+C Y
+B X
+B Y
+C Y
+B Y
+C Z
+C Z
+B Y
+C Y
+A Z
+B Y
+B Y
+B Y
+B Y
+C Y
+B Y
+A X
+C Y
+A Y
+C Y
+C Z
+A Y
+A Z
+C Y
+C Y
+C Y
+C Z
+B Y
+A Y
+B Y
+C X
+B Y
+B Y
+B Y
+C Y
+B X
+C Z
+A X
+B Y
+C Z
+C Z
+B Z
+B Y
+C Y
+B Y
+B Y
+C X
+B X
+A Y
+A Z
+C Z
+A Z
+C Z
+C Z
+C Z
+A Z
+C Y
+C X
+A X
+C X
+A Z
+C Y
+C Z
+C Z
+B Y
+C Y
+A X
+C X
+C Y
+C Z
+A X
+A Z
+C X
+A X
+B Y
+A X
+C X
+A X
+C Y
+B Y
+C Z
+B X
+A Z
+C Z
+B Z
+C Z
+C Y
+B Y
+C Z
+C Y
+A Y
+B X
+B X
+A Z
+B Y
+A X
+C Y
+C Y
+B Y
+A X
+B Y
+B Y
+C Z
+A Y
+C Z
+C Z
+B Y
+C Z
+C Z
+C Y
+C Y
+C X
+C Y
+A Z
+C Y
+A Z
+C Z
+B X
+A X
+C Z
+C Z
+B Y
+C Y
+C Y
+A X
+C Y
+A X
+C Y
+C Z
+B Y
+B Z
+A X
+B Y
+A Y
+B X
+C X
+A Y
+A X
+C Y
+C Z
+A X
+C Y
+A Y
+C Y
+B Y
+C X
+C Z
+C Y
+A X
+B Y
+B Y
+A X
+C Y
+B Y
+C Y
+A Y
+B Y
+B Z
+B X
+B Y
+C Y
+B Y
+A Y
+C Z
+C Y
+C Z
+C Y
+B Z
+C X
+C Z
+C Y
+C X
+A X
+C Y
+C X
+B Y
+C Y
+C Z
+C Y
+B Y
+B Y
+C Y
+C Z
+B Z
+C Y
+C Z
+B Y
+C Z
+C X
+C Y
+C Y
+C Z
+A X
+A Y
+C X
+C Y
+C X
+C Y
+A X
+C Y
+A X
+B Y
+B Y
+A X
+B X
+A Y
+B Y
+C Z
+C Y
+C Y
+B Y
+A Z
+C Z
+A Z
+B Y
+B Y
+C Y
+C Z
+B Y
+C Z
+B Z
+C Z
+C Y
+A X
+C Z
+B Y
+A Z
+C Y
+C Z
+A Y
+C Y
+B Y
+C Z
+B Z
+B Y
+B Z
+B Y
+C Y
+C Y
+C Z
+B Y
+A X
+B Y
+B Y
+C Y
+B Z
+B Y
+C Y
+C X
+C Z
+C Z
+B Y
+C Y
+C Z
+B Z
+C Z
+C Z
+B Y
+C X
+C X
+B Y
+C Z
+B Y
+B Y
+C X
+A Z
+B Z
+B X
+B X
+C Z
+C Z
+B Z
+A Y
+C Y
+B Y
+C X
+C Z
+A Z
+B Z
+C Y
+B Y
+B Z
+C Z
+A X
+C Z
+B Y
+A Y
+B Y
+B Z
+A X
+C Y
+A Z
+C Z
+C Y
+B Y
+A Y
+B Y
+B Y
+C Y
+A X
+B Y
+C Z
+C Z
+C Y
+B Z
+B Y
+B Z
+B X
+C Y
+A X
+B Y
+C Z
+C Y
+C Z
+C Z
+C X
+C Y
+C Z
+B Y
+A X
+C Y
+C Y
+C Y
+A Y
+A Y
+A Y
+C X
+B Y
+B Y
+A Y
+C Z
+C Z
+B Z
+C Y
+B Y
+A X
+C X
+B Y
+C Y
+B Y
+B Z
+C Z
+A Y
+B Z
+C X
+B Y
+C Z
+C Z
+C Y
+B Y
+B Z
+B Y
+B X
+B X
+C Z
+A Y
+B Y
+C Z
+C Y
+A Z
+A Z
+C Z
+C Y
+B Y
+A Y
+B Y
+B Y
+A X
+C Y
+A X
+C Z
+B Y
+B Y
+B Y
+A Y
+C Y
+C Z
+B Y
+C Y
+C Y
+B Y
+A X
+C Y
+C Y
+B Y
+B Y
+C Z
+A X
+C Y
+C Y
+C Y
+B Y
+C Y
+A Z
+B Y
+C Y
+A Z
+A Z
+C Z
+C Z
+B Y
+A Y
+B Z
+C Z
+B Y
+B Z
+A Y
+C X
+A X
+C Y
+B X
+B Y
+A Y
+B Y
+C Z
+A Z
+B Y
+C Z
+B Y
+C Z
+C Z
+A X
+C Y
+A Z
+B Y
+B Y
+B Y
+B Z
+A Y
+C Z
+A Y
+B Y
+B Y
+B Y
+B X
+A Y
+C Y
+A X
+C Y
+A X
+A X
+B Y
+B Z
+B Y
+B Y
+C Y
+C Y
+B Y
+C Z
+A X
+A Z
+A Y
+C Y
+C X
+B Z
+A X
+A Y
+C Y
+C Z
+B Y
+C X
+B Y
+B X
+B Y
+A Y
+A Z
+B Z
+A X
+A Z
+B Y
+B Z
+C Y
+C Y
+C Y
+A Y
+B Y
+B Y
+B Y
+A Z
+B Y
+C Y
+B Y
+A Y
+A X
+B Y
+C Y
+A Y
+C Y
+C Y
+A Z
+C X
+C Y
+C Y
+B X
+A Y
+B Z
+A Z
+B Y
+C Z
+C Z
+C Z
+B Y
+A Y
+B Z
+C Y
+A X
+B Y
+A Y
+B Y
+B Y
+C Y
+B X
+C X
+C Y
+C Z
+B Y
+C Z
+A Y
+A X
+C Y
+B Y
+C X
+A X
+C Z
+C Y
+C Z
+C Y
+A X
+C Y
+C X
+C Z
+B Y
+B Y
+A Z
+A Y
+B Z
+C Z
+C Z
+C Z
+C Y
+A Z
+B Y
+A X
+C Y
+A X
+B Z
+B Y
+B Y
+B Y
+A X
+B Y
+C X
+A X
+A X
+B X
+B Y
+C Y
+A X
+B Y
+B X
+B Z
+B Y
+B Y
+C Y
+B Y
+C Z
+A Z
+C Y
+C Y
+A X
+A X
+C Y
+B Y
+C Z
+C Y
+B Y
+B Z
+B Z
+A X
+C Y
+C Y
+B Y
+A Y
+C Z
+A Z
+C X
+B Y
+B Y
+C Z
+A Z
+B Y
+B Y
+C Y
+C Z
+A X
+B Y
+B Y
+C Y
+B Y
+C Y
+C Y
+C Y
+A X
+C Y
+B Y
+B Y
+A X
+A Y
+B Y
+B Y
+C Z
+C X
+C Z
+A X
+A X
+C Y
+C X
+B Z
+B X
+C Z
+C Z
+B Y
+B Y
+C Y
+C Y
+C Z
+C Y
+A X
+B Z
+B Y
+C Z
+C X
+C Y
+B Y
+B Y
+B Y
+C Z
+B Y
+A X
+C Z
+B X
+B Z
+A Y
+A Z
+B Y
+B X
+A X
+B Y
+B Y
+A Z
+A X
+C X
+A Z
+A X
+A Z
+C Z
+A X
+C Y
+B Y
+B Y
+C Y
+B Z
+B X
+C Y
+B Y
+A Z
+C X
+C Y
+B Y
+A Z
+C Y
+C Y
+A X
+C X
+C Y
+C X
+A Y
+B Z
+A Z
+C Z
+B Y
+C Z
+C Y
+A Z
+B Y
+A Z
+C Y
+A X
+A Z
+B Y
+B Y
+B Z
+B Y
+A X
+C Y
+B Y
+C Y
+B Y
+A X
+C Z
+B Y
+C Y
+A X
+C Y
+B Y
+B X
+C X
+A X
+B Y
+C Y
+B Y
+B Y
+C Z
+B X
+C Z
+A X
+C Z
+A X
+A Z
+C Y
+C Y
+B Y
+B Y
+A Z
+A X
+C Z
+B Y
+B Y
+A Y
+C Y
+C Z
+C X
+C Y
+A Y
+B Z
+C Z
+A Z
+C Y
+C X
+C X
+B Z
+A X
+C Y
+A X
+C Z
+B Y
+C Y
+A Z
+A X
+B Y
+B Y
+B X
+C Z
+C X
+B Y
+C X
+A Y
+A Y
+C Z
+C Z
+C Z
+B Z
+C Z
+A Y
+C Z
+A X
+A Y
+C Z
+B Y
+C Y
+C X
+C Z
+B Y
+A X
+B X
+B Y
+B X
+C Y
+A X
+B Y
+C Y
+C Y
+B Y
+B Y
+A X
+A Y
+C X
+C Y
+B Y
+C Z
+A X
+C Z
+B Z
+C Z
+C Y
+C X
+C Y
+A X
+B Y
+C X
+A X
+C Y
+C X
+C Y
+A Z
+C Y
+B Y
+C X
+C Z
+C Y
+B Y
+C Y
+A Y
+A X
+C Y
+C Y
+C Z
+A X
+B Y
+C Y
+B Z
+C Y
+B Y
+A X
+B Z
+C Z
+C Z
+C Y
+C X
+B Z
+C Z
+C Z
+B Y
+B X
+A Z
+A X
+C Y
+A X
+B X
+A X
+A Z
+C Z
+C Y
+C Z
+C Z
+B Z
+C Z
+B Y
+C Y
+B Y
+A Z
+C Y
+B Y
+C Z
+A Y
+B Z
+B X
+B Y
+B Y
+C Y
+C Y
+B Y
+B X
+B X
+A X
+C Z
+B Y
+C Z
+C Y
+B Y
+A X
+C X
+C Z
+B Z
+C Y
+C Y
+B Y
+B Y
+C Z
+A X
+B Y
+C Z
+C Y
+C Z
+C Y
+B Y
+C Y
+C X
+C X
+A X
+A X
+B Z
+B Y
+B Y
+C Z
+A X
+B Y
+A Y
+B Y
+A Z
+C Z
+C Y
+A Y
+A X
+B Y
+B Y
+C X
+A X
+C Z
+C Y
+A Z
+B Y
+C Z
+C X
+B Z
+C Z
+B Y
+A Y
+B Y
+B Y
+A X
+B Z
+B Y
+C Z
+C Y
+B X
+A Z
+C Z
+B Y
+C Y
+A Z
+B Y
+A Y
+B Y
+B Z
+A Z
+B Y
+C Y
+C Y
+C Y
+A X
+B Y
+C X
+C Y
+A X
+B Z
+A Y
+C Z
+B Y
+B Z
+B Y
+C Y
+B Z
+B Y
+B Z
+C Y
+B Z
+B Y
+B Z
+C Y
+A Y
+C Z
+C Y
+C Y
+B Y
+A Y
+A Z
+A X
+C Z
+B Z
+C X
+B Y
+B Y
+C Z
+A X
+C Z
+C Y
+B Z
+A Z
+B Y
+C Y
+C Y
+A X
+B Y
+C X
+A X
+B Y
+A Y
+A X
+B Z
+C Z
+C X
+A Z
+C Y
+A Y
+C Y
+A X
+C Z
+B Y
+A X
+B Y
+B Y
+A Z
+C Z
+A X
+A X
+A X
+A X
+C Y
+B Y
+C Y
+C X
+C Y
+A Y
+C Z
+A X
+B X
+B Y
+C Z
+B Y
+B Z
+A X
+C Y
+B Y
+C Y
+B Y
+C Z
+C Y
+C X
+A Y
+A Y
+C Y
+A Z
+B Y
+A Y
+B Z
+B Y
+C Y
+A Y
+B Y
+C X
+C Y
+C Z
+C Z
+A X
+C Z
+B Y
+B X
+B X
+A Y
+C Z
+A Y
+C X
+A X
+C Z
+C Y
+C X
+C X
+C Z
+A Z
+C Z
+B Y
+B Z
+C Z
+C Y
+A X
+A X
+C X
+B X
+C Y
+B Y
+B Z
+C Z
+C Z
+B Y
+B Y
+B Z
+A X
+B Y
+A X
+B Y
+C Y
+B X
+C Z
+C Z
+C Y
+A Y
+B Y
+B Y
+B Y
+C Z
+A Z
+A Z
+A Y
+A Y
+B Y
+C Z
+C Z
+A Z
+A Z
+B Y
+A Z
+A Y
+C Y
+B Y
+B Y
+A X
+C Z
+C Z
+B Y
+A X
+B Y
+A Z
+B Y
+A X
+A X
+C Z
+C Y
+B Y
+C Y
+B X
+B Y
+A Y
+B Y
+B X
+C Y
+B Y
+C Y
+C Y
+B Y
+C X
+C Y
+A X
+B Y
+C Y
+A Y
+B Y
+A X
+C Z
+B Y
+C Y
+B Y
+C X
+A Y
+C Z
+B Y
+B Y
+B Z
+B Z
+C Z
+C Z
+C Z
+A Y
+B Y
+A Z
+A X
+C Z
+B Y
+A X
+B Y
+B X
+C Z
+B Y
+C Y
+B X
+C X
+C X
+A Z
+C X
+A Z
+C Z
+B X
+C Y
+A X
+C Y
+B Y
+C Y
+B Y
+C Z
+C Z
+C Z
+C Z
+C Z
+C Y
+A X
+B X
+B X
+B Z
+A X
+C Y
+A X
+C Z
+C Z
+C Y
+A X
+C Z
+A X
+A X
+A X
+C Z
+C X
+B Y
+C Y
+B Z
+C Y
+B Y
+A X
+A Y
+C Z
+B Y
+B Y
+B X
+C Z
+C Z
+A Y
+A X
+C Y
+A X
+C Y
+C Y
+B Z
+B Y
+B X
+C Y
+A Y
+A X
+B Y
+B Y
+C Y
+A Y
+B Y
+B Y
+B X
+A Z
+C Y
+C Y
+B Z
+C Y
+B Z
+B Y
+C Y
+A Y
+B Y
+A X
+C Y
+C Z
+C Y
+A X
+C Z
+B Y
+B Z
+A X
+C Y
+C Y
+C Y
+C Z
+B Y
+B Y
+A X
+C Y
+B Y
+A Y
+C Z
+C X
+C Y
+A X
+C Y
+C Z
+A X
+C Y
+A Z
+B Y
+B X
+B Y
+B Z
+B Y
+B Y
+B Y
+C X
+A X
+B Y
+A X
+A Y
+C Z
+C Y
+C Z
+C Y
+B Y
+B X
+B X
+C X
+B Y
+A X
+A X
+C Y
+C X
+B X
+C X
+C Z
+C Z
+B Z
+C Z
+C X
+B Y
+B X
+B Y
+C Y
+A Y
+A Y
+C Z
+B X
+B Y
+B Z
+A X
+C Y
+A Y
+C Y
+C Z
+C X
+B Z
+A X
+A X
+A Y
+A Y
+A Z
+B Y
+C X
+C Z
+C Z
+B Y
+B Z
+C Y
+B Y
+C Y
+B Y
+B Y
+B Y
+C Y
+C Y
+C Y
+A X
+B X
+C Z
+C Y
+A X
+B Y
+A Y
+C Y
+A X
+B Y
+B X
+B Y
+C X
+C Z
+A X
+C Y
+B Y
+A Y
+C Z
+C Y
+B Z
+C Z
+B Y
+A X
+B Y
+C Z
+A Y
+B Y
+A Y
+B Y
+B X
+C X
+C Y
+A Y
+B Z
+A X
+A Z
+B Y
+A X
+C Y
+B Y
+A Y
+A X
+B X
+B X
+B Y
+A Z
+C Z
+C Y
+C X
+C X
+C Z
+C Y
+B X
+A Y
+C Y
+B Y
+B Y
+A X
+B Y
+B Y
+A Z
+A Y
+B X
+A Z
+B Z
+B Y
+A X
+A X
+C Y
+A Y
+C Y
+C Z
+A Y
+C Y
+C X
+C X
+C Y
+B X
+A X
+A Y
+B X
+A Y
+C X
+B Y
+B Z
+B Y
+A Y
+C Y
+B X
+A Z
+A X
+B Y
+C X
+C Y
+C Y
+B Y
+A Y
+C Y
+C Y
+B Y
+C Y
+B Z
+B Y
+B Y
+A Y
+B Y
+C Z
+B Y
+B Y
+B X
+B Y
+B Z
+C X
+B X
+C Z
+B Z
+C Z
+A X
+C X
+A X
+B Y
+B X
+B Y
+C Y
+C X
+B Y
+A X
+B Y
+B Y
+C Y
+A X
+C Y
+C X
+B Z
+A Z
+C Y
+B Z
+A X
+B Y
+A X
+B Y
+A Y
+C Y
+C Y
+C Y
+C X
+C Z
+A X
+B Y
+C Y
+B Z
+C Z
+C Z
+C Z
+C Y
+C Y
+C Y
+A X
+B Y
+B Y
+B Y
+B Y
+B Y
+C Z
+A Z
+C X
+A X
+C Z
+A X
+C Y
+C Y
+C Z
+C Y
+C Y
+C Y
+C Y
+C Z
+A Y
+B Y
+B Z
+C Z
+A X
+A Y
+C Z
+C Z
+A Y
+C X
+A Z
+B Y
+B Y
+A Y
+C Z
+A X
+C Y
+A X
+C X
+B Y
+B Y
+B Y
+A Z
+B Z
+C Y
+A X
+B Y
+B Z
+B Y
+B Y
+C Z
+A Y
+B Y
+C Z
+A X
+C Y
+C X
+C Y
+B X
+C Z
+C Z
+B Y
+A Z
+A Y
+C Z
+B X
+B Y
+B Y
+A Y
+C X
+C Y
+B Y
+A Y
+A X
+B Y
+C X
+B Y
+B X
+C Z
+C Z
+C Y
+C Z
+C Z
+C X
+A X
+A Y
+C Y
+B Y
+B Y
+C Y
+A Y
+C Z
+A Y
+A X
+B X
+C X
+C Z
+C Z
+B X
+C Y
+A Z
+C Z
+C Z
+C Y
+A X
+C Z
+B Y
+A Y
+A X
+C Y
+C Y
+C Y
+B Y
+A Z
+C Y
+C Y
+C Y
+B Y
+B X
+C Y
+A Z
+B Y
+B Y
+C Y
+C Z
+C Y
+A X
+A X
+C Y
+C Y
+B Z
+A Y
+B Y
+A X
+A X
+C Y
+B Y
+B Z
+C Z
+C Y
+C Y
+C X
+B Z
+A Z
+B X
+B Y
+B Y
+A Y
+A X
+C Z
+C X
+C Z
+A Z
+B Y
+A Z
+A X
+A X
+B Z
+B Y
+A Z
+A X
+A Z
+B Y
+B Y
+C Z
+C Y
+A Y
+A Y
+B Y
+A Y
+C Z
+C Y
+C Z
+C Y
+C Z
+C Z
+C X
+C X
+C X
+B Y
+C X
+C Z
+B Y
+B Y
+C Y
+B Y
+C Y
+B X
+B Y
+B Z
+C Z
+B Y
+C Y
+B Y
+C Y
+A X
+B Y
+B Y
+C Z
+B Y
+