From eaaa845503cd4b0a22f7c269218bd199777d7eae Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Sun, 17 Nov 2024 23:32:01 +0100 Subject: [PATCH] day16 --- answer_cache.json | 12 + day16.py | 169 ++ inputs/input16 | 4041 ++++++++++++++++++++++++++++++++++++++++++ inputs/input16_test1 | 3 + 4 files changed, 4225 insertions(+) create mode 100644 day16.py create mode 100644 inputs/input16 create mode 100644 inputs/input16_test1 diff --git a/answer_cache.json b/answer_cache.json index 2b6c47c..fb99afd 100644 --- a/answer_cache.json +++ b/answer_cache.json @@ -140,5 +140,17 @@ "wrong": [], "correct": 20298300 } + }, + "16": { + "1": { + "wrong": [ + 629 + ], + "correct": 580 + }, + "2": { + "wrong": [], + "correct": 537 + } } } \ No newline at end of file diff --git a/day16.py b/day16.py new file mode 100644 index 0000000..c9cd869 --- /dev/null +++ b/day16.py @@ -0,0 +1,169 @@ +from collections import defaultdict + +from tools.aoc import AOCDay +from typing import Any + +STR_OP_CODES = [ + "addr", + "addi", + "mulr", + "muli", + "banr", + "bani", + "borr", + "bori", + "setr", + "seti", + "gtir", + "gtri", + "gtrr", + "eqir", + "eqri", + "eqrr", +] + + +class WristDevice: + def __init__(self): + self.registers = [0, 0, 0, 0] + self.op_code_learner: dict[int, set[str]] = defaultdict(set) + self.op_code_by_id: dict[int, str] = {} + + def set_reg(self, a: int, b: int, c: int, d: int) -> None: + self.registers = [a, b, c, d] + + def execute_by_name(self, op_code_name: str, arg0: int, arg1: int, arg2: int): + if op_code_name == "addr": + self.registers[arg2] = self.registers[arg0] + self.registers[arg1] + elif op_code_name == "addi": + self.registers[arg2] = self.registers[arg0] + arg1 + elif op_code_name == "mulr": + self.registers[arg2] = self.registers[arg0] * self.registers[arg1] + elif op_code_name == "muli": + self.registers[arg2] = self.registers[arg0] * arg1 + elif op_code_name == "banr": + self.registers[arg2] = self.registers[arg0] & self.registers[arg1] + elif op_code_name == "bani": + self.registers[arg2] = self.registers[arg0] & arg1 + elif op_code_name == "borr": + self.registers[arg2] = self.registers[arg0] | self.registers[arg1] + elif op_code_name == "bori": + self.registers[arg2] = self.registers[arg0] | arg1 + elif op_code_name == "setr": + self.registers[arg2] = self.registers[arg0] + elif op_code_name == "seti": + self.registers[arg2] = arg0 + elif op_code_name == "gtir": + self.registers[arg2] = int(arg0 > self.registers[arg1]) + elif op_code_name == "gtri": + self.registers[arg2] = int(self.registers[arg0] > arg1) + elif op_code_name == "gtrr": + self.registers[arg2] = int(self.registers[arg0] > self.registers[arg1]) + elif op_code_name == "eqir": + self.registers[arg2] = int(arg0 == self.registers[arg1]) + elif op_code_name == "eqri": + self.registers[arg2] = int(self.registers[arg0] == arg1) + elif op_code_name == "eqrr": + self.registers[arg2] = int(self.registers[arg0] == self.registers[arg1]) + + def execute_by_id(self, op_code: int, arg0: int, arg1: int, arg2: int) -> None: + if op_code not in self.op_code_by_id: + raise ValueError(f"Unknown OP Code: {op_code}") + + self.execute_by_name(self.op_code_by_id[op_code], arg0, arg1, arg2) + + def learn(self, op_code: int, possibles: set[str]) -> None: + if not self.op_code_learner[op_code]: + self.op_code_learner[op_code] = possibles + else: + self.op_code_learner[op_code] &= possibles + + def finish_learn(self) -> None: + while len(self.op_code_by_id) < len(self.op_code_learner): + for op_code, possibles in self.op_code_learner.items(): + if len(possibles) == 0: + continue + + if len(possibles) == 1: + self.op_code_by_id[op_code] = possibles.pop() + for remove_code in self.op_code_learner: + if self.op_code_by_id[op_code] in self.op_code_learner[remove_code]: + self.op_code_learner[remove_code].remove(self.op_code_by_id[op_code]) + + def test_code(self, op_code: list[int], reg_before: list[int], reg_after: list[int]) -> set[str]: + possible_codes = set() + for test_code in STR_OP_CODES: + self.set_reg(*reg_before) + self.execute_by_name(test_code, *op_code[1:]) + if self.registers == reg_after: + possible_codes.add(test_code) + + return possible_codes + + +class Day(AOCDay): + inputs = [ + [ + (1, "input16_test1"), + (580, "input16"), + ], + [ + (537, "input16"), + ], + ] + + def parse_input(self) -> (list[(list[int], list[int], list[int])], list[list[int]]): + """ + first return value is a list of (op_code, reg_before, reg_after) + second one is just a list of op_code + """ + lines = self.getInput() + index = 0 + + tests = [] + op_codes = [] + + while index < len(lines): + if lines[index].startswith("Before:"): + reg_before = list(map(int, lines[index][:-1].split("[")[1].split(", "))) + op_code = list(map(int, lines[index + 1].split())) + reg_after = list(map(int, lines[index + 2][:-1].split("[")[1].split(", "))) + tests.append((op_code, reg_before, reg_after)) + index += 4 + elif not lines[index]: + index += 1 + else: + op_codes.append(list(map(int, lines[index].split()))) + index += 1 + + return tests, op_codes + + def part1(self) -> Any: + tests, _ = self.parse_input() + count = 0 + device = WristDevice() + + for test in tests: + if len(device.test_code(*test)) >= 3: + count += 1 + + return count + + def part2(self) -> Any: + tests, opcodes = self.parse_input() + device = WristDevice() + + for test in tests: + device.learn(test[0][0], device.test_code(*test)) + + device.finish_learn() + device.set_reg(0, 0, 0, 0) + for opcode in opcodes: + device.execute_by_id(*opcode) + + return device.registers[0] + + +if __name__ == "__main__": + day = Day(2018, 16) + day.run(verbose=True) diff --git a/inputs/input16 b/inputs/input16 new file mode 100644 index 0000000..17feeb7 --- /dev/null +++ b/inputs/input16 @@ -0,0 +1,4041 @@ +Before: [3, 1, 2, 3] +5 3 1 1 +After: [3, 0, 2, 3] + +Before: [1, 1, 2, 2] +9 0 2 0 +After: [0, 1, 2, 2] + +Before: [0, 1, 3, 3] +12 1 0 3 +After: [0, 1, 3, 1] + +Before: [1, 0, 2, 3] +9 0 2 2 +After: [1, 0, 0, 3] + +Before: [3, 0, 2, 2] +8 0 3 0 +After: [1, 0, 2, 2] + +Before: [3, 1, 0, 0] +11 2 0 2 +After: [3, 1, 1, 0] + +Before: [0, 1, 2, 2] +7 0 0 3 +After: [0, 1, 2, 0] + +Before: [0, 1, 0, 0] +15 1 3 3 +After: [0, 1, 0, 1] + +Before: [3, 0, 0, 2] +8 0 3 1 +After: [3, 1, 0, 2] + +Before: [0, 2, 2, 1] +3 3 2 0 +After: [1, 2, 2, 1] + +Before: [1, 1, 3, 0] +15 1 3 2 +After: [1, 1, 1, 0] + +Before: [3, 1, 1, 2] +1 1 3 0 +After: [0, 1, 1, 2] + +Before: [2, 1, 3, 0] +15 1 3 1 +After: [2, 1, 3, 0] + +Before: [3, 0, 1, 3] +6 2 3 1 +After: [3, 0, 1, 3] + +Before: [2, 1, 1, 2] +1 1 3 1 +After: [2, 0, 1, 2] + +Before: [3, 2, 1, 3] +6 2 3 2 +After: [3, 2, 0, 3] + +Before: [2, 1, 2, 2] +1 1 3 1 +After: [2, 0, 2, 2] + +Before: [1, 2, 1, 3] +5 3 2 2 +After: [1, 2, 0, 3] + +Before: [3, 2, 2, 2] +10 0 2 1 +After: [3, 1, 2, 2] + +Before: [0, 1, 0, 0] +15 1 3 0 +After: [1, 1, 0, 0] + +Before: [0, 0, 2, 1] +5 0 0 2 +After: [0, 0, 1, 1] + +Before: [3, 1, 3, 2] +1 1 3 0 +After: [0, 1, 3, 2] + +Before: [2, 1, 3, 2] +4 3 2 0 +After: [2, 1, 3, 2] + +Before: [0, 2, 3, 3] +4 1 2 0 +After: [2, 2, 3, 3] + +Before: [0, 1, 0, 0] +12 1 0 3 +After: [0, 1, 0, 1] + +Before: [2, 1, 3, 3] +11 0 2 2 +After: [2, 1, 1, 3] + +Before: [0, 3, 2, 1] +3 3 2 2 +After: [0, 3, 1, 1] + +Before: [0, 1, 3, 3] +12 1 0 0 +After: [1, 1, 3, 3] + +Before: [0, 3, 0, 1] +7 0 0 1 +After: [0, 0, 0, 1] + +Before: [1, 0, 2, 1] +14 3 3 3 +After: [1, 0, 2, 0] + +Before: [2, 3, 3, 2] +4 0 2 1 +After: [2, 2, 3, 2] + +Before: [1, 2, 2, 2] +13 2 2 0 +After: [2, 2, 2, 2] + +Before: [3, 0, 3, 2] +4 3 2 3 +After: [3, 0, 3, 2] + +Before: [0, 1, 3, 2] +1 1 3 2 +After: [0, 1, 0, 2] + +Before: [1, 0, 1, 1] +2 3 1 0 +After: [1, 0, 1, 1] + +Before: [0, 1, 1, 3] +6 1 3 3 +After: [0, 1, 1, 0] + +Before: [0, 2, 3, 1] +5 2 3 0 +After: [0, 2, 3, 1] + +Before: [2, 3, 3, 1] +5 2 3 0 +After: [0, 3, 3, 1] + +Before: [2, 1, 2, 2] +13 2 2 0 +After: [2, 1, 2, 2] + +Before: [1, 2, 3, 1] +5 2 3 3 +After: [1, 2, 3, 0] + +Before: [1, 2, 0, 2] +14 3 3 0 +After: [0, 2, 0, 2] + +Before: [2, 1, 0, 2] +14 3 3 2 +After: [2, 1, 0, 2] + +Before: [2, 2, 3, 1] +11 0 2 3 +After: [2, 2, 3, 1] + +Before: [2, 3, 3, 2] +4 3 2 2 +After: [2, 3, 2, 2] + +Before: [2, 2, 1, 1] +14 3 3 3 +After: [2, 2, 1, 0] + +Before: [2, 1, 3, 2] +14 3 3 3 +After: [2, 1, 3, 0] + +Before: [2, 1, 0, 3] +10 0 1 3 +After: [2, 1, 0, 1] + +Before: [0, 1, 2, 1] +0 1 2 0 +After: [0, 1, 2, 1] + +Before: [3, 2, 0, 0] +11 2 0 2 +After: [3, 2, 1, 0] + +Before: [3, 1, 0, 1] +11 2 0 2 +After: [3, 1, 1, 1] + +Before: [1, 1, 3, 0] +15 1 3 3 +After: [1, 1, 3, 1] + +Before: [0, 0, 3, 2] +14 3 3 0 +After: [0, 0, 3, 2] + +Before: [2, 1, 3, 1] +10 0 1 3 +After: [2, 1, 3, 1] + +Before: [1, 1, 2, 3] +0 1 2 2 +After: [1, 1, 0, 3] + +Before: [0, 2, 2, 3] +13 3 3 2 +After: [0, 2, 3, 3] + +Before: [1, 1, 3, 3] +5 3 3 3 +After: [1, 1, 3, 1] + +Before: [1, 2, 3, 3] +4 1 2 1 +After: [1, 2, 3, 3] + +Before: [1, 1, 2, 3] +5 2 2 3 +After: [1, 1, 2, 1] + +Before: [2, 0, 3, 3] +11 0 2 2 +After: [2, 0, 1, 3] + +Before: [1, 0, 2, 3] +13 2 2 1 +After: [1, 2, 2, 3] + +Before: [0, 1, 2, 1] +7 0 0 1 +After: [0, 0, 2, 1] + +Before: [2, 0, 2, 3] +13 2 2 2 +After: [2, 0, 2, 3] + +Before: [3, 0, 1, 0] +2 2 1 0 +After: [1, 0, 1, 0] + +Before: [3, 3, 3, 3] +5 3 2 1 +After: [3, 1, 3, 3] + +Before: [0, 1, 2, 3] +12 1 0 2 +After: [0, 1, 1, 3] + +Before: [2, 0, 3, 1] +11 0 2 3 +After: [2, 0, 3, 1] + +Before: [2, 1, 2, 1] +3 3 2 1 +After: [2, 1, 2, 1] + +Before: [2, 1, 3, 0] +11 0 2 2 +After: [2, 1, 1, 0] + +Before: [0, 1, 2, 2] +1 1 3 0 +After: [0, 1, 2, 2] + +Before: [2, 0, 3, 3] +4 0 2 1 +After: [2, 2, 3, 3] + +Before: [3, 0, 1, 1] +2 3 1 3 +After: [3, 0, 1, 1] + +Before: [2, 2, 1, 2] +8 0 2 1 +After: [2, 1, 1, 2] + +Before: [3, 2, 3, 3] +4 1 2 0 +After: [2, 2, 3, 3] + +Before: [1, 1, 2, 3] +0 1 2 0 +After: [0, 1, 2, 3] + +Before: [2, 1, 1, 1] +8 0 2 1 +After: [2, 1, 1, 1] + +Before: [1, 2, 2, 3] +5 2 1 2 +After: [1, 2, 1, 3] + +Before: [2, 3, 1, 2] +8 0 2 3 +After: [2, 3, 1, 1] + +Before: [0, 1, 2, 1] +12 1 0 1 +After: [0, 1, 2, 1] + +Before: [0, 1, 1, 3] +12 1 0 1 +After: [0, 1, 1, 3] + +Before: [2, 1, 3, 0] +15 1 3 0 +After: [1, 1, 3, 0] + +Before: [0, 1, 2, 2] +1 1 3 3 +After: [0, 1, 2, 0] + +Before: [3, 2, 2, 2] +8 0 3 1 +After: [3, 1, 2, 2] + +Before: [1, 2, 0, 3] +13 3 3 2 +After: [1, 2, 3, 3] + +Before: [0, 1, 0, 1] +12 1 0 3 +After: [0, 1, 0, 1] + +Before: [3, 2, 2, 3] +6 1 3 1 +After: [3, 0, 2, 3] + +Before: [1, 2, 3, 2] +4 3 2 2 +After: [1, 2, 2, 2] + +Before: [3, 2, 2, 3] +10 0 2 2 +After: [3, 2, 1, 3] + +Before: [2, 1, 2, 2] +0 1 2 2 +After: [2, 1, 0, 2] + +Before: [2, 3, 2, 3] +5 3 3 2 +After: [2, 3, 1, 3] + +Before: [1, 1, 2, 3] +6 2 3 3 +After: [1, 1, 2, 0] + +Before: [2, 1, 1, 3] +6 2 3 2 +After: [2, 1, 0, 3] + +Before: [3, 2, 3, 2] +4 1 2 1 +After: [3, 2, 3, 2] + +Before: [1, 0, 2, 2] +9 0 2 1 +After: [1, 0, 2, 2] + +Before: [0, 3, 3, 2] +5 0 0 1 +After: [0, 1, 3, 2] + +Before: [1, 1, 3, 3] +5 3 2 3 +After: [1, 1, 3, 1] + +Before: [3, 1, 0, 2] +1 1 3 0 +After: [0, 1, 0, 2] + +Before: [0, 1, 1, 0] +12 1 0 0 +After: [1, 1, 1, 0] + +Before: [3, 0, 3, 2] +8 0 3 2 +After: [3, 0, 1, 2] + +Before: [1, 0, 1, 1] +14 3 3 1 +After: [1, 0, 1, 1] + +Before: [3, 1, 1, 0] +15 1 3 3 +After: [3, 1, 1, 1] + +Before: [3, 0, 1, 0] +2 2 1 2 +After: [3, 0, 1, 0] + +Before: [3, 1, 0, 2] +8 0 3 2 +After: [3, 1, 1, 2] + +Before: [0, 1, 3, 0] +12 1 0 0 +After: [1, 1, 3, 0] + +Before: [2, 3, 3, 3] +4 0 2 3 +After: [2, 3, 3, 2] + +Before: [3, 2, 2, 2] +8 0 3 0 +After: [1, 2, 2, 2] + +Before: [3, 1, 3, 0] +15 1 3 0 +After: [1, 1, 3, 0] + +Before: [2, 1, 2, 2] +1 1 3 3 +After: [2, 1, 2, 0] + +Before: [0, 1, 2, 2] +1 1 3 2 +After: [0, 1, 0, 2] + +Before: [2, 2, 1, 3] +8 0 2 0 +After: [1, 2, 1, 3] + +Before: [1, 1, 2, 2] +0 1 2 0 +After: [0, 1, 2, 2] + +Before: [0, 1, 3, 2] +4 3 2 2 +After: [0, 1, 2, 2] + +Before: [2, 1, 2, 3] +6 1 3 0 +After: [0, 1, 2, 3] + +Before: [2, 1, 2, 3] +10 0 1 2 +After: [2, 1, 1, 3] + +Before: [1, 1, 2, 2] +9 0 2 2 +After: [1, 1, 0, 2] + +Before: [3, 1, 1, 3] +6 2 3 2 +After: [3, 1, 0, 3] + +Before: [1, 1, 2, 0] +9 0 2 0 +After: [0, 1, 2, 0] + +Before: [3, 1, 3, 1] +14 3 3 1 +After: [3, 0, 3, 1] + +Before: [1, 1, 0, 0] +15 1 3 3 +After: [1, 1, 0, 1] + +Before: [0, 0, 2, 1] +3 3 2 2 +After: [0, 0, 1, 1] + +Before: [2, 3, 3, 2] +4 0 2 3 +After: [2, 3, 3, 2] + +Before: [2, 2, 1, 3] +6 2 3 1 +After: [2, 0, 1, 3] + +Before: [2, 1, 2, 1] +3 3 2 2 +After: [2, 1, 1, 1] + +Before: [2, 2, 3, 2] +14 3 3 2 +After: [2, 2, 0, 2] + +Before: [1, 1, 2, 2] +0 1 2 2 +After: [1, 1, 0, 2] + +Before: [2, 1, 0, 3] +6 1 3 2 +After: [2, 1, 0, 3] + +Before: [3, 2, 2, 0] +13 2 2 3 +After: [3, 2, 2, 2] + +Before: [0, 1, 1, 0] +12 1 0 2 +After: [0, 1, 1, 0] + +Before: [2, 1, 0, 2] +10 0 1 2 +After: [2, 1, 1, 2] + +Before: [1, 0, 0, 2] +2 0 1 1 +After: [1, 1, 0, 2] + +Before: [0, 1, 2, 1] +3 3 2 0 +After: [1, 1, 2, 1] + +Before: [0, 1, 3, 0] +12 1 0 3 +After: [0, 1, 3, 1] + +Before: [0, 1, 2, 3] +13 3 3 1 +After: [0, 3, 2, 3] + +Before: [0, 1, 2, 1] +12 1 0 0 +After: [1, 1, 2, 1] + +Before: [0, 1, 1, 1] +14 2 3 0 +After: [0, 1, 1, 1] + +Before: [0, 2, 2, 3] +6 2 3 1 +After: [0, 0, 2, 3] + +Before: [3, 1, 0, 0] +15 1 3 2 +After: [3, 1, 1, 0] + +Before: [1, 0, 3, 1] +2 0 1 0 +After: [1, 0, 3, 1] + +Before: [2, 1, 1, 2] +8 0 2 0 +After: [1, 1, 1, 2] + +Before: [2, 1, 2, 2] +10 0 1 2 +After: [2, 1, 1, 2] + +Before: [2, 2, 2, 1] +3 3 2 1 +After: [2, 1, 2, 1] + +Before: [2, 1, 3, 2] +11 0 2 1 +After: [2, 1, 3, 2] + +Before: [3, 2, 3, 2] +8 0 3 3 +After: [3, 2, 3, 1] + +Before: [1, 2, 0, 3] +6 1 3 3 +After: [1, 2, 0, 0] + +Before: [2, 1, 0, 2] +1 1 3 1 +After: [2, 0, 0, 2] + +Before: [3, 3, 1, 3] +13 3 3 3 +After: [3, 3, 1, 3] + +Before: [1, 2, 2, 1] +3 3 2 3 +After: [1, 2, 2, 1] + +Before: [2, 1, 3, 2] +1 1 3 1 +After: [2, 0, 3, 2] + +Before: [2, 1, 3, 2] +10 0 1 0 +After: [1, 1, 3, 2] + +Before: [1, 0, 2, 1] +3 3 2 2 +After: [1, 0, 1, 1] + +Before: [1, 1, 3, 2] +1 1 3 2 +After: [1, 1, 0, 2] + +Before: [2, 2, 3, 0] +11 0 2 1 +After: [2, 1, 3, 0] + +Before: [3, 0, 0, 2] +14 3 3 1 +After: [3, 0, 0, 2] + +Before: [3, 1, 3, 0] +15 1 3 2 +After: [3, 1, 1, 0] + +Before: [2, 1, 2, 1] +3 3 2 0 +After: [1, 1, 2, 1] + +Before: [0, 1, 3, 2] +12 1 0 2 +After: [0, 1, 1, 2] + +Before: [3, 3, 0, 3] +11 2 0 3 +After: [3, 3, 0, 1] + +Before: [2, 0, 3, 1] +2 3 1 2 +After: [2, 0, 1, 1] + +Before: [1, 3, 0, 2] +14 3 3 0 +After: [0, 3, 0, 2] + +Before: [3, 0, 0, 2] +8 0 3 3 +After: [3, 0, 0, 1] + +Before: [3, 0, 2, 1] +3 3 2 2 +After: [3, 0, 1, 1] + +Before: [3, 1, 0, 3] +11 2 0 2 +After: [3, 1, 1, 3] + +Before: [0, 1, 0, 3] +12 1 0 1 +After: [0, 1, 0, 3] + +Before: [2, 2, 2, 1] +3 3 2 0 +After: [1, 2, 2, 1] + +Before: [1, 0, 3, 1] +2 0 1 3 +After: [1, 0, 3, 1] + +Before: [1, 1, 2, 3] +9 0 2 0 +After: [0, 1, 2, 3] + +Before: [1, 3, 2, 3] +6 2 3 2 +After: [1, 3, 0, 3] + +Before: [0, 1, 3, 0] +7 0 0 3 +After: [0, 1, 3, 0] + +Before: [1, 1, 2, 0] +15 1 3 1 +After: [1, 1, 2, 0] + +Before: [3, 1, 3, 2] +1 1 3 1 +After: [3, 0, 3, 2] + +Before: [1, 3, 2, 1] +9 0 2 3 +After: [1, 3, 2, 0] + +Before: [0, 0, 2, 1] +7 0 0 1 +After: [0, 0, 2, 1] + +Before: [2, 1, 1, 0] +15 1 3 2 +After: [2, 1, 1, 0] + +Before: [2, 3, 2, 0] +13 2 2 0 +After: [2, 3, 2, 0] + +Before: [1, 1, 2, 1] +9 0 2 1 +After: [1, 0, 2, 1] + +Before: [2, 1, 2, 0] +15 1 3 1 +After: [2, 1, 2, 0] + +Before: [1, 0, 2, 1] +9 0 2 2 +After: [1, 0, 0, 1] + +Before: [1, 1, 0, 2] +1 1 3 2 +After: [1, 1, 0, 2] + +Before: [3, 0, 0, 1] +2 3 1 0 +After: [1, 0, 0, 1] + +Before: [1, 0, 0, 3] +2 0 1 3 +After: [1, 0, 0, 1] + +Before: [3, 1, 2, 0] +0 1 2 1 +After: [3, 0, 2, 0] + +Before: [1, 1, 2, 0] +0 1 2 1 +After: [1, 0, 2, 0] + +Before: [2, 1, 2, 0] +0 1 2 3 +After: [2, 1, 2, 0] + +Before: [1, 0, 3, 1] +14 3 3 0 +After: [0, 0, 3, 1] + +Before: [0, 1, 3, 2] +12 1 0 0 +After: [1, 1, 3, 2] + +Before: [1, 3, 2, 3] +9 0 2 2 +After: [1, 3, 0, 3] + +Before: [0, 2, 2, 1] +3 3 2 3 +After: [0, 2, 2, 1] + +Before: [0, 2, 2, 0] +7 0 0 3 +After: [0, 2, 2, 0] + +Before: [2, 0, 0, 1] +14 3 3 0 +After: [0, 0, 0, 1] + +Before: [2, 3, 3, 3] +13 3 3 3 +After: [2, 3, 3, 3] + +Before: [3, 2, 3, 3] +4 1 2 1 +After: [3, 2, 3, 3] + +Before: [3, 3, 2, 2] +8 0 3 0 +After: [1, 3, 2, 2] + +Before: [2, 2, 3, 0] +4 1 2 2 +After: [2, 2, 2, 0] + +Before: [0, 0, 1, 3] +7 0 0 3 +After: [0, 0, 1, 0] + +Before: [2, 0, 2, 1] +13 2 2 2 +After: [2, 0, 2, 1] + +Before: [2, 2, 3, 1] +5 2 3 1 +After: [2, 0, 3, 1] + +Before: [2, 0, 1, 1] +2 3 1 0 +After: [1, 0, 1, 1] + +Before: [0, 0, 2, 3] +6 2 3 0 +After: [0, 0, 2, 3] + +Before: [2, 1, 3, 3] +13 3 3 2 +After: [2, 1, 3, 3] + +Before: [1, 0, 3, 0] +2 0 1 2 +After: [1, 0, 1, 0] + +Before: [0, 1, 3, 2] +12 1 0 3 +After: [0, 1, 3, 1] + +Before: [0, 2, 3, 1] +7 0 0 1 +After: [0, 0, 3, 1] + +Before: [1, 0, 1, 3] +13 3 3 3 +After: [1, 0, 1, 3] + +Before: [3, 3, 0, 2] +11 2 0 3 +After: [3, 3, 0, 1] + +Before: [3, 0, 2, 1] +3 3 2 1 +After: [3, 1, 2, 1] + +Before: [1, 0, 2, 0] +9 0 2 0 +After: [0, 0, 2, 0] + +Before: [0, 3, 2, 2] +13 2 2 0 +After: [2, 3, 2, 2] + +Before: [0, 0, 0, 1] +2 3 1 3 +After: [0, 0, 0, 1] + +Before: [2, 1, 2, 1] +0 1 2 3 +After: [2, 1, 2, 0] + +Before: [2, 3, 1, 3] +8 0 2 1 +After: [2, 1, 1, 3] + +Before: [3, 3, 0, 0] +11 2 0 1 +After: [3, 1, 0, 0] + +Before: [1, 3, 3, 3] +13 3 3 0 +After: [3, 3, 3, 3] + +Before: [0, 1, 0, 1] +12 1 0 0 +After: [1, 1, 0, 1] + +Before: [3, 2, 0, 1] +14 3 3 0 +After: [0, 2, 0, 1] + +Before: [0, 1, 0, 0] +7 0 0 0 +After: [0, 1, 0, 0] + +Before: [2, 1, 2, 1] +0 1 2 1 +After: [2, 0, 2, 1] + +Before: [3, 2, 1, 1] +14 3 3 3 +After: [3, 2, 1, 0] + +Before: [3, 1, 0, 0] +11 2 0 1 +After: [3, 1, 0, 0] + +Before: [2, 1, 3, 2] +1 1 3 2 +After: [2, 1, 0, 2] + +Before: [0, 2, 2, 3] +6 2 3 0 +After: [0, 2, 2, 3] + +Before: [1, 0, 2, 0] +9 0 2 2 +After: [1, 0, 0, 0] + +Before: [0, 2, 1, 2] +7 0 0 2 +After: [0, 2, 0, 2] + +Before: [0, 0, 1, 3] +6 2 3 3 +After: [0, 0, 1, 0] + +Before: [3, 2, 3, 1] +4 1 2 2 +After: [3, 2, 2, 1] + +Before: [1, 0, 2, 1] +3 3 2 1 +After: [1, 1, 2, 1] + +Before: [2, 3, 2, 1] +3 3 2 3 +After: [2, 3, 2, 1] + +Before: [3, 1, 2, 0] +15 1 3 0 +After: [1, 1, 2, 0] + +Before: [0, 1, 2, 0] +12 1 0 0 +After: [1, 1, 2, 0] + +Before: [3, 3, 0, 0] +11 2 0 3 +After: [3, 3, 0, 1] + +Before: [2, 0, 1, 2] +8 0 2 3 +After: [2, 0, 1, 1] + +Before: [3, 1, 3, 3] +5 3 2 2 +After: [3, 1, 1, 3] + +Before: [1, 0, 2, 2] +14 3 3 1 +After: [1, 0, 2, 2] + +Before: [2, 1, 2, 3] +0 1 2 3 +After: [2, 1, 2, 0] + +Before: [3, 0, 2, 1] +10 0 2 1 +After: [3, 1, 2, 1] + +Before: [2, 1, 0, 2] +1 1 3 2 +After: [2, 1, 0, 2] + +Before: [0, 1, 1, 2] +12 1 0 3 +After: [0, 1, 1, 1] + +Before: [3, 1, 0, 2] +1 1 3 3 +After: [3, 1, 0, 0] + +Before: [0, 2, 3, 0] +4 1 2 2 +After: [0, 2, 2, 0] + +Before: [3, 1, 2, 3] +0 1 2 1 +After: [3, 0, 2, 3] + +Before: [0, 0, 2, 1] +3 3 2 3 +After: [0, 0, 2, 1] + +Before: [0, 1, 2, 1] +0 1 2 3 +After: [0, 1, 2, 0] + +Before: [2, 0, 1, 2] +14 3 3 1 +After: [2, 0, 1, 2] + +Before: [0, 0, 2, 0] +7 0 0 3 +After: [0, 0, 2, 0] + +Before: [3, 1, 3, 2] +1 1 3 2 +After: [3, 1, 0, 2] + +Before: [2, 1, 0, 0] +15 1 3 1 +After: [2, 1, 0, 0] + +Before: [2, 2, 2, 2] +13 2 2 0 +After: [2, 2, 2, 2] + +Before: [0, 2, 3, 3] +6 1 3 1 +After: [0, 0, 3, 3] + +Before: [3, 3, 2, 1] +3 3 2 3 +After: [3, 3, 2, 1] + +Before: [1, 0, 2, 2] +9 0 2 0 +After: [0, 0, 2, 2] + +Before: [0, 1, 2, 3] +0 1 2 0 +After: [0, 1, 2, 3] + +Before: [0, 1, 2, 0] +0 1 2 0 +After: [0, 1, 2, 0] + +Before: [0, 1, 2, 1] +3 3 2 3 +After: [0, 1, 2, 1] + +Before: [0, 1, 0, 3] +7 0 0 3 +After: [0, 1, 0, 0] + +Before: [2, 0, 1, 1] +8 0 2 2 +After: [2, 0, 1, 1] + +Before: [1, 2, 0, 3] +6 1 3 1 +After: [1, 0, 0, 3] + +Before: [1, 1, 2, 2] +0 1 2 1 +After: [1, 0, 2, 2] + +Before: [2, 3, 1, 2] +14 3 3 1 +After: [2, 0, 1, 2] + +Before: [3, 2, 0, 3] +11 2 0 1 +After: [3, 1, 0, 3] + +Before: [1, 0, 2, 3] +9 0 2 0 +After: [0, 0, 2, 3] + +Before: [3, 2, 2, 0] +10 0 2 0 +After: [1, 2, 2, 0] + +Before: [3, 3, 3, 2] +8 0 3 3 +After: [3, 3, 3, 1] + +Before: [0, 1, 3, 2] +1 1 3 0 +After: [0, 1, 3, 2] + +Before: [0, 0, 0, 1] +14 3 3 3 +After: [0, 0, 0, 0] + +Before: [1, 0, 2, 3] +2 0 1 0 +After: [1, 0, 2, 3] + +Before: [2, 1, 3, 1] +14 3 3 3 +After: [2, 1, 3, 0] + +Before: [1, 3, 1, 2] +14 3 3 2 +After: [1, 3, 0, 2] + +Before: [2, 0, 2, 1] +3 3 2 3 +After: [2, 0, 2, 1] + +Before: [0, 1, 2, 3] +6 1 3 0 +After: [0, 1, 2, 3] + +Before: [2, 1, 3, 1] +11 0 2 2 +After: [2, 1, 1, 1] + +Before: [0, 1, 1, 0] +15 1 3 2 +After: [0, 1, 1, 0] + +Before: [1, 1, 2, 1] +9 0 2 2 +After: [1, 1, 0, 1] + +Before: [3, 1, 1, 3] +6 1 3 1 +After: [3, 0, 1, 3] + +Before: [0, 1, 3, 3] +7 0 0 3 +After: [0, 1, 3, 0] + +Before: [1, 0, 2, 1] +2 0 1 1 +After: [1, 1, 2, 1] + +Before: [2, 0, 1, 1] +8 0 2 0 +After: [1, 0, 1, 1] + +Before: [0, 2, 2, 2] +7 0 0 3 +After: [0, 2, 2, 0] + +Before: [3, 2, 3, 3] +6 1 3 3 +After: [3, 2, 3, 0] + +Before: [3, 3, 3, 2] +4 3 2 3 +After: [3, 3, 3, 2] + +Before: [3, 1, 1, 1] +14 3 3 3 +After: [3, 1, 1, 0] + +Before: [2, 0, 3, 1] +4 0 2 3 +After: [2, 0, 3, 2] + +Before: [2, 1, 2, 2] +1 1 3 2 +After: [2, 1, 0, 2] + +Before: [3, 1, 0, 1] +11 2 0 1 +After: [3, 1, 0, 1] + +Before: [2, 3, 2, 1] +3 3 2 2 +After: [2, 3, 1, 1] + +Before: [0, 0, 3, 1] +7 0 0 1 +After: [0, 0, 3, 1] + +Before: [2, 3, 1, 0] +8 0 2 1 +After: [2, 1, 1, 0] + +Before: [2, 0, 0, 1] +14 3 3 1 +After: [2, 0, 0, 1] + +Before: [0, 1, 3, 1] +12 1 0 2 +After: [0, 1, 1, 1] + +Before: [2, 0, 2, 1] +3 3 2 0 +After: [1, 0, 2, 1] + +Before: [2, 3, 3, 1] +11 0 2 0 +After: [1, 3, 3, 1] + +Before: [0, 0, 3, 1] +2 3 1 3 +After: [0, 0, 3, 1] + +Before: [1, 0, 1, 3] +2 0 1 3 +After: [1, 0, 1, 1] + +Before: [0, 2, 2, 2] +14 3 3 2 +After: [0, 2, 0, 2] + +Before: [3, 3, 0, 1] +11 2 0 1 +After: [3, 1, 0, 1] + +Before: [3, 1, 3, 3] +6 1 3 3 +After: [3, 1, 3, 0] + +Before: [1, 2, 3, 2] +4 1 2 3 +After: [1, 2, 3, 2] + +Before: [0, 1, 0, 3] +6 1 3 0 +After: [0, 1, 0, 3] + +Before: [2, 0, 2, 1] +2 3 1 1 +After: [2, 1, 2, 1] + +Before: [0, 2, 0, 3] +13 3 3 0 +After: [3, 2, 0, 3] + +Before: [1, 1, 1, 2] +1 1 3 3 +After: [1, 1, 1, 0] + +Before: [1, 3, 3, 3] +13 3 3 2 +After: [1, 3, 3, 3] + +Before: [0, 1, 3, 0] +12 1 0 2 +After: [0, 1, 1, 0] + +Before: [3, 1, 2, 0] +15 1 3 1 +After: [3, 1, 2, 0] + +Before: [2, 2, 2, 1] +3 3 2 2 +After: [2, 2, 1, 1] + +Before: [2, 2, 1, 2] +8 0 2 0 +After: [1, 2, 1, 2] + +Before: [3, 1, 2, 3] +0 1 2 2 +After: [3, 1, 0, 3] + +Before: [0, 1, 1, 2] +14 3 3 1 +After: [0, 0, 1, 2] + +Before: [0, 1, 3, 3] +5 3 2 0 +After: [1, 1, 3, 3] + +Before: [3, 1, 2, 2] +8 0 3 0 +After: [1, 1, 2, 2] + +Before: [2, 1, 1, 3] +13 3 3 1 +After: [2, 3, 1, 3] + +Before: [0, 2, 1, 2] +7 0 0 0 +After: [0, 2, 1, 2] + +Before: [0, 1, 1, 0] +15 1 3 0 +After: [1, 1, 1, 0] + +Before: [3, 1, 2, 2] +1 1 3 3 +After: [3, 1, 2, 0] + +Before: [0, 0, 2, 3] +13 3 3 1 +After: [0, 3, 2, 3] + +Before: [1, 0, 0, 3] +5 3 3 3 +After: [1, 0, 0, 1] + +Before: [2, 0, 1, 1] +2 2 1 3 +After: [2, 0, 1, 1] + +Before: [3, 3, 1, 2] +14 3 3 2 +After: [3, 3, 0, 2] + +Before: [0, 1, 0, 2] +12 1 0 3 +After: [0, 1, 0, 1] + +Before: [1, 2, 3, 1] +4 1 2 2 +After: [1, 2, 2, 1] + +Before: [3, 0, 3, 2] +8 0 3 1 +After: [3, 1, 3, 2] + +Before: [3, 1, 1, 1] +14 2 3 2 +After: [3, 1, 0, 1] + +Before: [0, 2, 2, 0] +13 2 2 0 +After: [2, 2, 2, 0] + +Before: [0, 1, 3, 2] +12 1 0 1 +After: [0, 1, 3, 2] + +Before: [3, 1, 2, 1] +10 0 2 3 +After: [3, 1, 2, 1] + +Before: [3, 0, 0, 2] +11 2 0 3 +After: [3, 0, 0, 1] + +Before: [1, 2, 2, 2] +9 0 2 2 +After: [1, 2, 0, 2] + +Before: [2, 0, 0, 1] +2 3 1 2 +After: [2, 0, 1, 1] + +Before: [1, 0, 0, 1] +14 3 3 1 +After: [1, 0, 0, 1] + +Before: [3, 3, 1, 2] +8 0 3 2 +After: [3, 3, 1, 2] + +Before: [0, 1, 1, 0] +12 1 0 1 +After: [0, 1, 1, 0] + +Before: [0, 2, 1, 1] +7 0 0 1 +After: [0, 0, 1, 1] + +Before: [0, 1, 2, 0] +12 1 0 3 +After: [0, 1, 2, 1] + +Before: [2, 1, 2, 1] +13 2 2 1 +After: [2, 2, 2, 1] + +Before: [1, 1, 1, 3] +6 2 3 3 +After: [1, 1, 1, 0] + +Before: [1, 1, 2, 0] +0 1 2 0 +After: [0, 1, 2, 0] + +Before: [2, 1, 1, 2] +10 0 1 0 +After: [1, 1, 1, 2] + +Before: [3, 2, 2, 1] +3 3 2 3 +After: [3, 2, 2, 1] + +Before: [3, 0, 3, 2] +4 3 2 1 +After: [3, 2, 3, 2] + +Before: [1, 0, 0, 1] +2 3 1 3 +After: [1, 0, 0, 1] + +Before: [2, 3, 2, 2] +13 2 2 0 +After: [2, 3, 2, 2] + +Before: [2, 1, 0, 0] +10 0 1 2 +After: [2, 1, 1, 0] + +Before: [2, 0, 3, 2] +4 0 2 3 +After: [2, 0, 3, 2] + +Before: [0, 2, 3, 2] +7 0 0 1 +After: [0, 0, 3, 2] + +Before: [0, 3, 2, 3] +7 0 0 2 +After: [0, 3, 0, 3] + +Before: [3, 2, 2, 0] +10 0 2 2 +After: [3, 2, 1, 0] + +Before: [3, 0, 2, 1] +5 2 2 1 +After: [3, 1, 2, 1] + +Before: [2, 0, 2, 1] +3 3 2 2 +After: [2, 0, 1, 1] + +Before: [1, 2, 2, 3] +9 0 2 2 +After: [1, 2, 0, 3] + +Before: [0, 3, 2, 1] +3 3 2 0 +After: [1, 3, 2, 1] + +Before: [0, 3, 1, 3] +13 3 3 0 +After: [3, 3, 1, 3] + +Before: [0, 1, 2, 3] +0 1 2 2 +After: [0, 1, 0, 3] + +Before: [2, 0, 1, 3] +2 2 1 0 +After: [1, 0, 1, 3] + +Before: [1, 1, 2, 2] +1 1 3 0 +After: [0, 1, 2, 2] + +Before: [2, 1, 2, 3] +10 0 1 3 +After: [2, 1, 2, 1] + +Before: [0, 1, 2, 3] +6 1 3 2 +After: [0, 1, 0, 3] + +Before: [3, 1, 3, 2] +4 3 2 3 +After: [3, 1, 3, 2] + +Before: [3, 1, 0, 2] +11 2 0 3 +After: [3, 1, 0, 1] + +Before: [2, 0, 3, 1] +11 0 2 2 +After: [2, 0, 1, 1] + +Before: [2, 3, 3, 3] +4 0 2 2 +After: [2, 3, 2, 3] + +Before: [0, 1, 2, 2] +1 1 3 1 +After: [0, 0, 2, 2] + +Before: [0, 1, 1, 2] +1 1 3 2 +After: [0, 1, 0, 2] + +Before: [1, 3, 2, 0] +9 0 2 2 +After: [1, 3, 0, 0] + +Before: [3, 3, 1, 3] +13 3 3 1 +After: [3, 3, 1, 3] + +Before: [1, 1, 3, 3] +5 3 3 2 +After: [1, 1, 1, 3] + +Before: [0, 0, 0, 2] +7 0 0 0 +After: [0, 0, 0, 2] + +Before: [2, 1, 1, 2] +10 0 1 1 +After: [2, 1, 1, 2] + +Before: [3, 0, 0, 1] +2 3 1 1 +After: [3, 1, 0, 1] + +Before: [0, 1, 2, 2] +0 1 2 1 +After: [0, 0, 2, 2] + +Before: [1, 1, 2, 2] +0 1 2 3 +After: [1, 1, 2, 0] + +Before: [0, 1, 1, 3] +12 1 0 0 +After: [1, 1, 1, 3] + +Before: [1, 2, 2, 1] +3 3 2 0 +After: [1, 2, 2, 1] + +Before: [2, 1, 2, 0] +10 0 1 2 +After: [2, 1, 1, 0] + +Before: [0, 1, 2, 3] +0 1 2 3 +After: [0, 1, 2, 0] + +Before: [1, 2, 1, 3] +6 2 3 0 +After: [0, 2, 1, 3] + +Before: [3, 1, 2, 2] +1 1 3 1 +After: [3, 0, 2, 2] + +Before: [1, 2, 2, 2] +5 2 1 0 +After: [1, 2, 2, 2] + +Before: [2, 1, 2, 1] +3 3 2 3 +After: [2, 1, 2, 1] + +Before: [3, 1, 0, 0] +15 1 3 3 +After: [3, 1, 0, 1] + +Before: [3, 3, 2, 0] +10 0 2 3 +After: [3, 3, 2, 1] + +Before: [1, 0, 3, 1] +2 3 1 0 +After: [1, 0, 3, 1] + +Before: [1, 2, 1, 3] +6 1 3 3 +After: [1, 2, 1, 0] + +Before: [3, 1, 0, 2] +11 2 0 1 +After: [3, 1, 0, 2] + +Before: [0, 1, 0, 2] +1 1 3 2 +After: [0, 1, 0, 2] + +Before: [1, 0, 1, 2] +14 3 3 2 +After: [1, 0, 0, 2] + +Before: [2, 1, 1, 1] +10 0 1 0 +After: [1, 1, 1, 1] + +Before: [1, 3, 1, 3] +6 2 3 0 +After: [0, 3, 1, 3] + +Before: [1, 1, 2, 1] +9 0 2 0 +After: [0, 1, 2, 1] + +Before: [1, 2, 3, 3] +6 1 3 3 +After: [1, 2, 3, 0] + +Before: [3, 1, 2, 2] +0 1 2 3 +After: [3, 1, 2, 0] + +Before: [1, 0, 2, 0] +2 0 1 3 +After: [1, 0, 2, 1] + +Before: [1, 1, 2, 2] +9 0 2 3 +After: [1, 1, 2, 0] + +Before: [2, 0, 2, 3] +6 2 3 0 +After: [0, 0, 2, 3] + +Before: [1, 3, 1, 2] +14 3 3 1 +After: [1, 0, 1, 2] + +Before: [0, 2, 1, 3] +6 1 3 1 +After: [0, 0, 1, 3] + +Before: [1, 1, 1, 2] +1 1 3 1 +After: [1, 0, 1, 2] + +Before: [3, 1, 2, 1] +0 1 2 1 +After: [3, 0, 2, 1] + +Before: [2, 1, 1, 3] +6 2 3 3 +After: [2, 1, 1, 0] + +Before: [1, 1, 2, 3] +0 1 2 1 +After: [1, 0, 2, 3] + +Before: [0, 1, 3, 1] +12 1 0 1 +After: [0, 1, 3, 1] + +Before: [3, 3, 2, 2] +14 3 3 1 +After: [3, 0, 2, 2] + +Before: [0, 2, 3, 0] +7 0 0 0 +After: [0, 2, 3, 0] + +Before: [0, 1, 0, 3] +6 1 3 3 +After: [0, 1, 0, 0] + +Before: [1, 1, 2, 3] +9 0 2 3 +After: [1, 1, 2, 0] + +Before: [1, 1, 2, 0] +9 0 2 2 +After: [1, 1, 0, 0] + +Before: [1, 0, 3, 1] +2 3 1 2 +After: [1, 0, 1, 1] + +Before: [2, 0, 3, 2] +4 0 2 1 +After: [2, 2, 3, 2] + +Before: [3, 1, 3, 1] +5 2 3 3 +After: [3, 1, 3, 0] + +Before: [2, 0, 1, 1] +14 2 3 1 +After: [2, 0, 1, 1] + +Before: [2, 0, 3, 3] +11 0 2 0 +After: [1, 0, 3, 3] + +Before: [3, 1, 2, 1] +0 1 2 0 +After: [0, 1, 2, 1] + +Before: [3, 3, 1, 3] +13 3 3 2 +After: [3, 3, 3, 3] + +Before: [0, 1, 0, 3] +12 1 0 0 +After: [1, 1, 0, 3] + +Before: [2, 1, 1, 0] +8 0 2 1 +After: [2, 1, 1, 0] + +Before: [0, 1, 3, 2] +1 1 3 3 +After: [0, 1, 3, 0] + +Before: [3, 2, 3, 2] +8 0 3 0 +After: [1, 2, 3, 2] + +Before: [2, 0, 3, 2] +11 0 2 1 +After: [2, 1, 3, 2] + +Before: [0, 1, 1, 1] +12 1 0 1 +After: [0, 1, 1, 1] + +Before: [2, 0, 3, 1] +4 0 2 1 +After: [2, 2, 3, 1] + +Before: [2, 1, 2, 1] +0 1 2 0 +After: [0, 1, 2, 1] + +Before: [3, 2, 0, 1] +11 2 0 2 +After: [3, 2, 1, 1] + +Before: [0, 1, 0, 0] +15 1 3 1 +After: [0, 1, 0, 0] + +Before: [3, 1, 2, 3] +6 1 3 0 +After: [0, 1, 2, 3] + +Before: [0, 1, 2, 0] +0 1 2 2 +After: [0, 1, 0, 0] + +Before: [1, 2, 2, 1] +9 0 2 2 +After: [1, 2, 0, 1] + +Before: [3, 3, 2, 1] +3 3 2 2 +After: [3, 3, 1, 1] + +Before: [0, 2, 1, 3] +13 3 3 1 +After: [0, 3, 1, 3] + +Before: [0, 2, 2, 2] +7 0 0 0 +After: [0, 2, 2, 2] + +Before: [1, 3, 3, 2] +14 3 3 2 +After: [1, 3, 0, 2] + +Before: [3, 1, 0, 2] +1 1 3 1 +After: [3, 0, 0, 2] + +Before: [0, 2, 3, 3] +6 1 3 3 +After: [0, 2, 3, 0] + +Before: [3, 1, 2, 0] +15 1 3 2 +After: [3, 1, 1, 0] + +Before: [0, 0, 2, 3] +5 2 2 3 +After: [0, 0, 2, 1] + +Before: [1, 0, 2, 1] +9 0 2 0 +After: [0, 0, 2, 1] + +Before: [0, 1, 1, 2] +7 0 0 0 +After: [0, 1, 1, 2] + +Before: [2, 3, 1, 3] +5 3 2 1 +After: [2, 0, 1, 3] + +Before: [2, 1, 2, 3] +0 1 2 0 +After: [0, 1, 2, 3] + +Before: [2, 2, 3, 2] +4 0 2 1 +After: [2, 2, 3, 2] + +Before: [0, 3, 2, 2] +7 0 0 2 +After: [0, 3, 0, 2] + +Before: [3, 0, 3, 3] +5 3 0 3 +After: [3, 0, 3, 1] + +Before: [1, 1, 3, 3] +13 3 3 0 +After: [3, 1, 3, 3] + +Before: [3, 2, 3, 3] +4 1 2 3 +After: [3, 2, 3, 2] + +Before: [0, 1, 2, 2] +13 2 2 0 +After: [2, 1, 2, 2] + +Before: [0, 3, 2, 3] +5 0 0 2 +After: [0, 3, 1, 3] + +Before: [3, 3, 3, 2] +4 3 2 2 +After: [3, 3, 2, 2] + +Before: [0, 3, 0, 3] +5 3 3 0 +After: [1, 3, 0, 3] + +Before: [3, 3, 2, 2] +13 2 2 2 +After: [3, 3, 2, 2] + +Before: [2, 1, 0, 2] +1 1 3 0 +After: [0, 1, 0, 2] + +Before: [3, 3, 0, 1] +14 3 3 1 +After: [3, 0, 0, 1] + +Before: [0, 0, 3, 0] +7 0 0 2 +After: [0, 0, 0, 0] + +Before: [1, 0, 1, 1] +2 0 1 2 +After: [1, 0, 1, 1] + +Before: [1, 2, 3, 3] +13 3 3 0 +After: [3, 2, 3, 3] + +Before: [3, 2, 1, 3] +6 2 3 3 +After: [3, 2, 1, 0] + +Before: [3, 1, 2, 1] +10 0 2 1 +After: [3, 1, 2, 1] + +Before: [1, 2, 2, 0] +9 0 2 3 +After: [1, 2, 2, 0] + +Before: [3, 1, 2, 2] +0 1 2 0 +After: [0, 1, 2, 2] + +Before: [0, 1, 0, 0] +12 1 0 0 +After: [1, 1, 0, 0] + +Before: [2, 0, 2, 1] +2 3 1 2 +After: [2, 0, 1, 1] + +Before: [2, 3, 2, 1] +3 3 2 1 +After: [2, 1, 2, 1] + +Before: [3, 2, 3, 1] +14 3 3 3 +After: [3, 2, 3, 0] + +Before: [1, 0, 2, 1] +3 3 2 0 +After: [1, 0, 2, 1] + +Before: [1, 1, 2, 0] +0 1 2 2 +After: [1, 1, 0, 0] + +Before: [2, 2, 3, 2] +11 0 2 3 +After: [2, 2, 3, 1] + +Before: [3, 0, 2, 3] +10 0 2 0 +After: [1, 0, 2, 3] + +Before: [3, 2, 3, 2] +4 3 2 1 +After: [3, 2, 3, 2] + +Before: [3, 1, 2, 2] +10 0 2 2 +After: [3, 1, 1, 2] + +Before: [2, 1, 3, 3] +6 1 3 2 +After: [2, 1, 0, 3] + +Before: [3, 2, 2, 2] +8 0 3 2 +After: [3, 2, 1, 2] + +Before: [0, 1, 0, 0] +7 0 0 3 +After: [0, 1, 0, 0] + +Before: [2, 3, 3, 2] +11 0 2 3 +After: [2, 3, 3, 1] + +Before: [0, 2, 3, 2] +7 0 0 3 +After: [0, 2, 3, 0] + +Before: [1, 3, 3, 3] +5 3 2 0 +After: [1, 3, 3, 3] + +Before: [3, 2, 0, 3] +11 2 0 3 +After: [3, 2, 0, 1] + +Before: [3, 2, 2, 2] +14 3 3 3 +After: [3, 2, 2, 0] + +Before: [2, 3, 2, 3] +13 2 2 3 +After: [2, 3, 2, 2] + +Before: [3, 2, 3, 2] +14 3 3 0 +After: [0, 2, 3, 2] + +Before: [1, 3, 1, 1] +14 3 3 0 +After: [0, 3, 1, 1] + +Before: [3, 1, 2, 1] +0 1 2 2 +After: [3, 1, 0, 1] + +Before: [0, 1, 1, 2] +1 1 3 1 +After: [0, 0, 1, 2] + +Before: [3, 3, 3, 2] +8 0 3 0 +After: [1, 3, 3, 2] + +Before: [2, 0, 3, 3] +4 0 2 0 +After: [2, 0, 3, 3] + +Before: [1, 2, 2, 1] +3 3 2 1 +After: [1, 1, 2, 1] + +Before: [0, 1, 3, 0] +7 0 0 2 +After: [0, 1, 0, 0] + +Before: [0, 0, 3, 2] +14 3 3 2 +After: [0, 0, 0, 2] + +Before: [2, 3, 2, 1] +5 2 0 3 +After: [2, 3, 2, 1] + +Before: [0, 1, 0, 1] +12 1 0 2 +After: [0, 1, 1, 1] + +Before: [0, 1, 2, 0] +15 1 3 3 +After: [0, 1, 2, 1] + +Before: [1, 3, 2, 3] +6 2 3 0 +After: [0, 3, 2, 3] + +Before: [1, 1, 1, 3] +13 3 3 1 +After: [1, 3, 1, 3] + +Before: [2, 1, 3, 3] +4 0 2 3 +After: [2, 1, 3, 2] + +Before: [0, 1, 2, 3] +0 1 2 1 +After: [0, 0, 2, 3] + +Before: [2, 1, 1, 2] +1 1 3 3 +After: [2, 1, 1, 0] + +Before: [3, 0, 2, 0] +10 0 2 3 +After: [3, 0, 2, 1] + +Before: [1, 2, 2, 1] +9 0 2 3 +After: [1, 2, 2, 0] + +Before: [2, 1, 3, 2] +4 0 2 1 +After: [2, 2, 3, 2] + +Before: [3, 3, 0, 1] +11 2 0 3 +After: [3, 3, 0, 1] + +Before: [3, 1, 2, 0] +0 1 2 0 +After: [0, 1, 2, 0] + +Before: [0, 1, 3, 3] +12 1 0 1 +After: [0, 1, 3, 3] + +Before: [1, 0, 0, 1] +2 3 1 1 +After: [1, 1, 0, 1] + +Before: [1, 1, 2, 3] +9 0 2 1 +After: [1, 0, 2, 3] + +Before: [3, 2, 0, 2] +11 2 0 1 +After: [3, 1, 0, 2] + +Before: [0, 3, 1, 1] +7 0 0 1 +After: [0, 0, 1, 1] + +Before: [0, 1, 2, 2] +7 0 0 1 +After: [0, 0, 2, 2] + +Before: [0, 3, 2, 0] +7 0 0 0 +After: [0, 3, 2, 0] + +Before: [2, 3, 2, 1] +3 3 2 0 +After: [1, 3, 2, 1] + +Before: [3, 3, 0, 2] +8 0 3 1 +After: [3, 1, 0, 2] + +Before: [0, 1, 2, 1] +12 1 0 3 +After: [0, 1, 2, 1] + +Before: [0, 2, 3, 3] +5 0 0 3 +After: [0, 2, 3, 1] + +Before: [0, 0, 0, 1] +2 3 1 1 +After: [0, 1, 0, 1] + +Before: [2, 0, 3, 2] +11 0 2 2 +After: [2, 0, 1, 2] + +Before: [0, 1, 3, 0] +15 1 3 1 +After: [0, 1, 3, 0] + +Before: [0, 2, 1, 3] +7 0 0 0 +After: [0, 2, 1, 3] + +Before: [0, 3, 3, 3] +7 0 0 2 +After: [0, 3, 0, 3] + +Before: [3, 1, 2, 2] +1 1 3 0 +After: [0, 1, 2, 2] + +Before: [3, 0, 0, 2] +14 3 3 3 +After: [3, 0, 0, 0] + +Before: [3, 1, 3, 0] +15 1 3 1 +After: [3, 1, 3, 0] + +Before: [3, 0, 2, 1] +3 3 2 3 +After: [3, 0, 2, 1] + +Before: [0, 1, 0, 3] +12 1 0 2 +After: [0, 1, 1, 3] + +Before: [2, 3, 2, 2] +5 2 0 0 +After: [1, 3, 2, 2] + +Before: [0, 1, 2, 2] +0 1 2 0 +After: [0, 1, 2, 2] + +Before: [2, 0, 1, 0] +8 0 2 1 +After: [2, 1, 1, 0] + +Before: [3, 1, 3, 3] +6 1 3 0 +After: [0, 1, 3, 3] + +Before: [1, 1, 1, 2] +1 1 3 2 +After: [1, 1, 0, 2] + +Before: [2, 1, 0, 2] +1 1 3 3 +After: [2, 1, 0, 0] + +Before: [2, 1, 3, 2] +11 0 2 3 +After: [2, 1, 3, 1] + +Before: [3, 1, 2, 2] +14 3 3 3 +After: [3, 1, 2, 0] + +Before: [3, 0, 1, 2] +2 2 1 1 +After: [3, 1, 1, 2] + +Before: [3, 1, 1, 0] +15 1 3 1 +After: [3, 1, 1, 0] + +Before: [2, 0, 3, 0] +4 0 2 3 +After: [2, 0, 3, 2] + +Before: [0, 2, 0, 3] +7 0 0 2 +After: [0, 2, 0, 3] + +Before: [1, 0, 2, 2] +9 0 2 2 +After: [1, 0, 0, 2] + +Before: [0, 3, 2, 1] +3 3 2 3 +After: [0, 3, 2, 1] + +Before: [2, 1, 1, 0] +15 1 3 0 +After: [1, 1, 1, 0] + +Before: [3, 1, 3, 2] +8 0 3 1 +After: [3, 1, 3, 2] + +Before: [0, 0, 2, 1] +2 3 1 3 +After: [0, 0, 2, 1] + +Before: [3, 1, 2, 2] +10 0 2 0 +After: [1, 1, 2, 2] + +Before: [1, 3, 2, 1] +3 3 2 0 +After: [1, 3, 2, 1] + +Before: [1, 3, 2, 1] +3 3 2 3 +After: [1, 3, 2, 1] + +Before: [3, 2, 3, 2] +4 3 2 0 +After: [2, 2, 3, 2] + +Before: [2, 1, 3, 0] +4 0 2 0 +After: [2, 1, 3, 0] + +Before: [3, 1, 2, 1] +3 3 2 1 +After: [3, 1, 2, 1] + +Before: [1, 3, 2, 0] +9 0 2 1 +After: [1, 0, 2, 0] + +Before: [3, 2, 0, 1] +14 3 3 2 +After: [3, 2, 0, 1] + +Before: [2, 3, 3, 3] +11 0 2 1 +After: [2, 1, 3, 3] + +Before: [0, 1, 2, 0] +0 1 2 3 +After: [0, 1, 2, 0] + +Before: [2, 1, 3, 2] +1 1 3 0 +After: [0, 1, 3, 2] + +Before: [1, 1, 2, 0] +9 0 2 3 +After: [1, 1, 2, 0] + +Before: [0, 1, 2, 2] +12 1 0 2 +After: [0, 1, 1, 2] + +Before: [0, 0, 3, 3] +5 0 0 2 +After: [0, 0, 1, 3] + +Before: [1, 0, 1, 3] +2 2 1 0 +After: [1, 0, 1, 3] + +Before: [2, 0, 3, 0] +11 0 2 3 +After: [2, 0, 3, 1] + +Before: [2, 3, 2, 1] +14 3 3 1 +After: [2, 0, 2, 1] + +Before: [3, 2, 2, 3] +10 0 2 0 +After: [1, 2, 2, 3] + +Before: [2, 0, 1, 1] +8 0 2 3 +After: [2, 0, 1, 1] + +Before: [0, 1, 2, 1] +0 1 2 1 +After: [0, 0, 2, 1] + +Before: [0, 1, 2, 3] +5 3 1 1 +After: [0, 0, 2, 3] + +Before: [3, 0, 0, 3] +13 3 3 2 +After: [3, 0, 3, 3] + +Before: [1, 1, 2, 2] +1 1 3 3 +After: [1, 1, 2, 0] + +Before: [3, 0, 0, 3] +13 3 3 3 +After: [3, 0, 0, 3] + +Before: [0, 1, 1, 2] +1 1 3 0 +After: [0, 1, 1, 2] + +Before: [0, 1, 2, 3] +13 2 2 1 +After: [0, 2, 2, 3] + +Before: [1, 1, 2, 3] +9 0 2 2 +After: [1, 1, 0, 3] + +Before: [3, 0, 0, 3] +11 2 0 0 +After: [1, 0, 0, 3] + +Before: [0, 1, 0, 2] +12 1 0 2 +After: [0, 1, 1, 2] + +Before: [0, 1, 2, 0] +5 0 0 3 +After: [0, 1, 2, 1] + +Before: [3, 3, 2, 1] +10 0 2 3 +After: [3, 3, 2, 1] + +Before: [2, 2, 3, 0] +4 1 2 3 +After: [2, 2, 3, 2] + +Before: [2, 0, 2, 0] +5 2 2 3 +After: [2, 0, 2, 1] + +Before: [1, 1, 2, 0] +15 1 3 0 +After: [1, 1, 2, 0] + +Before: [1, 3, 2, 3] +9 0 2 0 +After: [0, 3, 2, 3] + +Before: [3, 1, 3, 0] +15 1 3 3 +After: [3, 1, 3, 1] + +Before: [3, 0, 1, 3] +2 2 1 3 +After: [3, 0, 1, 1] + +Before: [0, 1, 1, 0] +15 1 3 1 +After: [0, 1, 1, 0] + +Before: [1, 3, 2, 1] +3 3 2 2 +After: [1, 3, 1, 1] + +Before: [2, 2, 3, 0] +11 0 2 3 +After: [2, 2, 3, 1] + +Before: [1, 1, 2, 3] +5 3 2 1 +After: [1, 0, 2, 3] + +Before: [3, 0, 1, 1] +2 3 1 0 +After: [1, 0, 1, 1] + +Before: [2, 1, 2, 3] +5 2 0 1 +After: [2, 1, 2, 3] + +Before: [2, 1, 2, 0] +10 0 1 0 +After: [1, 1, 2, 0] + +Before: [2, 2, 3, 3] +4 1 2 1 +After: [2, 2, 3, 3] + +Before: [3, 0, 2, 1] +3 3 2 0 +After: [1, 0, 2, 1] + +Before: [3, 2, 2, 0] +10 0 2 3 +After: [3, 2, 2, 1] + +Before: [3, 0, 1, 3] +5 3 0 3 +After: [3, 0, 1, 1] + +Before: [1, 1, 2, 0] +0 1 2 3 +After: [1, 1, 2, 0] + +Before: [3, 1, 1, 2] +1 1 3 1 +After: [3, 0, 1, 2] + +Before: [1, 3, 2, 1] +3 3 2 1 +After: [1, 1, 2, 1] + +Before: [0, 1, 1, 0] +7 0 0 0 +After: [0, 1, 1, 0] + +Before: [3, 1, 3, 2] +1 1 3 3 +After: [3, 1, 3, 0] + +Before: [0, 3, 2, 3] +6 2 3 1 +After: [0, 0, 2, 3] + +Before: [3, 2, 2, 3] +6 2 3 0 +After: [0, 2, 2, 3] + +Before: [3, 1, 2, 1] +3 3 2 2 +After: [3, 1, 1, 1] + +Before: [2, 0, 2, 3] +6 2 3 1 +After: [2, 0, 2, 3] + +Before: [3, 1, 0, 2] +11 2 0 2 +After: [3, 1, 1, 2] + +Before: [1, 1, 0, 2] +1 1 3 1 +After: [1, 0, 0, 2] + +Before: [2, 2, 3, 3] +11 0 2 2 +After: [2, 2, 1, 3] + +Before: [0, 0, 2, 3] +13 2 2 1 +After: [0, 2, 2, 3] + +Before: [2, 1, 3, 0] +10 0 1 1 +After: [2, 1, 3, 0] + +Before: [0, 1, 2, 2] +5 2 2 0 +After: [1, 1, 2, 2] + +Before: [1, 1, 3, 2] +4 3 2 3 +After: [1, 1, 3, 2] + +Before: [3, 1, 2, 0] +15 1 3 3 +After: [3, 1, 2, 1] + +Before: [0, 1, 3, 1] +12 1 0 3 +After: [0, 1, 3, 1] + +Before: [0, 1, 2, 2] +0 1 2 3 +After: [0, 1, 2, 0] + +Before: [3, 2, 2, 3] +10 0 2 1 +After: [3, 1, 2, 3] + +Before: [0, 3, 1, 1] +14 3 3 0 +After: [0, 3, 1, 1] + +Before: [3, 0, 2, 1] +2 3 1 1 +After: [3, 1, 2, 1] + +Before: [0, 3, 2, 3] +13 2 2 3 +After: [0, 3, 2, 2] + +Before: [3, 0, 2, 0] +10 0 2 2 +After: [3, 0, 1, 0] + +Before: [2, 3, 0, 3] +13 3 3 3 +After: [2, 3, 0, 3] + +Before: [3, 0, 1, 3] +2 2 1 0 +After: [1, 0, 1, 3] + +Before: [0, 1, 1, 0] +12 1 0 3 +After: [0, 1, 1, 1] + +Before: [0, 1, 2, 3] +12 1 0 1 +After: [0, 1, 2, 3] + +Before: [0, 1, 3, 0] +5 0 0 1 +After: [0, 1, 3, 0] + +Before: [3, 2, 2, 1] +10 0 2 2 +After: [3, 2, 1, 1] + +Before: [3, 1, 3, 1] +5 2 1 0 +After: [0, 1, 3, 1] + +Before: [0, 1, 2, 0] +15 1 3 0 +After: [1, 1, 2, 0] + +Before: [0, 1, 0, 2] +1 1 3 1 +After: [0, 0, 0, 2] + +Before: [3, 0, 2, 1] +10 0 2 2 +After: [3, 0, 1, 1] + +Before: [0, 1, 0, 0] +12 1 0 2 +After: [0, 1, 1, 0] + +Before: [3, 0, 2, 1] +10 0 2 3 +After: [3, 0, 2, 1] + +Before: [0, 3, 2, 1] +3 3 2 1 +After: [0, 1, 2, 1] + +Before: [1, 1, 2, 2] +9 0 2 1 +After: [1, 0, 2, 2] + +Before: [2, 1, 3, 0] +15 1 3 2 +After: [2, 1, 1, 0] + +Before: [0, 0, 2, 1] +13 2 2 2 +After: [0, 0, 2, 1] + +Before: [0, 3, 3, 2] +4 3 2 2 +After: [0, 3, 2, 2] + +Before: [2, 1, 2, 0] +15 1 3 2 +After: [2, 1, 1, 0] + +Before: [1, 0, 2, 2] +9 0 2 3 +After: [1, 0, 2, 0] + +Before: [0, 1, 1, 0] +15 1 3 3 +After: [0, 1, 1, 1] + +Before: [0, 1, 0, 0] +15 1 3 2 +After: [0, 1, 1, 0] + +Before: [0, 1, 1, 3] +12 1 0 2 +After: [0, 1, 1, 3] + +Before: [3, 1, 2, 2] +10 0 2 3 +After: [3, 1, 2, 1] + +Before: [3, 3, 2, 3] +10 0 2 3 +After: [3, 3, 2, 1] + +Before: [0, 0, 1, 3] +2 2 1 1 +After: [0, 1, 1, 3] + +Before: [0, 1, 3, 0] +15 1 3 2 +After: [0, 1, 1, 0] + +Before: [1, 3, 2, 2] +9 0 2 1 +After: [1, 0, 2, 2] + +Before: [3, 3, 0, 0] +11 2 0 0 +After: [1, 3, 0, 0] + +Before: [0, 1, 0, 0] +12 1 0 1 +After: [0, 1, 0, 0] + +Before: [3, 2, 0, 2] +14 3 3 2 +After: [3, 2, 0, 2] + +Before: [3, 3, 0, 2] +11 2 0 2 +After: [3, 3, 1, 2] + +Before: [1, 2, 2, 3] +9 0 2 3 +After: [1, 2, 2, 0] + +Before: [1, 3, 3, 3] +5 3 3 2 +After: [1, 3, 1, 3] + +Before: [2, 0, 1, 1] +14 3 3 0 +After: [0, 0, 1, 1] + +Before: [1, 3, 2, 2] +9 0 2 0 +After: [0, 3, 2, 2] + +Before: [2, 1, 1, 3] +8 0 2 1 +After: [2, 1, 1, 3] + +Before: [2, 1, 1, 2] +8 0 2 3 +After: [2, 1, 1, 1] + +Before: [2, 2, 1, 0] +8 0 2 2 +After: [2, 2, 1, 0] + +Before: [3, 1, 2, 1] +10 0 2 2 +After: [3, 1, 1, 1] + +Before: [0, 2, 3, 0] +7 0 0 1 +After: [0, 0, 3, 0] + +Before: [3, 3, 3, 3] +5 3 0 2 +After: [3, 3, 1, 3] + +Before: [3, 0, 2, 1] +13 2 2 1 +After: [3, 2, 2, 1] + +Before: [1, 1, 2, 3] +0 1 2 3 +After: [1, 1, 2, 0] + +Before: [2, 1, 2, 3] +6 2 3 1 +After: [2, 0, 2, 3] + +Before: [0, 0, 1, 2] +2 2 1 2 +After: [0, 0, 1, 2] + +Before: [1, 2, 1, 3] +5 3 1 2 +After: [1, 2, 0, 3] + +Before: [3, 0, 0, 2] +8 0 3 0 +After: [1, 0, 0, 2] + +Before: [1, 3, 2, 1] +9 0 2 1 +After: [1, 0, 2, 1] + +Before: [3, 1, 2, 1] +0 1 2 3 +After: [3, 1, 2, 0] + +Before: [0, 1, 2, 3] +12 1 0 0 +After: [1, 1, 2, 3] + +Before: [2, 3, 3, 3] +11 0 2 3 +After: [2, 3, 3, 1] + +Before: [0, 2, 0, 3] +7 0 0 3 +After: [0, 2, 0, 0] + +Before: [1, 1, 3, 2] +1 1 3 3 +After: [1, 1, 3, 0] + +Before: [3, 2, 3, 3] +5 3 2 1 +After: [3, 1, 3, 3] + +Before: [1, 0, 2, 3] +13 3 3 1 +After: [1, 3, 2, 3] + +Before: [2, 1, 3, 0] +15 1 3 3 +After: [2, 1, 3, 1] + +Before: [2, 0, 2, 3] +6 2 3 2 +After: [2, 0, 0, 3] + +Before: [2, 1, 1, 3] +6 1 3 0 +After: [0, 1, 1, 3] + +Before: [0, 0, 2, 1] +2 3 1 2 +After: [0, 0, 1, 1] + +Before: [1, 0, 1, 0] +2 0 1 3 +After: [1, 0, 1, 1] + +Before: [2, 1, 1, 3] +13 3 3 2 +After: [2, 1, 3, 3] + +Before: [0, 2, 1, 0] +7 0 0 2 +After: [0, 2, 0, 0] + +Before: [1, 0, 2, 0] +2 0 1 2 +After: [1, 0, 1, 0] + +Before: [0, 0, 3, 1] +2 3 1 0 +After: [1, 0, 3, 1] + +Before: [2, 0, 1, 0] +8 0 2 3 +After: [2, 0, 1, 1] + +Before: [3, 1, 1, 2] +1 1 3 3 +After: [3, 1, 1, 0] + +Before: [0, 1, 1, 2] +12 1 0 0 +After: [1, 1, 1, 2] + +Before: [1, 1, 2, 1] +9 0 2 3 +After: [1, 1, 2, 0] + +Before: [0, 0, 0, 2] +14 3 3 2 +After: [0, 0, 0, 2] + +Before: [3, 1, 0, 2] +1 1 3 2 +After: [3, 1, 0, 2] + +Before: [0, 1, 3, 2] +4 3 2 0 +After: [2, 1, 3, 2] + +Before: [1, 0, 2, 1] +2 0 1 2 +After: [1, 0, 1, 1] + +Before: [1, 3, 2, 1] +9 0 2 0 +After: [0, 3, 2, 1] + +Before: [0, 0, 2, 1] +3 3 2 1 +After: [0, 1, 2, 1] + +Before: [2, 2, 2, 3] +6 1 3 3 +After: [2, 2, 2, 0] + +Before: [3, 2, 2, 2] +10 0 2 2 +After: [3, 2, 1, 2] + +Before: [1, 0, 3, 2] +14 3 3 1 +After: [1, 0, 3, 2] + +Before: [2, 0, 3, 0] +4 0 2 1 +After: [2, 2, 3, 0] + +Before: [2, 1, 1, 2] +10 0 1 3 +After: [2, 1, 1, 1] + +Before: [2, 1, 2, 0] +10 0 1 3 +After: [2, 1, 2, 1] + +Before: [2, 3, 3, 3] +11 0 2 2 +After: [2, 3, 1, 3] + +Before: [2, 1, 2, 1] +10 0 1 1 +After: [2, 1, 2, 1] + +Before: [2, 2, 3, 3] +4 1 2 3 +After: [2, 2, 3, 2] + +Before: [3, 1, 2, 3] +10 0 2 3 +After: [3, 1, 2, 1] + +Before: [1, 2, 2, 0] +9 0 2 1 +After: [1, 0, 2, 0] + +Before: [1, 3, 2, 2] +9 0 2 3 +After: [1, 3, 2, 0] + +Before: [1, 1, 2, 3] +5 3 2 2 +After: [1, 1, 0, 3] + +Before: [1, 0, 3, 0] +2 0 1 1 +After: [1, 1, 3, 0] + +Before: [1, 1, 1, 0] +15 1 3 0 +After: [1, 1, 1, 0] + +Before: [0, 2, 3, 3] +4 1 2 2 +After: [0, 2, 2, 3] + +Before: [2, 1, 3, 2] +5 2 1 2 +After: [2, 1, 0, 2] + +Before: [2, 1, 2, 0] +0 1 2 1 +After: [2, 0, 2, 0] + +Before: [1, 1, 3, 2] +1 1 3 0 +After: [0, 1, 3, 2] + +Before: [3, 3, 2, 1] +10 0 2 2 +After: [3, 3, 1, 1] + +Before: [0, 1, 2, 1] +3 3 2 2 +After: [0, 1, 1, 1] + +Before: [0, 1, 3, 3] +7 0 0 0 +After: [0, 1, 3, 3] + +Before: [2, 0, 2, 1] +3 3 2 1 +After: [2, 1, 2, 1] + +Before: [1, 1, 2, 1] +0 1 2 1 +After: [1, 0, 2, 1] + +Before: [3, 0, 1, 2] +8 0 3 1 +After: [3, 1, 1, 2] + +Before: [1, 0, 2, 2] +2 0 1 2 +After: [1, 0, 1, 2] + +Before: [3, 1, 2, 3] +6 2 3 1 +After: [3, 0, 2, 3] + +Before: [0, 0, 2, 1] +2 3 1 0 +After: [1, 0, 2, 1] + +Before: [0, 1, 0, 3] +12 1 0 3 +After: [0, 1, 0, 1] + +Before: [2, 1, 1, 3] +5 3 2 3 +After: [2, 1, 1, 0] + +Before: [2, 0, 3, 2] +14 3 3 1 +After: [2, 0, 3, 2] + +Before: [1, 2, 2, 2] +9 0 2 1 +After: [1, 0, 2, 2] + +Before: [0, 1, 1, 1] +12 1 0 0 +After: [1, 1, 1, 1] + +Before: [0, 2, 0, 1] +7 0 0 2 +After: [0, 2, 0, 1] + +Before: [2, 2, 1, 2] +8 0 2 3 +After: [2, 2, 1, 1] + +Before: [1, 0, 1, 1] +2 0 1 3 +After: [1, 0, 1, 1] + +Before: [2, 1, 1, 2] +10 0 1 2 +After: [2, 1, 1, 2] + +Before: [2, 1, 1, 1] +8 0 2 2 +After: [2, 1, 1, 1] + +Before: [3, 3, 2, 2] +10 0 2 2 +After: [3, 3, 1, 2] + +Before: [2, 3, 2, 0] +13 2 2 1 +After: [2, 2, 2, 0] + +Before: [1, 0, 2, 3] +2 0 1 2 +After: [1, 0, 1, 3] + +Before: [2, 1, 3, 3] +4 0 2 0 +After: [2, 1, 3, 3] + +Before: [1, 2, 2, 0] +5 2 1 2 +After: [1, 2, 1, 0] + +Before: [0, 1, 0, 2] +12 1 0 1 +After: [0, 1, 0, 2] + +Before: [3, 1, 1, 2] +8 0 3 0 +After: [1, 1, 1, 2] + +Before: [0, 1, 3, 0] +15 1 3 0 +After: [1, 1, 3, 0] + +Before: [2, 1, 3, 2] +4 3 2 2 +After: [2, 1, 2, 2] + +Before: [3, 1, 0, 2] +8 0 3 3 +After: [3, 1, 0, 1] + +Before: [2, 3, 3, 3] +11 0 2 0 +After: [1, 3, 3, 3] + +Before: [0, 1, 1, 3] +6 2 3 2 +After: [0, 1, 0, 3] + +Before: [2, 3, 3, 1] +11 0 2 2 +After: [2, 3, 1, 1] + +Before: [3, 1, 1, 2] +8 0 3 2 +After: [3, 1, 1, 2] + +Before: [1, 2, 2, 3] +9 0 2 0 +After: [0, 2, 2, 3] + +Before: [1, 1, 0, 2] +1 1 3 0 +After: [0, 1, 0, 2] + +Before: [1, 1, 0, 2] +1 1 3 3 +After: [1, 1, 0, 0] + +Before: [0, 1, 2, 3] +12 1 0 3 +After: [0, 1, 2, 1] + +Before: [3, 0, 1, 2] +8 0 3 3 +After: [3, 0, 1, 1] + +Before: [2, 1, 2, 3] +0 1 2 1 +After: [2, 0, 2, 3] + +Before: [3, 0, 0, 0] +11 2 0 3 +After: [3, 0, 0, 1] + +Before: [3, 2, 2, 2] +8 0 3 3 +After: [3, 2, 2, 1] + +Before: [1, 1, 3, 3] +6 1 3 1 +After: [1, 0, 3, 3] + +Before: [3, 1, 0, 1] +11 2 0 0 +After: [1, 1, 0, 1] + +Before: [1, 1, 1, 0] +15 1 3 3 +After: [1, 1, 1, 1] + +Before: [2, 2, 3, 2] +4 0 2 3 +After: [2, 2, 3, 2] + +Before: [2, 2, 3, 2] +11 0 2 1 +After: [2, 1, 3, 2] + +Before: [0, 0, 1, 1] +7 0 0 0 +After: [0, 0, 1, 1] + +Before: [0, 3, 1, 3] +7 0 0 1 +After: [0, 0, 1, 3] + +Before: [2, 1, 3, 1] +10 0 1 0 +After: [1, 1, 3, 1] + +Before: [3, 1, 2, 2] +0 1 2 2 +After: [3, 1, 0, 2] + +Before: [1, 0, 3, 2] +2 0 1 0 +After: [1, 0, 3, 2] + +Before: [3, 0, 3, 1] +2 3 1 1 +After: [3, 1, 3, 1] + +Before: [3, 1, 2, 1] +3 3 2 0 +After: [1, 1, 2, 1] + +Before: [3, 1, 2, 1] +10 0 2 0 +After: [1, 1, 2, 1] + +Before: [3, 3, 2, 1] +3 3 2 1 +After: [3, 1, 2, 1] + +Before: [0, 1, 0, 2] +1 1 3 0 +After: [0, 1, 0, 2] + +Before: [2, 1, 3, 1] +11 0 2 1 +After: [2, 1, 3, 1] + +Before: [2, 3, 1, 1] +8 0 2 3 +After: [2, 3, 1, 1] + +Before: [2, 2, 2, 1] +5 2 2 1 +After: [2, 1, 2, 1] + +Before: [3, 0, 1, 1] +2 3 1 2 +After: [3, 0, 1, 1] + +Before: [2, 2, 2, 1] +14 3 3 0 +After: [0, 2, 2, 1] + +Before: [2, 3, 3, 2] +4 0 2 0 +After: [2, 3, 3, 2] + +Before: [2, 2, 3, 1] +11 0 2 2 +After: [2, 2, 1, 1] + +Before: [0, 1, 1, 1] +7 0 0 3 +After: [0, 1, 1, 0] + +Before: [3, 3, 0, 1] +11 2 0 2 +After: [3, 3, 1, 1] + +Before: [2, 2, 3, 3] +4 0 2 2 +After: [2, 2, 2, 3] + +Before: [2, 2, 3, 0] +4 0 2 3 +After: [2, 2, 3, 2] + +Before: [1, 1, 2, 1] +0 1 2 3 +After: [1, 1, 2, 0] + +Before: [2, 1, 0, 2] +10 0 1 1 +After: [2, 1, 0, 2] + +Before: [1, 3, 2, 0] +9 0 2 0 +After: [0, 3, 2, 0] + +Before: [3, 2, 0, 2] +11 2 0 2 +After: [3, 2, 1, 2] + +Before: [0, 1, 1, 2] +1 1 3 3 +After: [0, 1, 1, 0] + +Before: [1, 1, 3, 2] +1 1 3 1 +After: [1, 0, 3, 2] + +Before: [0, 2, 2, 1] +3 3 2 2 +After: [0, 2, 1, 1] + +Before: [2, 1, 1, 3] +10 0 1 2 +After: [2, 1, 1, 3] + +Before: [0, 1, 1, 3] +7 0 0 2 +After: [0, 1, 0, 3] + +Before: [3, 1, 2, 1] +5 2 2 0 +After: [1, 1, 2, 1] + +Before: [1, 1, 2, 0] +15 1 3 2 +After: [1, 1, 1, 0] + +Before: [0, 1, 2, 2] +0 1 2 2 +After: [0, 1, 0, 2] + +Before: [2, 0, 1, 1] +2 2 1 2 +After: [2, 0, 1, 1] + +Before: [1, 1, 2, 2] +1 1 3 1 +After: [1, 0, 2, 2] + +Before: [3, 1, 2, 0] +10 0 2 2 +After: [3, 1, 1, 0] + +Before: [3, 2, 0, 3] +11 2 0 2 +After: [3, 2, 1, 3] + + + +9 1 1 1 +9 1 1 2 +9 3 3 3 +0 3 2 1 +2 1 3 1 +15 0 1 0 +3 0 3 1 +9 2 0 3 +9 3 0 0 +9 2 3 2 +4 2 3 2 +2 2 1 2 +2 2 2 2 +15 2 1 1 +3 1 1 3 +9 1 2 0 +9 3 1 1 +9 2 0 2 +3 0 2 0 +2 0 3 0 +15 3 0 3 +3 3 1 1 +9 3 0 2 +9 2 3 3 +9 2 0 0 +11 0 2 2 +2 2 3 2 +2 2 1 2 +15 1 2 1 +2 3 0 2 +12 2 0 2 +5 0 3 2 +2 2 1 2 +2 2 2 2 +15 1 2 1 +9 1 2 2 +9 3 1 3 +9 3 2 0 +0 3 2 2 +2 2 3 2 +15 2 1 1 +3 1 0 3 +9 3 2 1 +2 2 0 2 +12 2 0 2 +0 1 2 2 +2 2 1 2 +15 3 2 3 +3 3 2 0 +9 0 1 1 +9 0 3 3 +9 2 1 2 +6 3 2 1 +2 1 2 1 +15 1 0 0 +3 0 2 1 +2 2 0 3 +12 3 1 3 +9 2 0 0 +8 0 3 3 +2 3 3 3 +15 1 3 1 +3 1 1 3 +9 1 1 0 +9 0 2 2 +2 0 0 1 +12 1 1 1 +2 1 2 2 +2 2 1 2 +15 3 2 3 +2 0 0 0 +12 0 2 0 +2 0 0 1 +12 1 2 1 +2 0 0 2 +12 2 3 2 +11 0 2 0 +2 0 1 0 +15 0 3 3 +3 3 2 0 +9 0 2 3 +9 2 3 2 +9 1 0 1 +6 3 2 1 +2 1 3 1 +2 1 1 1 +15 0 1 0 +3 0 3 3 +9 1 0 1 +9 3 0 0 +13 2 0 2 +2 2 2 2 +15 2 3 3 +3 3 3 1 +9 2 2 2 +2 1 0 3 +12 3 0 3 +9 2 1 0 +4 2 3 2 +2 2 2 2 +15 1 2 1 +3 1 2 0 +9 2 0 2 +2 3 0 1 +12 1 3 1 +6 3 2 1 +2 1 1 1 +15 0 1 0 +3 0 1 1 +2 2 0 3 +12 3 2 3 +9 2 2 0 +9 0 2 2 +5 0 3 0 +2 0 2 0 +2 0 3 0 +15 0 1 1 +9 1 1 3 +9 0 0 0 +2 3 2 3 +2 3 1 3 +15 1 3 1 +3 1 0 3 +9 3 1 2 +9 2 2 0 +9 1 0 1 +7 1 0 1 +2 1 1 1 +15 1 3 3 +3 3 3 2 +2 1 0 0 +12 0 1 0 +2 1 0 1 +12 1 0 1 +9 2 3 3 +7 0 3 1 +2 1 1 1 +15 2 1 2 +3 2 3 1 +2 0 0 3 +12 3 0 3 +9 0 2 2 +9 3 0 0 +11 2 0 2 +2 2 3 2 +15 2 1 1 +3 1 3 3 +9 0 3 2 +9 2 3 0 +9 3 2 1 +10 0 1 0 +2 0 2 0 +2 0 1 0 +15 0 3 3 +3 3 3 1 +2 1 0 3 +12 3 2 3 +2 2 0 2 +12 2 2 2 +2 1 0 0 +12 0 1 0 +7 0 3 0 +2 0 3 0 +2 0 3 0 +15 1 0 1 +3 1 0 2 +9 1 1 3 +9 2 2 1 +9 0 1 0 +15 3 3 0 +2 0 3 0 +15 0 2 2 +3 2 2 1 +9 3 2 2 +9 2 3 0 +9 3 3 3 +0 3 2 3 +2 3 3 3 +15 1 3 1 +9 1 0 3 +8 0 3 3 +2 3 2 3 +15 1 3 1 +3 1 2 0 +9 2 2 3 +9 1 2 1 +7 1 3 2 +2 2 3 2 +2 2 1 2 +15 0 2 0 +3 0 2 1 +9 3 0 0 +9 1 1 3 +9 0 3 2 +11 2 0 3 +2 3 2 3 +2 3 3 3 +15 3 1 1 +9 2 1 0 +9 2 2 3 +5 0 3 3 +2 3 3 3 +15 3 1 1 +3 1 0 2 +2 0 0 1 +12 1 3 1 +9 3 0 0 +9 1 1 3 +12 3 1 1 +2 1 2 1 +15 2 1 2 +3 2 3 1 +9 0 3 2 +9 2 0 0 +7 3 0 2 +2 2 1 2 +15 2 1 1 +3 1 0 0 +2 2 0 2 +12 2 0 2 +9 0 1 1 +2 3 2 3 +2 3 2 3 +15 0 3 0 +3 0 3 1 +9 2 1 2 +9 1 3 3 +9 1 3 0 +3 0 2 2 +2 2 2 2 +2 2 1 2 +15 2 1 1 +3 1 3 3 +9 3 3 2 +9 2 3 1 +2 3 0 0 +12 0 2 0 +11 0 2 2 +2 2 2 2 +15 3 2 3 +3 3 0 2 +2 3 0 3 +12 3 1 3 +9 0 2 1 +12 3 1 0 +2 0 3 0 +15 0 2 2 +9 2 1 3 +9 2 0 0 +5 0 3 1 +2 1 2 1 +15 1 2 2 +3 2 0 3 +9 1 0 0 +9 3 1 2 +9 3 1 1 +12 0 1 2 +2 2 2 2 +15 2 3 3 +3 3 0 1 +2 2 0 3 +12 3 2 3 +9 2 2 0 +9 3 3 2 +5 0 3 3 +2 3 1 3 +15 1 3 1 +9 3 1 0 +9 2 3 2 +9 0 0 3 +13 2 0 3 +2 3 1 3 +15 1 3 1 +3 1 3 0 +2 1 0 1 +12 1 2 1 +9 1 0 3 +2 0 0 2 +12 2 3 2 +13 1 2 3 +2 3 2 3 +2 3 3 3 +15 3 0 0 +3 0 1 1 +9 1 1 3 +9 0 1 2 +9 2 1 0 +8 0 3 2 +2 2 2 2 +15 1 2 1 +9 0 0 2 +9 3 1 0 +2 0 0 3 +12 3 0 3 +0 0 2 0 +2 0 1 0 +15 0 1 1 +3 1 2 0 +9 2 2 1 +9 3 1 3 +0 3 2 3 +2 3 1 3 +15 0 3 0 +3 0 2 2 +9 3 2 3 +2 0 0 1 +12 1 0 1 +9 1 2 0 +12 0 1 1 +2 1 3 1 +2 1 1 1 +15 2 1 2 +3 2 0 0 +9 2 3 2 +9 2 0 3 +9 0 0 1 +9 1 2 1 +2 1 2 1 +2 1 2 1 +15 1 0 0 +3 0 3 2 +9 3 2 0 +9 2 0 1 +1 0 1 0 +2 0 3 0 +15 0 2 2 +3 2 3 1 +2 1 0 2 +12 2 2 2 +2 3 0 0 +12 0 1 0 +2 0 0 3 +12 3 0 3 +6 3 2 3 +2 3 1 3 +2 3 3 3 +15 3 1 1 +3 1 1 2 +9 2 3 0 +9 2 2 3 +9 2 0 1 +5 0 3 0 +2 0 3 0 +15 0 2 2 +9 3 1 3 +9 3 2 0 +1 0 1 0 +2 0 1 0 +15 2 0 2 +3 2 2 1 +9 3 0 0 +2 1 0 2 +12 2 3 2 +9 2 3 3 +1 0 3 0 +2 0 1 0 +15 1 0 1 +3 1 1 3 +9 2 3 0 +9 0 0 1 +11 0 2 0 +2 0 2 0 +15 0 3 3 +3 3 3 0 +9 3 2 1 +9 2 3 2 +9 1 3 3 +10 2 1 1 +2 1 3 1 +2 1 3 1 +15 0 1 0 +3 0 0 1 +9 0 0 3 +9 3 3 0 +6 3 2 3 +2 3 3 3 +2 3 2 3 +15 1 3 1 +3 1 1 0 +2 3 0 3 +12 3 2 3 +2 0 0 2 +12 2 0 2 +2 1 0 1 +12 1 0 1 +14 2 3 1 +2 1 1 1 +15 0 1 0 +3 0 2 3 +9 2 2 0 +9 3 1 2 +2 1 0 1 +12 1 0 1 +11 0 2 1 +2 1 2 1 +15 1 3 3 +2 0 0 1 +12 1 0 1 +9 1 2 0 +2 0 2 0 +2 0 1 0 +15 0 3 3 +3 3 3 1 +2 0 0 2 +12 2 2 2 +9 2 3 0 +9 3 0 3 +1 3 0 0 +2 0 2 0 +15 0 1 1 +3 1 1 3 +9 1 0 1 +2 2 0 0 +12 0 2 0 +9 3 0 2 +13 0 2 1 +2 1 1 1 +2 1 3 1 +15 3 1 3 +3 3 0 1 +9 1 2 3 +9 1 2 2 +7 3 0 0 +2 0 3 0 +15 0 1 1 +9 0 2 2 +9 3 1 3 +9 1 0 0 +2 0 2 0 +2 0 1 0 +2 0 1 0 +15 0 1 1 +9 2 1 0 +1 3 0 2 +2 2 3 2 +15 2 1 1 +3 1 2 0 +2 2 0 1 +12 1 2 1 +9 1 2 2 +1 3 1 1 +2 1 3 1 +15 0 1 0 +3 0 3 1 +9 0 1 3 +9 3 2 2 +2 0 0 0 +12 0 2 0 +13 0 2 0 +2 0 1 0 +15 0 1 1 +3 1 2 3 +9 3 2 0 +9 2 3 1 +2 1 0 2 +12 2 1 2 +13 1 0 1 +2 1 3 1 +15 3 1 3 +3 3 0 1 +9 1 1 3 +9 3 1 2 +2 3 2 0 +2 0 1 0 +15 0 1 1 +9 2 1 2 +9 1 1 0 +9 0 0 3 +6 3 2 0 +2 0 1 0 +15 1 0 1 +3 1 1 0 +9 2 0 1 +2 0 0 2 +12 2 1 2 +9 3 2 2 +2 2 2 2 +15 2 0 0 +9 2 1 3 +9 1 1 1 +9 2 3 2 +4 2 3 2 +2 2 2 2 +15 0 2 0 +3 0 2 1 +9 0 1 2 +9 3 3 0 +9 3 0 3 +0 3 2 0 +2 0 2 0 +15 1 0 1 +9 1 2 2 +9 2 3 0 +9 2 3 3 +5 0 3 0 +2 0 1 0 +15 0 1 1 +3 1 0 2 +9 3 2 1 +2 2 0 3 +12 3 1 3 +9 2 0 0 +8 0 3 0 +2 0 2 0 +15 0 2 2 +3 2 1 0 +9 3 2 3 +9 1 3 1 +9 1 0 2 +9 2 3 2 +2 2 1 2 +2 2 1 2 +15 0 2 0 +3 0 1 3 +2 2 0 0 +12 0 2 0 +9 3 1 1 +9 0 0 2 +1 1 0 2 +2 2 2 2 +2 2 2 2 +15 2 3 3 +3 3 2 0 +2 2 0 3 +12 3 1 3 +9 0 2 2 +9 0 1 1 +15 3 3 3 +2 3 3 3 +15 0 3 0 +3 0 3 2 +9 3 3 0 +9 2 1 3 +2 3 0 1 +12 1 1 1 +1 0 3 0 +2 0 3 0 +2 0 2 0 +15 0 2 2 +9 2 3 1 +9 2 1 0 +5 0 3 1 +2 1 2 1 +15 1 2 2 +9 3 1 1 +9 3 1 3 +10 0 1 0 +2 0 2 0 +15 2 0 2 +3 2 3 3 +2 2 0 0 +12 0 3 0 +9 2 0 1 +9 1 2 2 +13 1 0 0 +2 0 3 0 +2 0 3 0 +15 0 3 3 +3 3 1 1 +2 0 0 0 +12 0 2 0 +9 3 3 2 +9 1 2 3 +13 0 2 3 +2 3 2 3 +15 1 3 1 +9 1 2 3 +9 0 0 0 +9 0 0 2 +15 3 3 2 +2 2 1 2 +15 2 1 1 +3 1 1 2 +9 2 2 3 +9 2 1 1 +9 2 3 0 +5 0 3 3 +2 3 2 3 +2 3 1 3 +15 2 3 2 +3 2 0 3 +2 0 0 2 +12 2 2 2 +2 1 0 0 +12 0 1 0 +3 0 2 1 +2 1 3 1 +15 1 3 3 +3 3 0 1 +9 1 3 3 +9 3 1 0 +13 2 0 3 +2 3 3 3 +15 3 1 1 +3 1 0 3 +9 1 2 0 +9 3 1 2 +9 3 1 1 +12 0 1 1 +2 1 1 1 +2 1 1 1 +15 1 3 3 +3 3 2 2 +9 2 2 3 +9 3 2 0 +9 2 0 1 +1 0 1 3 +2 3 1 3 +15 2 3 2 +9 0 2 3 +4 1 3 0 +2 0 3 0 +15 2 0 2 +3 2 0 0 +2 1 0 1 +12 1 1 1 +2 0 0 2 +12 2 3 2 +14 3 2 3 +2 3 3 3 +2 3 1 3 +15 0 3 0 +3 0 0 3 +9 0 0 2 +9 3 3 0 +11 2 0 2 +2 2 2 2 +15 2 3 3 +3 3 1 0 +9 2 3 3 +2 1 0 2 +12 2 2 2 +9 3 1 1 +10 2 1 2 +2 2 1 2 +15 2 0 0 +3 0 3 1 +9 2 3 0 +9 2 2 2 +5 0 3 2 +2 2 3 2 +15 1 2 1 +3 1 3 2 +2 1 0 1 +12 1 1 1 +9 1 2 3 +7 1 0 1 +2 1 3 1 +15 2 1 2 +9 3 0 1 +8 0 3 3 +2 3 1 3 +15 2 3 2 +3 2 2 1 +9 0 0 2 +9 3 3 3 +2 3 0 0 +12 0 3 0 +11 2 0 0 +2 0 2 0 +15 0 1 1 +9 2 0 2 +9 0 1 3 +9 2 2 0 +6 3 2 3 +2 3 2 3 +2 3 1 3 +15 3 1 1 +9 0 0 2 +9 2 1 3 +9 3 1 0 +1 0 3 3 +2 3 2 3 +2 3 3 3 +15 3 1 1 +2 2 0 0 +12 0 2 0 +2 3 0 3 +12 3 0 3 +9 2 1 2 +4 0 3 0 +2 0 1 0 +15 0 1 1 +2 1 0 0 +12 0 1 0 +2 2 0 2 +12 2 3 2 +2 1 0 3 +12 3 2 3 +15 0 0 3 +2 3 2 3 +2 3 1 3 +15 1 3 1 +3 1 3 2 +2 3 0 0 +12 0 2 0 +2 0 0 3 +12 3 1 3 +9 0 1 1 +7 3 0 1 +2 1 2 1 +2 1 1 1 +15 2 1 2 +3 2 0 0 +9 3 0 2 +9 0 3 1 +2 3 2 3 +2 3 3 3 +15 0 3 0 +3 0 3 1 +2 0 0 3 +12 3 2 3 +9 1 1 0 +9 0 0 2 +14 2 3 3 +2 3 2 3 +15 1 3 1 +9 3 3 0 +9 2 0 2 +9 3 0 3 +13 2 0 2 +2 2 3 2 +15 2 1 1 +3 1 0 3 +9 2 3 2 +9 1 0 1 +9 1 3 0 +3 0 2 0 +2 0 3 0 +2 0 2 0 +15 3 0 3 +9 0 3 2 +9 3 2 0 +2 1 2 0 +2 0 2 0 +15 0 3 3 +3 3 1 0 +9 1 3 3 +9 0 3 1 +9 1 0 2 +12 3 1 1 +2 1 2 1 +2 1 1 1 +15 0 1 0 +3 0 3 2 +9 2 2 1 +9 2 2 0 +8 0 3 1 +2 1 3 1 +2 1 2 1 +15 1 2 2 +3 2 2 0 +2 0 0 3 +12 3 0 3 +9 0 0 1 +9 3 1 2 +14 3 2 1 +2 1 3 1 +15 0 1 0 +3 0 2 2 +9 2 2 3 +9 3 1 1 +9 2 2 0 +1 1 0 0 +2 0 1 0 +15 2 0 2 +3 2 0 1 +9 1 2 3 +2 2 0 2 +12 2 1 2 +9 2 2 0 +8 0 3 0 +2 0 2 0 +2 0 3 0 +15 0 1 1 +3 1 0 0 +9 2 3 1 +9 3 1 2 +2 3 2 2 +2 2 1 2 +15 0 2 0 +3 0 2 2 +9 3 2 1 +2 0 0 0 +12 0 0 0 +9 3 0 0 +2 0 1 0 +15 0 2 2 +2 3 0 0 +12 0 1 0 +2 3 0 3 +12 3 2 3 +12 0 1 0 +2 0 3 0 +15 2 0 2 +3 2 3 1 +9 3 2 0 +9 2 1 2 +9 0 1 3 +10 2 0 3 +2 3 1 3 +15 3 1 1 +3 1 3 0 +9 3 2 1 +9 1 2 3 +12 3 1 3 +2 3 1 3 +15 0 3 0 +3 0 0 1 +9 2 0 0 +9 2 0 3 +5 0 3 3 +2 3 1 3 +15 1 3 1 +3 1 2 2 +9 0 1 1 +9 1 0 0 +9 2 0 3 +15 0 0 0 +2 0 1 0 +15 2 0 2 +3 2 1 1 +2 1 0 2 +12 2 3 2 +9 2 2 0 +5 0 3 2 +2 2 2 2 +15 1 2 1 +3 1 2 0 +9 3 3 1 +2 2 0 3 +12 3 0 3 +9 3 0 2 +14 3 2 2 +2 2 3 2 +15 2 0 0 +3 0 3 1 +9 0 2 0 +9 1 0 2 +9 2 0 3 +2 3 2 3 +2 3 1 3 +15 1 3 1 +3 1 1 3 +9 3 1 1 +9 2 0 0 +9 3 0 2 +13 0 2 0 +2 0 1 0 +15 0 3 3 +3 3 3 2 +9 1 0 0 +9 2 1 3 +7 0 3 0 +2 0 1 0 +2 0 1 0 +15 0 2 2 +3 2 0 0 +9 0 2 3 +9 2 2 2 +6 3 2 2 +2 2 1 2 +15 0 2 0 +3 0 1 1 +9 3 1 0 +2 1 0 2 +12 2 1 2 +9 3 0 3 +9 2 3 0 +2 0 3 0 +15 0 1 1 +3 1 3 3 +9 3 1 0 +9 3 3 2 +9 3 1 1 +0 1 2 2 +2 2 2 2 +15 3 2 3 +3 3 2 1 +9 2 0 2 +9 2 1 3 +1 0 3 0 +2 0 3 0 +15 0 1 1 +3 1 2 2 +9 2 0 1 +2 1 0 0 +12 0 1 0 +7 0 3 0 +2 0 1 0 +15 0 2 2 +3 2 0 1 +9 2 2 0 +9 3 1 2 +2 3 0 3 +12 3 1 3 +7 3 0 0 +2 0 1 0 +15 1 0 1 +9 3 2 0 +9 1 2 2 +0 0 2 2 +2 2 3 2 +15 2 1 1 +3 1 0 3 +9 0 1 2 +2 1 0 1 +12 1 0 1 +0 0 2 0 +2 0 3 0 +15 3 0 3 +3 3 0 0 +9 2 1 1 +9 3 0 2 +9 2 2 3 +4 1 3 2 +2 2 1 2 +2 2 1 2 +15 2 0 0 diff --git a/inputs/input16_test1 b/inputs/input16_test1 new file mode 100644 index 0000000..faa80a1 --- /dev/null +++ b/inputs/input16_test1 @@ -0,0 +1,3 @@ +Before: [3, 2, 1, 1] +9 2 1 2 +After: [3, 2, 2, 1]