summaryrefslogtreecommitdiff
path: root/day-2
diff options
context:
space:
mode:
Diffstat (limited to 'day-2')
-rw-r--r--day-2/index.js49
-rw-r--r--day-2/input.txt2500
2 files changed, 2549 insertions, 0 deletions
diff --git a/day-2/index.js b/day-2/index.js
new file mode 100644
index 0000000..3671a9b
--- /dev/null
+++ b/day-2/index.js
@@ -0,0 +1,49 @@
+const fs = require('fs');
+const input = fs.readFileSync('./day-2/input.txt').toString();
+
+const lines = input.split('\n');
+
+const [ROCK, PAPER, SCISSORS] = ['rock', 'paper', 'scissors'];
+const [LOSS, WIN, DRAW] = ['loss', 'win', 'draw'];
+
+const defeatMap = { // What defeats what
+ [ROCK]: SCISSORS,
+ [SCISSORS]: PAPER,
+ [PAPER]: ROCK,
+}
+
+const shapeMap = {
+ A: ROCK,
+ B: PAPER,
+ C: SCISSORS,
+
+ X: ROCK,
+ Y: PAPER,
+ Z: SCISSORS,
+}
+
+const shapeScores = {
+ [ROCK]: 1,
+ [PAPER]: 2,
+ [SCISSORS]: 3,
+};
+
+const outcomeScores = {
+ [LOSS]: 0,
+ [DRAW]: 3,
+ [WIN]: 6
+};
+
+const result = lines.reduce((acc, line) => {
+ const [opponentShape, shape] = line.split(' ').map(code => shapeMap[code]);
+ if (!shape || !opponentShape) return acc;
+
+ let outcome = LOSS;
+ if (shape === opponentShape) outcome = DRAW;
+ else if (defeatMap[shape] === opponentShape) outcome = WIN;
+
+ return acc + shapeScores[shape] + outcomeScores[outcome];
+}, 0)
+
+console.log(result);
+
diff --git a/day-2/input.txt b/day-2/input.txt
new file mode 100644
index 0000000..60a9320
--- /dev/null
+++ b/day-2/input.txt
@@ -0,0 +1,2500 @@
+A Y
+C Y
+C X
+A Y
+C X
+C Y
+B Z
+A Y
+A Y
+C Z
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A X
+B X
+A X
+A Y
+C Y
+C X
+A Y
+A Y
+C Y
+A X
+A Y
+B Z
+A Y
+C X
+A Y
+A Y
+C Z
+C Y
+C X
+A Y
+A Z
+A Y
+A Y
+A Y
+A Y
+C Y
+C Y
+B Z
+B Z
+C Y
+B X
+A Y
+A Y
+A Y
+C Z
+A Y
+C X
+A Z
+C Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C X
+A Y
+C Y
+A Y
+C Y
+A Y
+A X
+C Y
+A X
+A Y
+C Y
+C Y
+A Y
+C X
+A Y
+A Y
+A Y
+C X
+A Y
+A Y
+A Y
+C X
+A Y
+C X
+A Y
+A Y
+C Z
+A Y
+A Y
+A Y
+C X
+A Y
+A X
+C Y
+A X
+B Z
+C Y
+A Y
+A Y
+B Z
+C Y
+A Y
+A Z
+C Z
+C Y
+B Z
+A Y
+A Y
+C Y
+A Y
+C X
+A Y
+A Y
+C X
+C X
+C Y
+A Y
+A Y
+C X
+A Y
+A Y
+A Y
+A Y
+C X
+C Y
+A Y
+A Y
+A Y
+C Z
+A Y
+C Y
+A Y
+C X
+C Z
+A Y
+B X
+A Y
+C X
+A Y
+B X
+A Y
+C Z
+A Y
+A Y
+A Y
+A X
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C Y
+C X
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A Y
+C Y
+B X
+A Y
+A Y
+A Y
+A Y
+A Y
+A X
+C Y
+A Y
+C X
+A X
+B Y
+A Y
+C X
+A Y
+C Y
+C Y
+A Z
+C Z
+C X
+B X
+C Y
+A Y
+C Z
+A Z
+A Y
+C X
+A Y
+A Y
+C X
+A Y
+B X
+C X
+A Z
+C Y
+A Y
+C X
+A Y
+A Y
+A Y
+B Z
+C Z
+A Y
+A X
+C X
+A Y
+A Y
+C Y
+A Y
+A Y
+A X
+A X
+C Y
+C X
+B X
+A Y
+A Y
+A Y
+A Y
+B Y
+A Y
+C Y
+A Y
+A X
+B Z
+A X
+C Z
+C X
+C X
+C Y
+C X
+C X
+A X
+C X
+A Y
+C Y
+A X
+C X
+B Z
+C Z
+A Y
+C X
+B Y
+A Z
+C Y
+C X
+A Y
+A Y
+A Y
+C X
+A Y
+A Y
+A Y
+A X
+B Y
+C Y
+C X
+B Z
+A Y
+A Y
+B Y
+A Y
+A Y
+A Y
+C X
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+C Y
+C Z
+A Y
+C Y
+A Y
+A Y
+A X
+A X
+A Y
+A Y
+C Y
+A Y
+A X
+A Y
+A Y
+C X
+A Y
+C X
+C X
+C Y
+B Y
+A Y
+C X
+A Y
+A Y
+A X
+A Y
+A Y
+A X
+A Y
+B Z
+C Y
+A Y
+A Y
+A Y
+C Y
+C Z
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+C Y
+C Y
+C Y
+C Y
+A X
+C Y
+A Y
+A Y
+A Y
+A Y
+C X
+A Y
+C Z
+A Y
+B Y
+A X
+A Y
+A Y
+A Y
+C Y
+C Y
+A X
+C Y
+A Y
+A Y
+A Y
+B Z
+A X
+A Y
+A Y
+A Z
+C Y
+A Y
+C X
+C Y
+C Y
+C Z
+B Y
+C X
+C X
+A Z
+C Y
+A Y
+A Z
+A X
+A Z
+C Y
+C X
+B Z
+A X
+C Y
+A Y
+C Y
+B Z
+A Y
+A Y
+C X
+C X
+C X
+A Y
+B X
+C X
+C Y
+C X
+A X
+A X
+B X
+A Y
+A Y
+A Y
+C X
+A Y
+C Y
+C X
+A Y
+B Z
+A Y
+A Y
+A Y
+B X
+A Y
+A Y
+A Y
+C Y
+A Y
+C X
+C Y
+C Y
+A Y
+B Z
+C Y
+C X
+C Y
+C X
+C X
+C Y
+A Y
+A Z
+A Y
+A Y
+A Y
+A Y
+C Z
+A Y
+A Y
+C Y
+A Y
+A X
+C Z
+C Y
+C X
+C X
+A Y
+A Z
+A Z
+B Y
+A X
+C X
+C X
+A Y
+A Y
+A Y
+C Z
+C X
+C X
+C X
+A Y
+C Z
+A Z
+C X
+C Y
+A X
+C X
+C X
+A Y
+C Y
+C Y
+B X
+B Z
+A Y
+A Y
+A Y
+B Z
+C Y
+A Y
+B Z
+A X
+C Y
+C Y
+B X
+C X
+B Y
+A Y
+B X
+C Z
+A Y
+A Z
+C Z
+C Z
+A Y
+A X
+A Y
+A X
+C Y
+A Y
+A Y
+A Y
+C X
+C X
+C X
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+C Y
+A Z
+C X
+C Y
+A Y
+A Y
+B Y
+C Y
+A Y
+C Z
+C Z
+A Y
+B Y
+A Y
+A Y
+A X
+C Y
+A Y
+A Y
+A Y
+C Z
+C Y
+C X
+A Y
+A Y
+B Z
+C Y
+C X
+C Z
+A Y
+C Y
+A Y
+A Y
+C X
+C Y
+C Y
+A Y
+C Y
+C X
+C Y
+A Y
+A Y
+A Y
+A Z
+B Z
+A Y
+A Y
+A X
+C Z
+C X
+A Y
+A Y
+A Y
+C X
+C Y
+B Z
+C X
+A Y
+A Y
+A Y
+C Y
+A Y
+C X
+C Z
+C X
+A Y
+A X
+A Y
+C Z
+C X
+B Y
+A Y
+A X
+A Y
+B Y
+A Y
+A Y
+C Y
+C Z
+C Y
+C Y
+C X
+A Y
+A Y
+A X
+A Y
+A Y
+A Z
+A X
+C Y
+A Y
+C Y
+C Y
+C Z
+C Y
+C Y
+A Z
+A Y
+C Z
+C Y
+C Y
+C Y
+B X
+C Y
+A Y
+C X
+A Y
+B X
+C Z
+C Z
+C Y
+A Y
+C X
+A Y
+A Y
+A Y
+A Y
+C Z
+A Z
+A X
+C Y
+C X
+A Y
+A Y
+C X
+C Y
+C Z
+C X
+C Y
+A X
+A Y
+A Y
+B X
+A Y
+A X
+C X
+A Y
+A Y
+A Y
+B Z
+A Z
+B Z
+C X
+B Z
+A Y
+C X
+A Y
+C X
+A Y
+A Y
+C Y
+A Y
+A Y
+B X
+A Y
+C Y
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A Y
+B Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C Y
+A X
+B X
+A Y
+B Z
+C X
+A X
+B X
+C Y
+A Y
+B X
+C Y
+A Y
+B X
+A Y
+C X
+B X
+A Y
+A Y
+A Y
+A Y
+C X
+C X
+A Y
+B X
+C Y
+A Y
+A Y
+A Y
+A Y
+B X
+A Y
+B Z
+C X
+A Y
+B Z
+C X
+C Z
+C Z
+B X
+C Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A X
+A X
+C X
+A Y
+C Z
+C Y
+A Y
+C X
+A Z
+A Z
+A Y
+C Z
+A Y
+A Y
+A Y
+C Y
+A X
+C X
+C Z
+A Y
+A Y
+C X
+B X
+A Y
+A Z
+C Y
+A Z
+A Y
+A Y
+A Y
+A Y
+A Y
+B X
+A Y
+C Y
+C X
+A Y
+A Y
+C Z
+C Z
+C Y
+A Y
+B Z
+A Y
+A Y
+A Y
+A Y
+A Y
+C X
+A Z
+A Y
+C Y
+A Z
+C X
+A Y
+C X
+A Y
+A Y
+C Z
+C Y
+A Y
+A Z
+C X
+C X
+A Y
+B Z
+A Y
+B X
+C Y
+C X
+C Z
+A Y
+A X
+C X
+C Z
+C Y
+C X
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+C Y
+A Y
+C Y
+B Y
+A Y
+A Y
+A Y
+A Y
+B Z
+C Y
+A Y
+C Y
+A X
+C Y
+A Y
+B Y
+C Y
+C X
+C X
+A Y
+A Y
+A Y
+C X
+A X
+A Y
+A X
+C Y
+A Y
+A Y
+C Y
+C Y
+A Z
+A Y
+A Y
+B X
+A Z
+B X
+A Y
+C Y
+A X
+C Y
+C Z
+B Z
+A Y
+A Y
+C Y
+A Y
+C Z
+A Y
+A X
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C X
+C Y
+A Y
+A Z
+A Y
+C X
+A Y
+C Z
+A Y
+C X
+A X
+A Y
+C Y
+A Y
+C X
+A X
+A Y
+A Y
+A Y
+C Y
+A Y
+C Y
+A Y
+B Y
+C Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C Z
+A Y
+C Z
+A Y
+C Y
+B X
+A X
+C Y
+C Z
+A X
+A Z
+A Y
+A X
+C Z
+C Y
+A Z
+C Y
+A X
+A Y
+A Y
+A X
+C Z
+A X
+A Z
+C Y
+A Y
+C Y
+A Z
+B Z
+A Y
+C X
+C X
+A Y
+A Y
+A X
+A Y
+A Y
+A Y
+C X
+A Y
+B X
+A Y
+C X
+A Y
+C Y
+A Y
+C Y
+C Z
+C Y
+C Z
+A Z
+A Y
+C Y
+C Z
+C Z
+A Y
+A Y
+C Y
+A X
+A Y
+C Y
+A Y
+A Y
+A Y
+A X
+A Y
+B Z
+C Y
+C X
+A Y
+C X
+B X
+C Y
+C Y
+A Y
+C Y
+C Y
+A X
+A Y
+A X
+A Y
+A Z
+C Z
+B X
+A Y
+C X
+A Y
+C Z
+A Y
+C Y
+A Z
+A Y
+A Y
+A Y
+C Y
+C Y
+A Y
+A Y
+C Y
+A Y
+C Y
+C Y
+A X
+A Y
+C X
+C Z
+A Y
+A Y
+A Y
+C X
+C X
+C Y
+C Y
+C Z
+A X
+A Y
+C Y
+C Z
+A Y
+B Y
+A Y
+C Z
+C Z
+A Y
+A Y
+A Y
+B Z
+A Y
+A Z
+A X
+C X
+C X
+C Z
+A Y
+C Z
+A Z
+C Y
+C Z
+C X
+C Y
+C X
+A Y
+C Y
+A Z
+A Y
+A Y
+A Y
+A Y
+C Y
+A X
+C X
+A Y
+A Y
+C Z
+B Z
+A Y
+A Y
+C X
+A Y
+C Y
+C Y
+B Z
+A Y
+C Y
+A Y
+C X
+C X
+A Y
+C Y
+A X
+C X
+A Y
+C Z
+A Y
+C X
+A Y
+C X
+A Y
+C Y
+A Y
+C Z
+A Y
+C Z
+A Y
+A Y
+A Y
+C Y
+A Y
+A X
+A Z
+A Y
+C Y
+C Y
+A Y
+A Y
+B Z
+A X
+A X
+C X
+C X
+C Z
+C Z
+A Y
+A Y
+A Y
+A X
+A X
+A Y
+A Z
+C Y
+C Y
+C X
+A Y
+C X
+B X
+A X
+A Z
+A Y
+B X
+A Y
+B Z
+B Z
+A Y
+B X
+C Y
+A Y
+A Y
+C Y
+C Y
+A Y
+A Y
+A Z
+A Y
+C Z
+B X
+A Y
+C Y
+C Y
+A Y
+B X
+C X
+C Y
+A X
+C X
+A Y
+A X
+A Y
+A Y
+B Z
+A X
+C Y
+A Y
+A Z
+B Y
+A Y
+B X
+A Z
+C Y
+C Z
+C Z
+C Z
+C Y
+A Y
+C Y
+C Y
+B Y
+A Y
+C Z
+B Y
+A Y
+A Y
+A Y
+A X
+B Z
+A Y
+C Z
+A Y
+A X
+C Z
+C X
+A Y
+A Y
+A Y
+B Z
+B Z
+A Y
+C Z
+A Y
+A Y
+A Y
+C Y
+C Z
+C X
+A Y
+B Z
+C Y
+B Z
+C X
+C X
+A Y
+A X
+A X
+B Z
+C Y
+C Y
+C X
+A Y
+C X
+C X
+A Y
+C X
+C Z
+A X
+C Y
+C Y
+C Y
+A Y
+A X
+C Y
+A Y
+A Y
+C Y
+C X
+C Y
+B X
+C X
+A Z
+A X
+A Y
+C Y
+A Y
+A X
+C Y
+A Y
+A X
+C X
+A X
+C X
+C Y
+C Y
+A Y
+C X
+A Y
+A X
+C Y
+A Y
+C Z
+A Z
+A Y
+A Y
+A Y
+A Z
+A Y
+B X
+B Z
+C X
+A Z
+C X
+A Y
+A Z
+A X
+C Y
+C Y
+B Z
+A Z
+A Y
+A Y
+A Y
+B X
+C Y
+A Y
+A X
+A Y
+B Z
+B Z
+A Y
+A Y
+A Y
+C X
+C X
+C X
+C Y
+A Y
+C Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+C X
+A Y
+C X
+C Y
+C Y
+C Z
+B X
+A Y
+C Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+B Z
+C Z
+C Y
+A X
+C Y
+A Y
+C Y
+C Y
+A Y
+B Z
+C Y
+B X
+B X
+A Y
+A Y
+C Y
+C Y
+B X
+A X
+C Y
+C X
+C Y
+A Y
+A Y
+C X
+A X
+A Z
+A Y
+A Z
+A Y
+B X
+A X
+C X
+A X
+C X
+C Z
+A Y
+C X
+C Y
+C X
+C Y
+A Y
+C Y
+A Y
+A Y
+C Y
+C Z
+C X
+A Y
+A Y
+A X
+C Y
+B Z
+A Y
+C Y
+B Z
+C Y
+A Y
+C Y
+A X
+A X
+A Y
+B X
+A Y
+C X
+C Y
+A Y
+A Y
+A Y
+C X
+C Z
+A Y
+C Y
+A Z
+C Y
+A Y
+C Y
+A Y
+C Z
+C Y
+C X
+A Y
+C X
+A Z
+B Z
+A Y
+A X
+A Y
+A Y
+A X
+A Y
+A Y
+A Y
+A Y
+C Y
+C X
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+C Y
+C Y
+A X
+A Z
+A Y
+C X
+A Y
+A Y
+C Y
+B Y
+C Y
+A X
+A Y
+A Y
+A Y
+C X
+A X
+C Y
+C Z
+A Y
+B Z
+A Z
+C Y
+A Y
+A Y
+B Z
+A X
+A Y
+C Y
+A Y
+A X
+B X
+C Z
+B X
+A Y
+A Y
+C Y
+A Y
+A Z
+A Y
+A Y
+A Y
+C X
+A Y
+A Z
+A Z
+A Y
+C X
+A Y
+C Z
+C Y
+B X
+C Y
+A Y
+C Z
+B Z
+A Y
+C Y
+A Z
+A Y
+C X
+C Y
+A X
+A Y
+C Z
+A Y
+A Y
+A Y
+A Y
+B Z
+A Z
+C Z
+A X
+A Y
+A Y
+A Y
+A Y
+A Y
+C Y
+C Y
+A Y
+C X
+A Y
+A Y
+A X
+A X
+A Y
+C Y
+C Z
+A Z
+A Y
+A X
+B X
+B X
+B Z
+C X
+C Y
+A Y
+A Y
+A Y
+C Z
+A Y
+A Y
+A Y
+C Y
+C Y
+B Y
+C Z
+B Z
+C Y
+B Z
+A Y
+A X
+C X
+A X
+C X
+B Y
+A Y
+A Z
+A Y
+A X
+A Y
+A Y
+C X
+A Y
+A Y
+C X
+C X
+A Y
+C X
+C Z
+C X
+B Z
+B Z
+B Z
+C Y
+B Z
+C Y
+C Z
+B Y
+A Y
+C Z
+A Y
+C X
+C X
+B Z
+B Y
+A Y
+A Z
+C Y
+C X
+C Y
+A Z
+C X
+C X
+C X
+A Y
+A Y
+C Y
+A Y
+C Y
+C Y
+A Y
+C Y
+C Z
+A Y
+B Y
+C Y
+C X
+A Y
+A Y
+A X
+A Y
+C Y
+B Z
+A Y
+A Y
+A Y
+A Y
+C X
+B X
+A Y
+A Y
+A Y
+A Y
+B X
+A Y
+A Y
+A X
+C Y
+A Y
+A Y
+C X
+A Y
+A Y
+A Y
+C X
+B Y
+A Z
+C Y
+C X
+A Y
+A Z
+B X
+A Y
+A Y
+A X
+C Y
+C Y
+C Y
+A Y
+C Z
+A Y
+A Y
+C Y
+B Z
+A Y
+A Y
+C X
+A X
+A Y
+A Y
+A Y
+B Z
+C Y
+A Y
+C Y
+C Y
+A Y
+A Y
+C Y
+C Y
+A Y
+C Y
+A Y
+B X
+C Y
+A X
+A Z
+A Y
+A Y
+C Y
+C Y
+A Y
+C Z
+A Z
+A Y
+A Y
+C Y
+C Y
+C X
+C Y
+A Y
+C X
+C Y
+A Y
+C X
+C Y
+C Y
+A Y
+A Y
+A Y
+C X
+C Y
+A Y
+A Y
+C Y
+A Y
+C Y
+A Y
+A Y
+C Y
+C Y
+C Y
+A Z
+A Y
+C Y
+C Y
+A Y
+A X
+C X
+A Y
+C Y
+B X
+C Y
+A Y
+A Y
+C Y
+C Y
+A Y
+A Y
+A Y
+B Z
+A Y
+C Y
+A Y
+A Y
+C X
+C Y
+A Y
+A Y
+C Y
+C Y
+C Y
+C Z
+A Y
+A Y
+C X
+A Y
+C Z
+A X
+C X
+B X
+A Y
+C Y
+A Y
+A Y
+A X
+A Y
+A Z
+B Y
+A X
+A Y
+C Y
+C Y
+C X
+A Y
+C Y
+A Y
+C Y
+A Y
+C X
+C X
+A Y
+C Y
+C Z
+C X
+B X
+A Y
+B X
+A Y
+A Y
+C Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+A X
+A Z
+A Y
+B X
+A Y
+A Y
+C X
+A Y
+C Z
+A Y
+A Y
+C Y
+C X
+C X
+A Y
+A Y
+B X
+C X
+A Y
+C Y
+A Y
+C Y
+A Y
+B Z
+A Y
+C Y
+A Y
+A Y
+A Y
+C Z
+A Y
+A X
+C X
+A X
+A Y
+A Y
+A Y
+C X
+C Y
+C Y
+C Y
+A Y
+A Y
+A Z
+C X
+A Y
+A Y
+A Y
+C Y
+C Y
+A X
+A Y
+C Y
+B Y
+A Y
+A Z
+C X
+A Y
+A Z
+A X
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A X
+C Y
+A X
+B X
+C X
+C Y
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A X
+C X
+A Y
+A Y
+A Y
+C Y
+A Y
+B Y
+C Y
+C Y
+C Y
+C Y
+A Y
+A Y
+C Y
+C Y
+A Y
+C Y
+C Y
+A Y
+C Y
+C X
+C X
+C Y
+A X
+C X
+C X
+A Z
+C Y
+C Z
+A Y
+B Z
+A Y
+A Y
+B X
+C Y
+A Y
+C Z
+A Y
+C Z
+A Y
+A Y
+A X
+C Y
+C X
+C X
+C Y
+C X
+A Y
+A Y
+C X
+A Y
+A Z
+B X
+C X
+C Y
+B X
+B Z
+A Y
+A Y
+A Y
+C Y
+A X
+C Y
+C Y
+C X
+A Y
+C X
+A Y
+A X
+C X
+A Y
+A Y
+A X
+C Y
+B Y
+A Y
+A X
+A Y
+C Y
+A X
+C Y
+A Z
+A Y
+A Y
+C Z
+A Z
+C Y
+A Y
+C Y
+A Y
+A Z
+C Y
+C Y
+B Z
+B Y
+C X
+C X
+B Z
+A Y
+A Y
+A Y
+A Y
+A Y
+A Y
+C X
+A Y
+C Y
+A Y
+B Y
+A Y
+A Y
+B X
+A X
+C X
+C Y
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C X
+B Z
+A Z
+C Y
+B Y
+C X
+A Y
+A X
+A Y
+A Y
+C Y
+C Y
+A Y
+A Y
+C Y
+B Z
+C Y
+A X
+C Y
+A Z
+A Y
+A Y
+A Y
+B X
+A Y
+C Y
+C X
+B Y
+C Y
+A Y
+B Y
+A Y
+A Y
+C X
+C Y
+C Y
+A Y
+A Y
+C X
+C X
+C Y
+A Y
+C X
+C X
+B X
+C Y
+A Y
+C Y
+B Z
+A Y
+B X
+C Y
+C X
+A X
+A Y
+C Y
+A Y
+A Y
+A Y
+C X
+A Y
+C X
+C X
+A Y
+C Y
+A Y
+B Z
+C X
+C Y
+C Y
+B X
+A Y
+C Y
+A X
+A X
+B Z
+C X
+A Y
+C Y
+A Y
+A X
+C Y
+A Y
+A Y
+A X
+A X
+A Z
+C Z
+B Y
+C Y
+C X
+A Y
+A Y
+C Y
+A Y
+C Z
+C X
+C X
+C Z
+C Y
+C X
+C X
+A Y
+C Z
+B X
+C Z
+A Y
+A Y
+C Y
+C X
+C Z
+C X
+C X
+C Y
+C X
+C Y
+A Y
+A X
+A Y
+C X
+A Y
+A Y
+A Y
+A Y
+A Z
+C X
+A X
+B X
+A Y
+A Y
+C Z
+C Y
+A Y
+A Y
+C Y
+C Y
+C Y
+A Y
+A Y
+A Y
+B X
+A Y
+B Z
+A Z
+A X
+A X
+C Y
+A Y
+C Z
+A Y
+A Y
+C Y
+A Y
+A X
+C Y
+C Y
+A X
+A Y
+C Y
+A Y
+C X
+A Y
+C X
+A X
+A Y
+A Y
+A Y
+B X
+C Z
+A Z
+B Y
+A Y
+B Z
+B Z
+A Y
+C Z
+B Z
+A Y
+A Y
+A Y
+C Y
+B X
+A Y
+C X
+A Y
+C Z
+C X
+B Y
+C X
+C X
+B X
+C Y
+B Z
+A X
+A Y
+B Y
+C Z
+A Y
+A Z
+A Y
+C X
+A Y
+A Y
+C Y
+C X
+B Y
+B X
+C Y
+B X
+C Y
+A X
+A Z
+A X
+C X
+B Z
+C Y
+C X
+A Y
+A Y
+A X
+B X
+C X
+A Y
+B Y
+C Z
+A Y
+C Y
+A Y
+A Y
+A Y
+B X
+A Y
+C X
+A Y
+A Y
+A Y
+A X
+C X
+A X
+C Z
+C Y
+A Y
+A Y
+C Y
+A X
+C Z
+A Y
+A Y
+A Y
+B Y
+C Y
+C Y
+C Z
+C Z
+C Z
+A Y
+C Y
+A Y
+A Y
+A Y
+A Y
+A Y
+B Y
+C Y
+C Y
+A X
+C Z
+C Y
+A Y
+A Y
+A Y
+C X
+A Z
+A Y
+A Y
+A X
+A Z
+C X
+B Y
+A Y
+A Y
+C Y
+B X
+A Y
+A Y
+C Y
+C Y
+C Z
+A X
+C Y
+C X
+C X
+C Z
+A X
+B Z
+C X
+C X
+C Y
+C X
+C Z
+C X
+C X
+B Z
+B Z
+A Y
+B Z
+A Y
+A Y
+A Y
+B X
+C X
+A Y
+C Z
+A Z
+A X
+A Y
+B Y
+B X
+B Z
+A Y
+A X
+A X
+A Y
+C X
+B X
+A Y
+C Y
+A Y
+A Y
+C X
+C Y
+C X
+C Z
+B X
+C X
+C Z
+A Z
+A X
+A Y
+A Y
+A Y
+C Z
+A Y
+C Y
+C X
+A Y
+A Y
+C X
+C X
+A Y
+C Y
+C Z
+C Y
+C X
+B Y
+C Y
+C X
+A Y
+B X
+C X
+A Y
+A Y
+C Y
+C Z
+A Y
+A Z
+B Y
+A Y
+B X
+C Y
+C Z
+B X
+B X
+C X
+A Y
+B Z
+A Y
+A Y
+A Y
+A Y
+C X
+A Y
+A Y
+C Z
+C X
+B Y
+C Y
+C Y
+A Y
+C X
+B Z
+A Z
+C Y
+A Y
+B Y
+B X
+B Y
+A Z
+C Y
+C Z
+A Y
+C Z
+C X
+A Y
+A Z
+C Z
+A Y
+A Y
+A Y
+C X
+A Y
+C Y
+B Z
+A Y
+C X
+A X
+A Y
+C Y
+C Z
+C Y
+A Y
+C Z
+A Z
+A Y
+C Y
+A Y
+C X
+A Y
+A Y
+B Z
+A Y
+A Y
+A Y
+C Y
+C Y
+C Y
+C X
+C Y
+C X
+B Z
+A Y
+A Y
+A Z
+A Z
+A Y
+A Z
+A Y
+A Y
+A X
+C Z
+A Y
+A Y
+A Y
+C X
+C Y
+C X
+A Y
+A Y
+A Y
+C Y
+C X
+B Y
+A Y
+C Y
+C Y
+A Z
+C Z
+A Y
+A X
+A Y
+A Y
+B X
+A Y
+C Y
+A X
+C Y
+A Y
+A Y
+A X
+C Y
+A X
+B X
+C Y
+A Y
+A Y
+A Y
+A Y
+C Z
+C Y
+C X
+A X
+A Y
+C X
+C Y
+A X
+A X
+B Y
+B Z
+A Y
+C Z
+A X
+C Y
+A X
+A Y
+C Y
+C X
+C Y
+C X
+A Y
+A X
+A Y
+A X
+C Z
+A X
+A Y
+C Y
+C X
+C Y
+C X
+A Y
+C Y
+C X
+A Y
+A Y
+C Y
+C Y
+A Y
+A Z
+C Y
+A Z
+A Y
+C Y
+A Y
+A Y
+C Y
+A Y
+B X
+C X
+C Y
+C X
+A Y
+B Y
+C Z
+A Y
+C X
+A Y