diff --git a/AdventOfCode.sln.DotSettings b/AdventOfCode.sln.DotSettings
index 3da65b2..9bcab71 100644
--- a/AdventOfCode.sln.DotSettings
+++ b/AdventOfCode.sln.DotSettings
@@ -7,4 +7,5 @@
<Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
True
True
- True
\ No newline at end of file
+ True
+ True
\ No newline at end of file
diff --git a/AdventOfCode2018.Tests/Day16_Tests.cs b/AdventOfCode2018.Tests/Day16_Tests.cs
new file mode 100644
index 0000000..70e89ca
--- /dev/null
+++ b/AdventOfCode2018.Tests/Day16_Tests.cs
@@ -0,0 +1,25 @@
+namespace AdventOfCode2018.Tests;
+
+public class Day16_Tests
+{
+ [Fact]
+ public void ResolvePart1__Test1()
+ {
+ Day16 day = new();
+
+ string result = day.ResolvePart1(new[] {
+ "Before: [3, 2, 1, 1]",
+ "9 2 1 2",
+ "After: [3, 2, 2, 1]",
+ "",
+ "Before: [3, 2, 1, 1]",
+ "9 2 1 2",
+ "After: [3, 2, 2, 1]",
+ "",
+ "",
+ "Garbage",
+ });
+
+ Assert.Equal("2", result);
+ }
+}
\ No newline at end of file
diff --git a/AdventOfCode2018/Day16.cs b/AdventOfCode2018/Day16.cs
new file mode 100644
index 0000000..0fbd800
--- /dev/null
+++ b/AdventOfCode2018/Day16.cs
@@ -0,0 +1,279 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace AdventOfCode2018;
+
+/*
+--- Day 16: Chronal Classification ---
+
+As you see the Elves defend their hot chocolate successfully, you go back to falling through time. This is going to become a problem.
+
+If you're ever going to return to your own time, you need to understand how this device on your wrist works. You have a little while before you reach your next destination, and with a bit of trial and error, you manage to pull up a programming manual on the device's tiny screen.
+
+According to the manual, the device has four registers (numbered 0 through 3) that can be manipulated by instructions containing one of 16 opcodes. The registers start with the value 0.
+
+Every instruction consists of four values: an opcode, two inputs (named A and B), and an output (named C), in that order. The opcode specifies the behavior of the instruction and how the inputs are interpreted. The output, C, is always treated as a register.
+
+In the opcode descriptions below, if something says "value A", it means to take the number given as A literally. (This is also called an "immediate" value.) If something says "register A", it means to use the number given as A to read from (or write to) the register with that number. So, if the opcode addi adds register A and value B, storing the result in register C, and the instruction addi 0 7 3 is encountered, it would add 7 to the value contained by register 0 and store the sum in register 3, never modifying registers 0, 1, or 2 in the process.
+
+Many opcodes are similar except for how they interpret their arguments. The opcodes fall into seven general categories:
+
+Addition:
+
+ addr (add register) stores into register C the result of adding register A and register B.
+ addi (add immediate) stores into register C the result of adding register A and value B.
+
+Multiplication:
+
+ mulr (multiply register) stores into register C the result of multiplying register A and register B.
+ muli (multiply immediate) stores into register C the result of multiplying register A and value B.
+
+Bitwise AND:
+
+ banr (bitwise AND register) stores into register C the result of the bitwise AND of register A and register B.
+ bani (bitwise AND immediate) stores into register C the result of the bitwise AND of register A and value B.
+
+Bitwise OR:
+
+ borr (bitwise OR register) stores into register C the result of the bitwise OR of register A and register B.
+ bori (bitwise OR immediate) stores into register C the result of the bitwise OR of register A and value B.
+
+Assignment:
+
+ setr (set register) copies the contents of register A into register C. (Input B is ignored.)
+ seti (set immediate) stores value A into register C. (Input B is ignored.)
+
+Greater-than testing:
+
+ gtir (greater-than immediate/register) sets register C to 1 if value A is greater than register B. Otherwise, register C is set to 0.
+ gtri (greater-than register/immediate) sets register C to 1 if register A is greater than value B. Otherwise, register C is set to 0.
+ gtrr (greater-than register/register) sets register C to 1 if register A is greater than register B. Otherwise, register C is set to 0.
+
+Equality testing:
+
+ eqir (equal immediate/register) sets register C to 1 if value A is equal to register B. Otherwise, register C is set to 0.
+ eqri (equal register/immediate) sets register C to 1 if register A is equal to value B. Otherwise, register C is set to 0.
+ eqrr (equal register/register) sets register C to 1 if register A is equal to register B. Otherwise, register C is set to 0.
+
+Unfortunately, while the manual gives the name of each opcode, it doesn't seem to indicate the number. However, you can monitor the CPU to see the contents of the registers before and after instructions are executed to try to work them out. Each opcode has a number from 0 through 15, but the manual doesn't say which is which. For example, suppose you capture the following sample:
+
+Before: [3, 2, 1, 1]
+9 2 1 2
+After: [3, 2, 2, 1]
+
+This sample shows the effect of the instruction 9 2 1 2 on the registers. Before the instruction is executed, register 0 has value 3, register 1 has value 2, and registers 2 and 3 have value 1. After the instruction is executed, register 2's value becomes 2.
+
+The instruction itself, 9 2 1 2, means that opcode 9 was executed with A=2, B=1, and C=2. Opcode 9 could be any of the 16 opcodes listed above, but only three of them behave in a way that would cause the result shown in the sample:
+
+ Opcode 9 could be mulr: register 2 (which has a value of 1) times register 1 (which has a value of 2) produces 2, which matches the value stored in the output register, register 2.
+ Opcode 9 could be addi: register 2 (which has a value of 1) plus value 1 produces 2, which matches the value stored in the output register, register 2.
+ Opcode 9 could be seti: value 2 matches the value stored in the output register, register 2; the number given for B is irrelevant.
+
+None of the other opcodes produce the result captured in the sample. Because of this, the sample above behaves like three opcodes.
+
+You collect many of these samples (the first section of your puzzle input). The manual also includes a small test program (the second section of your puzzle input) - you can ignore it for now.
+
+Ignoring the opcode numbers, how many samples in your puzzle input behave like three or more opcodes?
+
+*/
+
+public class Day16 : IDay
+{
+ public string ResolvePart1(string[] inputs)
+ {
+ int count = 0;
+ int i = 0;
+ ChronoMachine machine = new();
+ bool end = false;
+ int[] beforeRegisters = null;
+ int[] afterRegisters;
+ int[] instruction = null;
+ const string beforeKeyword = "Before: [";
+ const string afterKeyword = "After: [";
+ while (inputs.Length > i)
+ {
+ if (string.IsNullOrEmpty(inputs[i]))
+ {
+ if (end) { break; }
+ end = true;
+ i++;
+ }
+ else if (inputs[i].StartsWith(beforeKeyword))
+ {
+ end = false;
+ string strBeforeRegisters = inputs[i].Substring(beforeKeyword.Length, inputs[i].Length - (1 + beforeKeyword.Length));
+ beforeRegisters = strBeforeRegisters.Split(", ").Select(s => Convert.ToInt32(s)).ToArray();
+ i++;
+ }
+ else if (inputs[i].StartsWith(afterKeyword))
+ {
+ end = false;
+ string strBeforeRegisters = inputs[i].Substring(afterKeyword.Length, inputs[i].Length - (1 + afterKeyword.Length));
+ afterRegisters = strBeforeRegisters.Split(", ").Select(s => Convert.ToInt32(s)).ToArray();
+ i++;
+
+ if (instruction == null || beforeRegisters == null) { continue; }
+
+ if (machine.MutationCheck(instruction[1], instruction[2], instruction[3], beforeRegisters, afterRegisters) >= 3)
+ {
+ count++;
+ }
+ }
+ else
+ {
+ end = false;
+ instruction = inputs[i].Split(" ").Where(s => string.IsNullOrEmpty(s) == false).Select(s => Convert.ToInt32(s)).ToArray();
+ i++;
+ }
+
+ }
+ return count.ToString();
+ }
+
+ public string ResolvePart2(string[] inputs)
+ {
+ throw new NotImplementedException();
+ }
+
+ public class ChronoMachine
+ {
+ private int[] _registers;
+
+ private List<(string OpCode, Action OpFunc)> _instructions;
+
+
+
+ public ChronoMachine()
+ {
+ _registers = new int[4];
+ _instructions = new List<(string OpCode, Action OpFunc)> {
+ ("addr", Op_AddR),
+ ("addi", Op_AddI),
+ ("mulr", Op_MulR),
+ ("muli", Op_MulI),
+ ("banr", Op_BAnR),
+ ("bani", Op_BAnI),
+ ("borr", Op_BOrR),
+ ("bori", Op_BOrI),
+ ("setr", Op_SetR),
+ ("seti", Op_SetI),
+ ("gtir", Op_GTIR),
+ ("gtri", Op_GTRI),
+ ("gtrr", Op_GTRR),
+ ("eqir", Op_EqIR),
+ ("eqri", Op_EqRI),
+ ("eqrr", Op_EqRR),
+ };
+ }
+
+ private void SetRegisters(int[] registers)
+ {
+ for (int i = 0; i < 4; i++)
+ {
+ _registers[i] = registers[i];
+ }
+ }
+
+ private bool CheckRegisters(int[] registers)
+ {
+ for (int i = 0; i < 4; i++)
+ {
+ if (registers[i] != _registers[i]) { return false; }
+ }
+ return true;
+ }
+
+ private void Op_AddR(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] + _registers[b];
+ }
+
+ private void Op_AddI(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] + b;
+ }
+
+ private void Op_MulR(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] * _registers[b];
+ }
+
+ private void Op_MulI(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] * b;
+ }
+
+ private void Op_BAnR(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] & _registers[b];
+ }
+
+ private void Op_BAnI(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] & b;
+ }
+
+ private void Op_BOrR(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] | _registers[b];
+ }
+
+ private void Op_BOrI(int a, int b, int c)
+ {
+ _registers[c] = _registers[a] | b;
+ }
+
+ private void Op_SetR(int a, int b, int c)
+ {
+ _registers[c] = _registers[a];
+ }
+
+ private void Op_SetI(int a, int b, int c)
+ {
+ _registers[c] = a;
+ }
+
+ private void Op_GTIR(int a, int b, int c)
+ {
+ _registers[c] = (a > _registers[b]) ? 1 : 0;
+ }
+
+ private void Op_GTRI(int a, int b, int c)
+ {
+ _registers[c] = (_registers[a] > b) ? 1 : 0;
+ }
+
+ private void Op_GTRR(int a, int b, int c)
+ {
+ _registers[c] = (_registers[a] > _registers[b]) ? 1 : 0;
+ }
+
+ private void Op_EqIR(int a, int b, int c)
+ {
+ _registers[c] = (a == _registers[b]) ? 1 : 0;
+ }
+
+ private void Op_EqRI(int a, int b, int c)
+ {
+ _registers[c] = (_registers[a] == b) ? 1 : 0;
+ }
+
+ private void Op_EqRR(int a, int b, int c)
+ {
+ _registers[c] = (_registers[a] == _registers[b]) ? 1 : 0;
+ }
+
+ public int MutationCheck(int a, int b, int c, int[] initialRegisters, int[] finalRegisters)
+ {
+ int count = 0;
+ foreach ((string _, Action OpFunc) in _instructions)
+ {
+ SetRegisters(initialRegisters);
+ OpFunc(a, b, c);
+ if (CheckRegisters(finalRegisters)) { count++; }
+ }
+ return count;
+ }
+ }
+}
\ No newline at end of file
diff --git a/AdventOfCode2018/Program.cs b/AdventOfCode2018/Program.cs
index ff6d91b..becddc8 100644
--- a/AdventOfCode2018/Program.cs
+++ b/AdventOfCode2018/Program.cs
@@ -1,3 +1,3 @@
global using AdventOfCode.Common;
-DayHelper.RunDay("AdventOfCode2018", 2);
\ No newline at end of file
+DayHelper.RunDay("AdventOfCode2018", 16);
\ No newline at end of file
diff --git a/AdventOfCode2018/inputs/Day16.txt b/AdventOfCode2018/inputs/Day16.txt
new file mode 100644
index 0000000..f4ae971
--- /dev/null
+++ b/AdventOfCode2018/inputs/Day16.txt
@@ -0,0 +1,3938 @@
+Before: [3, 0, 0, 1]
+0 3 0 2
+After: [3, 0, 1, 1]
+
+Before: [2, 0, 0, 2]
+4 0 3 1
+After: [2, 1, 0, 2]
+
+Before: [0, 1, 1, 1]
+14 0 0 2
+After: [0, 1, 0, 1]
+
+Before: [3, 0, 1, 1]
+11 0 0 3
+After: [3, 0, 1, 1]
+
+Before: [1, 2, 2, 0]
+9 0 2 1
+After: [1, 0, 2, 0]
+
+Before: [0, 2, 3, 3]
+11 2 2 3
+After: [0, 2, 3, 1]
+
+Before: [2, 0, 1, 2]
+4 0 3 2
+After: [2, 0, 1, 2]
+
+Before: [2, 0, 2, 2]
+6 3 3 3
+After: [2, 0, 2, 0]
+
+Before: [0, 1, 2, 2]
+1 1 2 3
+After: [0, 1, 2, 0]
+
+Before: [0, 3, 0, 0]
+14 0 0 0
+After: [0, 3, 0, 0]
+
+Before: [2, 2, 0, 2]
+4 0 3 3
+After: [2, 2, 0, 1]
+
+Before: [2, 3, 2, 1]
+13 2 2 0
+After: [1, 3, 2, 1]
+
+Before: [2, 1, 1, 2]
+4 0 3 1
+After: [2, 1, 1, 2]
+
+Before: [1, 2, 2, 1]
+9 0 2 0
+After: [0, 2, 2, 1]
+
+Before: [2, 2, 0, 2]
+4 0 3 1
+After: [2, 1, 0, 2]
+
+Before: [1, 0, 2, 3]
+9 0 2 1
+After: [1, 0, 2, 3]
+
+Before: [1, 1, 3, 2]
+10 1 3 1
+After: [1, 0, 3, 2]
+
+Before: [0, 2, 1, 3]
+14 0 0 1
+After: [0, 0, 1, 3]
+
+Before: [2, 1, 2, 1]
+11 0 0 1
+After: [2, 1, 2, 1]
+
+Before: [1, 1, 2, 2]
+3 2 3 1
+After: [1, 2, 2, 2]
+
+Before: [3, 0, 2, 3]
+8 1 0 1
+After: [3, 0, 2, 3]
+
+Before: [1, 3, 2, 2]
+9 0 2 2
+After: [1, 3, 0, 2]
+
+Before: [2, 0, 3, 2]
+4 0 3 2
+After: [2, 0, 1, 2]
+
+Before: [2, 1, 1, 2]
+10 1 3 1
+After: [2, 0, 1, 2]
+
+Before: [2, 1, 2, 3]
+1 1 2 2
+After: [2, 1, 0, 3]
+
+Before: [3, 1, 2, 1]
+1 1 2 3
+After: [3, 1, 2, 0]
+
+Before: [2, 2, 2, 3]
+5 2 2 1
+After: [2, 2, 2, 3]
+
+Before: [2, 0, 2, 2]
+4 0 3 2
+After: [2, 0, 1, 2]
+
+Before: [2, 3, 1, 1]
+11 0 0 0
+After: [1, 3, 1, 1]
+
+Before: [2, 3, 2, 2]
+4 0 3 1
+After: [2, 1, 2, 2]
+
+Before: [3, 1, 3, 0]
+0 1 0 1
+After: [3, 1, 3, 0]
+
+Before: [3, 1, 2, 3]
+12 3 0 3
+After: [3, 1, 2, 1]
+
+Before: [1, 0, 3, 1]
+6 3 3 1
+After: [1, 0, 3, 1]
+
+Before: [0, 1, 2, 3]
+1 1 2 3
+After: [0, 1, 2, 0]
+
+Before: [1, 2, 1, 3]
+2 1 3 1
+After: [1, 0, 1, 3]
+
+Before: [1, 2, 2, 3]
+9 0 2 2
+After: [1, 2, 0, 3]
+
+Before: [3, 3, 3, 2]
+11 0 2 1
+After: [3, 1, 3, 2]
+
+Before: [2, 1, 0, 2]
+10 1 3 3
+After: [2, 1, 0, 0]
+
+Before: [3, 3, 3, 3]
+5 3 3 0
+After: [3, 3, 3, 3]
+
+Before: [0, 3, 2, 0]
+13 0 0 0
+After: [1, 3, 2, 0]
+
+Before: [3, 0, 2, 2]
+3 2 3 3
+After: [3, 0, 2, 2]
+
+Before: [1, 3, 2, 1]
+9 0 2 1
+After: [1, 0, 2, 1]
+
+Before: [1, 1, 2, 3]
+1 1 2 0
+After: [0, 1, 2, 3]
+
+Before: [1, 1, 0, 2]
+15 1 0 1
+After: [1, 1, 0, 2]
+
+Before: [0, 1, 1, 3]
+2 2 3 3
+After: [0, 1, 1, 0]
+
+Before: [3, 1, 3, 3]
+0 3 0 3
+After: [3, 1, 3, 3]
+
+Before: [0, 0, 3, 3]
+14 0 0 3
+After: [0, 0, 3, 0]
+
+Before: [2, 1, 2, 2]
+1 1 2 2
+After: [2, 1, 0, 2]
+
+Before: [2, 1, 0, 2]
+4 0 3 0
+After: [1, 1, 0, 2]
+
+Before: [2, 1, 2, 1]
+7 3 2 0
+After: [1, 1, 2, 1]
+
+Before: [3, 1, 2, 2]
+10 1 3 2
+After: [3, 1, 0, 2]
+
+Before: [3, 1, 1, 3]
+0 1 0 2
+After: [3, 1, 1, 3]
+
+Before: [3, 0, 2, 1]
+7 3 2 0
+After: [1, 0, 2, 1]
+
+Before: [2, 2, 0, 2]
+4 0 3 0
+After: [1, 2, 0, 2]
+
+Before: [0, 3, 3, 3]
+13 3 3 0
+After: [1, 3, 3, 3]
+
+Before: [2, 1, 2, 3]
+5 3 3 3
+After: [2, 1, 2, 3]
+
+Before: [1, 1, 2, 1]
+7 3 2 0
+After: [1, 1, 2, 1]
+
+Before: [3, 0, 1, 3]
+2 2 3 2
+After: [3, 0, 0, 3]
+
+Before: [0, 2, 2, 1]
+14 0 0 2
+After: [0, 2, 0, 1]
+
+Before: [0, 3, 3, 1]
+14 0 0 2
+After: [0, 3, 0, 1]
+
+Before: [0, 1, 2, 2]
+3 2 3 0
+After: [2, 1, 2, 2]
+
+Before: [0, 3, 2, 0]
+14 0 0 1
+After: [0, 0, 2, 0]
+
+Before: [0, 1, 2, 2]
+10 1 3 0
+After: [0, 1, 2, 2]
+
+Before: [1, 3, 2, 1]
+7 3 2 1
+After: [1, 1, 2, 1]
+
+Before: [1, 0, 2, 3]
+9 0 2 3
+After: [1, 0, 2, 0]
+
+Before: [0, 3, 2, 2]
+6 3 3 0
+After: [0, 3, 2, 2]
+
+Before: [0, 0, 0, 3]
+13 3 3 0
+After: [1, 0, 0, 3]
+
+Before: [2, 0, 2, 2]
+3 2 3 0
+After: [2, 0, 2, 2]
+
+Before: [0, 0, 2, 2]
+3 2 3 3
+After: [0, 0, 2, 2]
+
+Before: [2, 2, 2, 1]
+7 3 2 0
+After: [1, 2, 2, 1]
+
+Before: [3, 3, 1, 3]
+0 3 0 2
+After: [3, 3, 3, 3]
+
+Before: [1, 1, 1, 1]
+15 1 0 3
+After: [1, 1, 1, 1]
+
+Before: [1, 2, 2, 0]
+9 0 2 3
+After: [1, 2, 2, 0]
+
+Before: [2, 2, 2, 1]
+12 2 0 2
+After: [2, 2, 1, 1]
+
+Before: [2, 1, 2, 2]
+1 1 2 0
+After: [0, 1, 2, 2]
+
+Before: [1, 0, 2, 2]
+5 2 2 2
+After: [1, 0, 2, 2]
+
+Before: [0, 0, 2, 2]
+3 2 3 1
+After: [0, 2, 2, 2]
+
+Before: [0, 1, 0, 2]
+10 1 3 1
+After: [0, 0, 0, 2]
+
+Before: [3, 1, 1, 3]
+2 2 3 1
+After: [3, 0, 1, 3]
+
+Before: [0, 2, 1, 0]
+8 0 1 3
+After: [0, 2, 1, 0]
+
+Before: [1, 1, 3, 3]
+2 1 3 0
+After: [0, 1, 3, 3]
+
+Before: [0, 0, 2, 2]
+14 0 0 0
+After: [0, 0, 2, 2]
+
+Before: [1, 2, 2, 3]
+9 0 2 3
+After: [1, 2, 2, 0]
+
+Before: [2, 2, 1, 3]
+5 3 3 1
+After: [2, 3, 1, 3]
+
+Before: [2, 2, 2, 2]
+4 0 3 0
+After: [1, 2, 2, 2]
+
+Before: [0, 0, 3, 0]
+14 0 0 3
+After: [0, 0, 3, 0]
+
+Before: [3, 2, 2, 0]
+12 2 1 1
+After: [3, 1, 2, 0]
+
+Before: [2, 1, 1, 2]
+4 0 3 2
+After: [2, 1, 1, 2]
+
+Before: [3, 2, 2, 3]
+5 3 3 3
+After: [3, 2, 2, 3]
+
+Before: [3, 2, 2, 2]
+3 2 3 0
+After: [2, 2, 2, 2]
+
+Before: [0, 0, 0, 1]
+6 3 3 0
+After: [0, 0, 0, 1]
+
+Before: [1, 1, 0, 0]
+15 1 0 1
+After: [1, 1, 0, 0]
+
+Before: [0, 0, 1, 1]
+14 0 0 2
+After: [0, 0, 0, 1]
+
+Before: [1, 3, 0, 3]
+13 3 3 1
+After: [1, 1, 0, 3]
+
+Before: [1, 1, 3, 1]
+15 1 0 3
+After: [1, 1, 3, 1]
+
+Before: [1, 1, 2, 1]
+5 2 2 2
+After: [1, 1, 2, 1]
+
+Before: [3, 2, 2, 1]
+7 3 2 1
+After: [3, 1, 2, 1]
+
+Before: [1, 1, 2, 0]
+15 1 0 2
+After: [1, 1, 1, 0]
+
+Before: [0, 0, 3, 0]
+11 2 2 0
+After: [1, 0, 3, 0]
+
+Before: [0, 2, 2, 3]
+12 2 1 2
+After: [0, 2, 1, 3]
+
+Before: [0, 0, 3, 2]
+14 0 0 3
+After: [0, 0, 3, 0]
+
+Before: [1, 3, 2, 3]
+13 2 2 2
+After: [1, 3, 1, 3]
+
+Before: [1, 1, 2, 1]
+7 3 2 3
+After: [1, 1, 2, 1]
+
+Before: [0, 1, 3, 0]
+8 0 1 1
+After: [0, 0, 3, 0]
+
+Before: [1, 0, 2, 2]
+9 0 2 0
+After: [0, 0, 2, 2]
+
+Before: [0, 1, 0, 3]
+8 0 1 3
+After: [0, 1, 0, 0]
+
+Before: [0, 2, 1, 3]
+2 1 3 3
+After: [0, 2, 1, 0]
+
+Before: [2, 3, 2, 3]
+11 0 0 0
+After: [1, 3, 2, 3]
+
+Before: [0, 0, 2, 1]
+6 3 3 3
+After: [0, 0, 2, 0]
+
+Before: [2, 2, 3, 2]
+11 0 0 0
+After: [1, 2, 3, 2]
+
+Before: [3, 1, 2, 1]
+7 3 2 1
+After: [3, 1, 2, 1]
+
+Before: [0, 2, 2, 1]
+7 3 2 1
+After: [0, 1, 2, 1]
+
+Before: [0, 1, 0, 3]
+14 0 0 1
+After: [0, 0, 0, 3]
+
+Before: [1, 1, 2, 1]
+9 0 2 3
+After: [1, 1, 2, 0]
+
+Before: [0, 3, 3, 3]
+8 0 1 3
+After: [0, 3, 3, 0]
+
+Before: [0, 3, 0, 3]
+13 3 3 3
+After: [0, 3, 0, 1]
+
+Before: [0, 2, 2, 3]
+8 0 3 0
+After: [0, 2, 2, 3]
+
+Before: [2, 3, 2, 1]
+12 2 0 0
+After: [1, 3, 2, 1]
+
+Before: [0, 3, 3, 0]
+8 0 1 0
+After: [0, 3, 3, 0]
+
+Before: [1, 1, 1, 2]
+10 1 3 3
+After: [1, 1, 1, 0]
+
+Before: [0, 3, 1, 1]
+8 0 3 0
+After: [0, 3, 1, 1]
+
+Before: [2, 1, 3, 3]
+2 1 3 0
+After: [0, 1, 3, 3]
+
+Before: [1, 1, 2, 3]
+1 1 2 2
+After: [1, 1, 0, 3]
+
+Before: [3, 3, 2, 3]
+2 2 3 3
+After: [3, 3, 2, 0]
+
+Before: [0, 1, 1, 3]
+13 3 2 0
+After: [0, 1, 1, 3]
+
+Before: [0, 2, 0, 2]
+13 0 0 1
+After: [0, 1, 0, 2]
+
+Before: [3, 1, 2, 3]
+1 1 2 0
+After: [0, 1, 2, 3]
+
+Before: [0, 3, 3, 3]
+11 2 2 1
+After: [0, 1, 3, 3]
+
+Before: [0, 2, 3, 2]
+8 0 2 3
+After: [0, 2, 3, 0]
+
+Before: [3, 1, 1, 0]
+0 1 0 0
+After: [1, 1, 1, 0]
+
+Before: [2, 1, 2, 1]
+0 2 0 3
+After: [2, 1, 2, 2]
+
+Before: [0, 1, 2, 3]
+13 3 3 1
+After: [0, 1, 2, 3]
+
+Before: [1, 0, 2, 0]
+9 0 2 3
+After: [1, 0, 2, 0]
+
+Before: [3, 1, 2, 0]
+11 0 0 0
+After: [1, 1, 2, 0]
+
+Before: [0, 2, 1, 0]
+14 0 0 1
+After: [0, 0, 1, 0]
+
+Before: [2, 1, 3, 2]
+4 0 3 3
+After: [2, 1, 3, 1]
+
+Before: [0, 2, 2, 3]
+2 1 3 0
+After: [0, 2, 2, 3]
+
+Before: [2, 3, 3, 1]
+11 2 2 1
+After: [2, 1, 3, 1]
+
+Before: [0, 2, 2, 1]
+12 2 1 2
+After: [0, 2, 1, 1]
+
+Before: [2, 3, 2, 2]
+3 2 3 2
+After: [2, 3, 2, 2]
+
+Before: [2, 3, 3, 2]
+4 0 3 0
+After: [1, 3, 3, 2]
+
+Before: [3, 1, 3, 3]
+0 3 0 0
+After: [3, 1, 3, 3]
+
+Before: [0, 2, 1, 3]
+8 0 3 2
+After: [0, 2, 0, 3]
+
+Before: [2, 1, 2, 2]
+3 2 3 3
+After: [2, 1, 2, 2]
+
+Before: [2, 2, 2, 2]
+12 2 1 1
+After: [2, 1, 2, 2]
+
+Before: [2, 1, 2, 2]
+3 2 3 1
+After: [2, 2, 2, 2]
+
+Before: [3, 0, 3, 3]
+0 3 0 2
+After: [3, 0, 3, 3]
+
+Before: [1, 0, 3, 0]
+11 2 2 3
+After: [1, 0, 3, 1]
+
+Before: [0, 2, 2, 0]
+12 2 1 1
+After: [0, 1, 2, 0]
+
+Before: [1, 1, 0, 0]
+15 1 0 2
+After: [1, 1, 1, 0]
+
+Before: [2, 1, 0, 2]
+4 0 3 1
+After: [2, 1, 0, 2]
+
+Before: [1, 2, 2, 3]
+2 2 3 2
+After: [1, 2, 0, 3]
+
+Before: [3, 1, 2, 3]
+2 1 3 1
+After: [3, 0, 2, 3]
+
+Before: [1, 1, 1, 3]
+15 1 0 2
+After: [1, 1, 1, 3]
+
+Before: [1, 2, 3, 0]
+11 2 2 3
+After: [1, 2, 3, 1]
+
+Before: [1, 1, 0, 2]
+15 1 0 2
+After: [1, 1, 1, 2]
+
+Before: [3, 1, 3, 2]
+10 1 3 3
+After: [3, 1, 3, 0]
+
+Before: [1, 1, 2, 2]
+3 2 3 0
+After: [2, 1, 2, 2]
+
+Before: [2, 1, 2, 1]
+1 1 2 1
+After: [2, 0, 2, 1]
+
+Before: [3, 1, 3, 1]
+0 1 0 2
+After: [3, 1, 1, 1]
+
+Before: [3, 1, 1, 2]
+0 1 0 2
+After: [3, 1, 1, 2]
+
+Before: [1, 3, 3, 1]
+12 2 3 2
+After: [1, 3, 0, 1]
+
+Before: [3, 1, 1, 2]
+10 1 3 3
+After: [3, 1, 1, 0]
+
+Before: [1, 1, 1, 2]
+10 1 3 0
+After: [0, 1, 1, 2]
+
+Before: [0, 1, 0, 2]
+8 0 3 3
+After: [0, 1, 0, 0]
+
+Before: [3, 0, 0, 3]
+5 3 3 1
+After: [3, 3, 0, 3]
+
+Before: [1, 1, 2, 2]
+1 1 2 1
+After: [1, 0, 2, 2]
+
+Before: [0, 0, 1, 1]
+6 3 3 3
+After: [0, 0, 1, 0]
+
+Before: [1, 2, 2, 2]
+6 3 3 3
+After: [1, 2, 2, 0]
+
+Before: [2, 3, 2, 1]
+7 3 2 3
+After: [2, 3, 2, 1]
+
+Before: [3, 3, 1, 1]
+11 0 0 0
+After: [1, 3, 1, 1]
+
+Before: [3, 0, 2, 1]
+7 3 2 2
+After: [3, 0, 1, 1]
+
+Before: [2, 0, 3, 2]
+4 0 3 1
+After: [2, 1, 3, 2]
+
+Before: [2, 3, 2, 1]
+5 2 2 1
+After: [2, 2, 2, 1]
+
+Before: [1, 1, 0, 2]
+10 1 3 3
+After: [1, 1, 0, 0]
+
+Before: [0, 3, 1, 3]
+8 0 2 1
+After: [0, 0, 1, 3]
+
+Before: [2, 0, 1, 2]
+4 0 3 1
+After: [2, 1, 1, 2]
+
+Before: [1, 3, 3, 3]
+5 3 3 0
+After: [3, 3, 3, 3]
+
+Before: [2, 2, 2, 2]
+4 0 3 3
+After: [2, 2, 2, 1]
+
+Before: [3, 1, 2, 0]
+1 1 2 1
+After: [3, 0, 2, 0]
+
+Before: [1, 3, 3, 1]
+6 3 3 3
+After: [1, 3, 3, 0]
+
+Before: [1, 1, 3, 1]
+15 1 0 2
+After: [1, 1, 1, 1]
+
+Before: [1, 1, 1, 1]
+15 1 0 1
+After: [1, 1, 1, 1]
+
+Before: [1, 3, 2, 3]
+5 3 3 0
+After: [3, 3, 2, 3]
+
+Before: [2, 0, 2, 1]
+7 3 2 2
+After: [2, 0, 1, 1]
+
+Before: [0, 1, 1, 2]
+10 1 3 2
+After: [0, 1, 0, 2]
+
+Before: [0, 2, 1, 3]
+2 2 3 2
+After: [0, 2, 0, 3]
+
+Before: [1, 1, 2, 0]
+1 1 2 2
+After: [1, 1, 0, 0]
+
+Before: [1, 0, 1, 3]
+2 2 3 2
+After: [1, 0, 0, 3]
+
+Before: [3, 1, 0, 3]
+0 3 0 3
+After: [3, 1, 0, 3]
+
+Before: [0, 2, 0, 1]
+8 0 3 0
+After: [0, 2, 0, 1]
+
+Before: [3, 1, 1, 0]
+11 0 0 1
+After: [3, 1, 1, 0]
+
+Before: [1, 2, 2, 2]
+6 3 3 1
+After: [1, 0, 2, 2]
+
+Before: [1, 2, 1, 3]
+2 2 3 3
+After: [1, 2, 1, 0]
+
+Before: [0, 3, 3, 2]
+14 0 0 1
+After: [0, 0, 3, 2]
+
+Before: [2, 2, 2, 1]
+7 3 2 2
+After: [2, 2, 1, 1]
+
+Before: [2, 2, 0, 2]
+4 0 3 2
+After: [2, 2, 1, 2]
+
+Before: [0, 1, 1, 3]
+8 0 2 1
+After: [0, 0, 1, 3]
+
+Before: [2, 1, 1, 2]
+10 1 3 3
+After: [2, 1, 1, 0]
+
+Before: [3, 0, 2, 3]
+13 3 2 1
+After: [3, 0, 2, 3]
+
+Before: [0, 3, 2, 1]
+14 0 0 3
+After: [0, 3, 2, 0]
+
+Before: [2, 3, 2, 1]
+5 2 2 0
+After: [2, 3, 2, 1]
+
+Before: [2, 1, 2, 3]
+2 2 3 0
+After: [0, 1, 2, 3]
+
+Before: [0, 1, 3, 2]
+10 1 3 1
+After: [0, 0, 3, 2]
+
+Before: [1, 1, 2, 0]
+9 0 2 2
+After: [1, 1, 0, 0]
+
+Before: [0, 3, 0, 3]
+14 0 0 0
+After: [0, 3, 0, 3]
+
+Before: [0, 2, 0, 3]
+2 1 3 0
+After: [0, 2, 0, 3]
+
+Before: [0, 0, 2, 1]
+13 2 2 3
+After: [0, 0, 2, 1]
+
+Before: [0, 1, 2, 2]
+1 1 2 2
+After: [0, 1, 0, 2]
+
+Before: [3, 1, 3, 3]
+2 1 3 3
+After: [3, 1, 3, 0]
+
+Before: [0, 3, 2, 0]
+5 2 2 0
+After: [2, 3, 2, 0]
+
+Before: [1, 2, 2, 1]
+9 0 2 1
+After: [1, 0, 2, 1]
+
+Before: [1, 3, 2, 3]
+2 2 3 3
+After: [1, 3, 2, 0]
+
+Before: [2, 3, 0, 2]
+4 0 3 3
+After: [2, 3, 0, 1]
+
+Before: [2, 2, 3, 1]
+12 2 3 0
+After: [0, 2, 3, 1]
+
+Before: [0, 1, 2, 2]
+13 0 0 1
+After: [0, 1, 2, 2]
+
+Before: [1, 0, 2, 1]
+7 3 2 2
+After: [1, 0, 1, 1]
+
+Before: [0, 3, 3, 0]
+14 0 0 2
+After: [0, 3, 0, 0]
+
+Before: [3, 0, 3, 1]
+11 0 2 0
+After: [1, 0, 3, 1]
+
+Before: [1, 2, 0, 1]
+6 3 3 0
+After: [0, 2, 0, 1]
+
+Before: [2, 1, 2, 1]
+1 1 2 0
+After: [0, 1, 2, 1]
+
+Before: [3, 3, 2, 3]
+0 3 0 0
+After: [3, 3, 2, 3]
+
+Before: [0, 3, 2, 3]
+5 3 3 0
+After: [3, 3, 2, 3]
+
+Before: [0, 1, 3, 3]
+14 0 0 3
+After: [0, 1, 3, 0]
+
+Before: [0, 0, 3, 1]
+13 0 0 1
+After: [0, 1, 3, 1]
+
+Before: [0, 3, 2, 2]
+3 2 3 2
+After: [0, 3, 2, 2]
+
+Before: [2, 2, 2, 3]
+2 1 3 0
+After: [0, 2, 2, 3]
+
+Before: [2, 2, 2, 3]
+12 2 1 0
+After: [1, 2, 2, 3]
+
+Before: [0, 0, 1, 0]
+14 0 0 3
+After: [0, 0, 1, 0]
+
+Before: [1, 1, 1, 2]
+15 1 0 0
+After: [1, 1, 1, 2]
+
+Before: [2, 0, 2, 1]
+7 3 2 0
+After: [1, 0, 2, 1]
+
+Before: [3, 0, 2, 1]
+11 0 0 3
+After: [3, 0, 2, 1]
+
+Before: [3, 1, 2, 2]
+10 1 3 3
+After: [3, 1, 2, 0]
+
+Before: [0, 1, 2, 3]
+13 3 1 0
+After: [0, 1, 2, 3]
+
+Before: [0, 1, 0, 3]
+14 0 0 3
+After: [0, 1, 0, 0]
+
+Before: [0, 3, 2, 3]
+8 0 2 3
+After: [0, 3, 2, 0]
+
+Before: [1, 3, 2, 2]
+9 0 2 0
+After: [0, 3, 2, 2]
+
+Before: [1, 0, 2, 1]
+9 0 2 1
+After: [1, 0, 2, 1]
+
+Before: [0, 1, 0, 3]
+2 1 3 1
+After: [0, 0, 0, 3]
+
+Before: [0, 0, 2, 3]
+14 0 0 0
+After: [0, 0, 2, 3]
+
+Before: [2, 2, 2, 1]
+12 2 1 0
+After: [1, 2, 2, 1]
+
+Before: [3, 3, 3, 1]
+0 3 0 3
+After: [3, 3, 3, 1]
+
+Before: [3, 3, 0, 1]
+0 3 0 1
+After: [3, 1, 0, 1]
+
+Before: [0, 1, 2, 3]
+1 1 2 0
+After: [0, 1, 2, 3]
+
+Before: [3, 3, 3, 3]
+0 3 0 3
+After: [3, 3, 3, 3]
+
+Before: [1, 0, 2, 2]
+3 2 3 1
+After: [1, 2, 2, 2]
+
+Before: [1, 2, 2, 2]
+12 2 1 3
+After: [1, 2, 2, 1]
+
+Before: [0, 1, 1, 2]
+10 1 3 1
+After: [0, 0, 1, 2]
+
+Before: [1, 0, 2, 2]
+9 0 2 2
+After: [1, 0, 0, 2]
+
+Before: [1, 1, 2, 2]
+10 1 3 1
+After: [1, 0, 2, 2]
+
+Before: [3, 3, 1, 1]
+0 3 0 1
+After: [3, 1, 1, 1]
+
+Before: [2, 1, 2, 2]
+12 2 0 0
+After: [1, 1, 2, 2]
+
+Before: [2, 0, 3, 2]
+4 0 3 0
+After: [1, 0, 3, 2]
+
+Before: [2, 2, 3, 2]
+4 0 3 3
+After: [2, 2, 3, 1]
+
+Before: [2, 3, 3, 3]
+13 3 3 2
+After: [2, 3, 1, 3]
+
+Before: [3, 3, 2, 1]
+7 3 2 1
+After: [3, 1, 2, 1]
+
+Before: [0, 3, 2, 0]
+8 0 2 2
+After: [0, 3, 0, 0]
+
+Before: [0, 1, 3, 2]
+13 2 1 1
+After: [0, 0, 3, 2]
+
+Before: [0, 1, 2, 2]
+13 0 0 0
+After: [1, 1, 2, 2]
+
+Before: [2, 2, 1, 3]
+2 1 3 0
+After: [0, 2, 1, 3]
+
+Before: [1, 1, 1, 0]
+15 1 0 1
+After: [1, 1, 1, 0]
+
+Before: [2, 2, 2, 2]
+3 2 3 2
+After: [2, 2, 2, 2]
+
+Before: [1, 1, 2, 3]
+15 1 0 3
+After: [1, 1, 2, 1]
+
+Before: [2, 0, 3, 2]
+4 0 3 3
+After: [2, 0, 3, 1]
+
+Before: [3, 0, 3, 3]
+0 3 0 3
+After: [3, 0, 3, 3]
+
+Before: [0, 2, 1, 1]
+8 0 2 1
+After: [0, 0, 1, 1]
+
+Before: [1, 3, 2, 0]
+5 2 2 3
+After: [1, 3, 2, 2]
+
+Before: [0, 2, 2, 1]
+6 3 3 1
+After: [0, 0, 2, 1]
+
+Before: [1, 1, 3, 0]
+15 1 0 1
+After: [1, 1, 3, 0]
+
+Before: [2, 0, 1, 3]
+5 3 3 0
+After: [3, 0, 1, 3]
+
+Before: [1, 1, 2, 1]
+15 1 0 1
+After: [1, 1, 2, 1]
+
+Before: [2, 1, 2, 2]
+3 2 3 0
+After: [2, 1, 2, 2]
+
+Before: [1, 1, 3, 2]
+15 1 0 3
+After: [1, 1, 3, 1]
+
+Before: [0, 2, 1, 1]
+14 0 0 0
+After: [0, 2, 1, 1]
+
+Before: [0, 0, 2, 0]
+5 2 2 1
+After: [0, 2, 2, 0]
+
+Before: [0, 1, 2, 3]
+2 1 3 2
+After: [0, 1, 0, 3]
+
+Before: [3, 1, 2, 2]
+3 2 3 0
+After: [2, 1, 2, 2]
+
+Before: [1, 2, 2, 2]
+9 0 2 2
+After: [1, 2, 0, 2]
+
+Before: [2, 2, 2, 1]
+5 2 2 1
+After: [2, 2, 2, 1]
+
+Before: [1, 1, 2, 1]
+7 3 2 1
+After: [1, 1, 2, 1]
+
+Before: [3, 0, 0, 1]
+0 3 0 3
+After: [3, 0, 0, 1]
+
+Before: [3, 2, 3, 3]
+12 3 0 3
+After: [3, 2, 3, 1]
+
+Before: [3, 1, 2, 2]
+10 1 3 1
+After: [3, 0, 2, 2]
+
+Before: [1, 0, 1, 3]
+13 3 2 1
+After: [1, 0, 1, 3]
+
+Before: [0, 0, 0, 2]
+14 0 0 1
+After: [0, 0, 0, 2]
+
+Before: [3, 0, 3, 1]
+0 3 0 1
+After: [3, 1, 3, 1]
+
+Before: [1, 1, 2, 3]
+1 1 2 3
+After: [1, 1, 2, 0]
+
+Before: [3, 1, 2, 1]
+1 1 2 1
+After: [3, 0, 2, 1]
+
+Before: [3, 3, 0, 3]
+13 3 3 2
+After: [3, 3, 1, 3]
+
+Before: [3, 3, 2, 3]
+2 2 3 2
+After: [3, 3, 0, 3]
+
+Before: [1, 2, 2, 1]
+9 0 2 2
+After: [1, 2, 0, 1]
+
+Before: [3, 1, 0, 1]
+0 3 0 1
+After: [3, 1, 0, 1]
+
+Before: [2, 2, 3, 2]
+4 0 3 0
+After: [1, 2, 3, 2]
+
+Before: [2, 0, 2, 1]
+7 3 2 1
+After: [2, 1, 2, 1]
+
+Before: [1, 1, 2, 2]
+9 0 2 2
+After: [1, 1, 0, 2]
+
+Before: [0, 1, 3, 2]
+6 3 3 2
+After: [0, 1, 0, 2]
+
+Before: [3, 3, 0, 2]
+6 3 3 3
+After: [3, 3, 0, 0]
+
+Before: [3, 1, 3, 1]
+11 0 2 2
+After: [3, 1, 1, 1]
+
+Before: [0, 1, 2, 1]
+7 3 2 3
+After: [0, 1, 2, 1]
+
+Before: [1, 2, 2, 1]
+7 3 2 1
+After: [1, 1, 2, 1]
+
+Before: [3, 1, 0, 2]
+10 1 3 2
+After: [3, 1, 0, 2]
+
+Before: [0, 1, 3, 2]
+14 0 0 2
+After: [0, 1, 0, 2]
+
+Before: [0, 3, 0, 2]
+14 0 0 1
+After: [0, 0, 0, 2]
+
+Before: [0, 1, 2, 1]
+1 1 2 3
+After: [0, 1, 2, 0]
+
+Before: [1, 1, 2, 1]
+9 0 2 1
+After: [1, 0, 2, 1]
+
+Before: [0, 1, 2, 2]
+10 1 3 2
+After: [0, 1, 0, 2]
+
+Before: [1, 0, 2, 2]
+3 2 3 2
+After: [1, 0, 2, 2]
+
+Before: [2, 3, 3, 1]
+12 2 3 3
+After: [2, 3, 3, 0]
+
+Before: [2, 0, 3, 1]
+12 2 3 0
+After: [0, 0, 3, 1]
+
+Before: [2, 1, 2, 1]
+7 3 2 2
+After: [2, 1, 1, 1]
+
+Before: [3, 3, 2, 2]
+3 2 3 0
+After: [2, 3, 2, 2]
+
+Before: [0, 1, 0, 1]
+8 0 1 1
+After: [0, 0, 0, 1]
+
+Before: [1, 1, 2, 1]
+6 3 3 2
+After: [1, 1, 0, 1]
+
+Before: [0, 1, 2, 2]
+1 1 2 0
+After: [0, 1, 2, 2]
+
+Before: [3, 3, 1, 3]
+2 2 3 2
+After: [3, 3, 0, 3]
+
+Before: [3, 2, 1, 3]
+5 3 3 1
+After: [3, 3, 1, 3]
+
+Before: [2, 1, 2, 2]
+4 0 3 0
+After: [1, 1, 2, 2]
+
+Before: [3, 3, 2, 2]
+13 2 2 2
+After: [3, 3, 1, 2]
+
+Before: [2, 1, 3, 2]
+4 0 3 2
+After: [2, 1, 1, 2]
+
+Before: [3, 0, 2, 2]
+3 2 3 1
+After: [3, 2, 2, 2]
+
+Before: [2, 0, 1, 2]
+4 0 3 3
+After: [2, 0, 1, 1]
+
+Before: [3, 2, 2, 0]
+5 2 2 3
+After: [3, 2, 2, 2]
+
+Before: [0, 0, 3, 3]
+5 3 3 3
+After: [0, 0, 3, 3]
+
+Before: [0, 1, 0, 3]
+13 3 1 0
+After: [0, 1, 0, 3]
+
+Before: [2, 2, 3, 2]
+4 0 3 2
+After: [2, 2, 1, 2]
+
+Before: [0, 3, 0, 1]
+14 0 0 2
+After: [0, 3, 0, 1]
+
+Before: [3, 3, 3, 0]
+11 0 0 2
+After: [3, 3, 1, 0]
+
+Before: [0, 3, 3, 3]
+14 0 0 1
+After: [0, 0, 3, 3]
+
+Before: [2, 2, 1, 1]
+6 3 3 2
+After: [2, 2, 0, 1]
+
+Before: [3, 2, 0, 3]
+5 3 3 0
+After: [3, 2, 0, 3]
+
+Before: [2, 2, 2, 3]
+2 1 3 1
+After: [2, 0, 2, 3]
+
+Before: [2, 3, 2, 2]
+3 2 3 1
+After: [2, 2, 2, 2]
+
+Before: [0, 1, 2, 1]
+7 3 2 1
+After: [0, 1, 2, 1]
+
+Before: [0, 1, 2, 2]
+3 2 3 1
+After: [0, 2, 2, 2]
+
+Before: [3, 1, 2, 0]
+0 1 0 2
+After: [3, 1, 1, 0]
+
+Before: [2, 2, 2, 0]
+0 2 0 1
+After: [2, 2, 2, 0]
+
+Before: [1, 1, 3, 0]
+15 1 0 0
+After: [1, 1, 3, 0]
+
+Before: [0, 3, 0, 3]
+5 3 3 0
+After: [3, 3, 0, 3]
+
+Before: [3, 3, 3, 3]
+0 3 0 0
+After: [3, 3, 3, 3]
+
+Before: [3, 0, 2, 0]
+5 2 2 2
+After: [3, 0, 2, 0]
+
+Before: [2, 3, 2, 2]
+6 3 3 0
+After: [0, 3, 2, 2]
+
+Before: [1, 0, 2, 3]
+9 0 2 0
+After: [0, 0, 2, 3]
+
+Before: [2, 3, 2, 0]
+5 2 2 1
+After: [2, 2, 2, 0]
+
+Before: [3, 3, 3, 1]
+12 2 3 3
+After: [3, 3, 3, 0]
+
+Before: [1, 1, 1, 3]
+2 2 3 2
+After: [1, 1, 0, 3]
+
+Before: [3, 1, 1, 2]
+11 0 0 2
+After: [3, 1, 1, 2]
+
+Before: [1, 1, 0, 2]
+15 1 0 3
+After: [1, 1, 0, 1]
+
+Before: [1, 1, 1, 1]
+15 1 0 2
+After: [1, 1, 1, 1]
+
+Before: [0, 1, 0, 3]
+2 1 3 2
+After: [0, 1, 0, 3]
+
+Before: [2, 0, 2, 2]
+3 2 3 2
+After: [2, 0, 2, 2]
+
+Before: [0, 3, 3, 3]
+11 2 2 3
+After: [0, 3, 3, 1]
+
+Before: [0, 1, 2, 2]
+3 2 3 3
+After: [0, 1, 2, 2]
+
+Before: [0, 3, 3, 0]
+8 0 1 1
+After: [0, 0, 3, 0]
+
+Before: [3, 1, 3, 2]
+10 1 3 1
+After: [3, 0, 3, 2]
+
+Before: [3, 2, 2, 3]
+12 2 1 2
+After: [3, 2, 1, 3]
+
+Before: [3, 2, 2, 0]
+5 2 2 0
+After: [2, 2, 2, 0]
+
+Before: [3, 1, 1, 2]
+10 1 3 1
+After: [3, 0, 1, 2]
+
+Before: [3, 0, 3, 1]
+11 0 2 2
+After: [3, 0, 1, 1]
+
+Before: [3, 1, 0, 3]
+0 1 0 1
+After: [3, 1, 0, 3]
+
+Before: [0, 1, 2, 1]
+7 3 2 2
+After: [0, 1, 1, 1]
+
+Before: [2, 1, 2, 0]
+12 2 0 1
+After: [2, 1, 2, 0]
+
+Before: [0, 1, 0, 2]
+14 0 0 2
+After: [0, 1, 0, 2]
+
+Before: [2, 3, 2, 1]
+0 2 0 3
+After: [2, 3, 2, 2]
+
+Before: [1, 1, 0, 2]
+10 1 3 1
+After: [1, 0, 0, 2]
+
+Before: [3, 1, 2, 3]
+13 3 3 2
+After: [3, 1, 1, 3]
+
+Before: [2, 3, 2, 3]
+0 2 0 1
+After: [2, 2, 2, 3]
+
+Before: [3, 1, 2, 3]
+1 1 2 3
+After: [3, 1, 2, 0]
+
+Before: [2, 2, 1, 2]
+4 0 3 0
+After: [1, 2, 1, 2]
+
+Before: [0, 0, 3, 1]
+14 0 0 0
+After: [0, 0, 3, 1]
+
+Before: [3, 2, 3, 0]
+11 0 2 3
+After: [3, 2, 3, 1]
+
+Before: [2, 1, 1, 1]
+11 0 0 1
+After: [2, 1, 1, 1]
+
+Before: [3, 2, 2, 2]
+12 2 1 2
+After: [3, 2, 1, 2]
+
+Before: [0, 1, 3, 2]
+10 1 3 2
+After: [0, 1, 0, 2]
+
+Before: [1, 1, 2, 2]
+15 1 0 1
+After: [1, 1, 2, 2]
+
+Before: [0, 0, 3, 3]
+8 0 2 3
+After: [0, 0, 3, 0]
+
+Before: [2, 0, 0, 0]
+11 0 0 1
+After: [2, 1, 0, 0]
+
+Before: [3, 2, 3, 3]
+0 3 0 2
+After: [3, 2, 3, 3]
+
+Before: [2, 2, 2, 2]
+4 0 3 2
+After: [2, 2, 1, 2]
+
+Before: [1, 1, 1, 3]
+15 1 0 0
+After: [1, 1, 1, 3]
+
+Before: [0, 1, 2, 0]
+8 0 1 0
+After: [0, 1, 2, 0]
+
+Before: [3, 1, 3, 1]
+12 2 3 0
+After: [0, 1, 3, 1]
+
+Before: [1, 1, 2, 2]
+3 2 3 2
+After: [1, 1, 2, 2]
+
+Before: [3, 1, 2, 2]
+3 2 3 1
+After: [3, 2, 2, 2]
+
+Before: [1, 1, 0, 1]
+15 1 0 0
+After: [1, 1, 0, 1]
+
+Before: [2, 3, 1, 3]
+2 2 3 3
+After: [2, 3, 1, 0]
+
+Before: [2, 0, 3, 1]
+12 2 3 2
+After: [2, 0, 0, 1]
+
+Before: [2, 0, 0, 3]
+8 1 0 0
+After: [0, 0, 0, 3]
+
+Before: [1, 1, 2, 0]
+15 1 0 0
+After: [1, 1, 2, 0]
+
+Before: [3, 0, 0, 0]
+8 2 0 3
+After: [3, 0, 0, 0]
+
+Before: [2, 0, 2, 2]
+0 2 0 3
+After: [2, 0, 2, 2]
+
+Before: [2, 0, 2, 2]
+4 0 3 3
+After: [2, 0, 2, 1]
+
+Before: [0, 2, 2, 1]
+7 3 2 2
+After: [0, 2, 1, 1]
+
+Before: [2, 2, 0, 1]
+6 3 3 1
+After: [2, 0, 0, 1]
+
+Before: [2, 1, 1, 2]
+10 1 3 2
+After: [2, 1, 0, 2]
+
+Before: [2, 0, 1, 3]
+2 2 3 0
+After: [0, 0, 1, 3]
+
+Before: [2, 0, 0, 2]
+4 0 3 3
+After: [2, 0, 0, 1]
+
+Before: [1, 2, 2, 2]
+3 2 3 0
+After: [2, 2, 2, 2]
+
+Before: [0, 3, 2, 1]
+8 0 1 0
+After: [0, 3, 2, 1]
+
+Before: [0, 2, 2, 3]
+8 0 3 2
+After: [0, 2, 0, 3]
+
+Before: [0, 2, 2, 0]
+5 2 2 3
+After: [0, 2, 2, 2]
+
+Before: [3, 0, 3, 1]
+12 2 3 0
+After: [0, 0, 3, 1]
+
+Before: [0, 2, 1, 3]
+2 1 3 0
+After: [0, 2, 1, 3]
+
+Before: [1, 1, 2, 2]
+1 1 2 0
+After: [0, 1, 2, 2]
+
+Before: [2, 0, 2, 0]
+0 2 0 2
+After: [2, 0, 2, 0]
+
+Before: [0, 1, 3, 2]
+10 1 3 3
+After: [0, 1, 3, 0]
+
+Before: [1, 1, 2, 0]
+15 1 0 3
+After: [1, 1, 2, 1]
+
+Before: [2, 1, 2, 3]
+1 1 2 0
+After: [0, 1, 2, 3]
+
+Before: [1, 3, 1, 3]
+2 2 3 3
+After: [1, 3, 1, 0]
+
+Before: [2, 3, 2, 0]
+12 2 0 1
+After: [2, 1, 2, 0]
+
+Before: [3, 0, 3, 3]
+12 3 0 2
+After: [3, 0, 1, 3]
+
+Before: [3, 1, 1, 3]
+2 2 3 0
+After: [0, 1, 1, 3]
+
+Before: [3, 2, 2, 3]
+2 1 3 3
+After: [3, 2, 2, 0]
+
+Before: [2, 2, 2, 1]
+7 3 2 3
+After: [2, 2, 2, 1]
+
+Before: [1, 1, 1, 1]
+6 2 3 3
+After: [1, 1, 1, 0]
+
+Before: [2, 3, 2, 3]
+5 2 2 2
+After: [2, 3, 2, 3]
+
+Before: [2, 3, 2, 2]
+4 0 3 0
+After: [1, 3, 2, 2]
+
+Before: [0, 1, 2, 1]
+13 2 2 2
+After: [0, 1, 1, 1]
+
+Before: [1, 3, 2, 2]
+9 0 2 3
+After: [1, 3, 2, 0]
+
+Before: [0, 0, 0, 3]
+14 0 0 1
+After: [0, 0, 0, 3]
+
+Before: [0, 2, 0, 0]
+14 0 0 2
+After: [0, 2, 0, 0]
+
+Before: [1, 3, 2, 1]
+9 0 2 3
+After: [1, 3, 2, 0]
+
+Before: [3, 2, 2, 3]
+13 3 2 1
+After: [3, 0, 2, 3]
+
+Before: [1, 0, 2, 0]
+9 0 2 0
+After: [0, 0, 2, 0]
+
+Before: [0, 3, 2, 1]
+5 2 2 1
+After: [0, 2, 2, 1]
+
+Before: [3, 1, 2, 3]
+1 1 2 1
+After: [3, 0, 2, 3]
+
+Before: [0, 3, 1, 2]
+14 0 0 2
+After: [0, 3, 0, 2]
+
+Before: [2, 1, 1, 3]
+13 3 2 1
+After: [2, 0, 1, 3]
+
+Before: [0, 0, 2, 2]
+6 3 3 3
+After: [0, 0, 2, 0]
+
+Before: [0, 1, 3, 0]
+8 0 2 0
+After: [0, 1, 3, 0]
+
+Before: [1, 1, 1, 2]
+15 1 0 2
+After: [1, 1, 1, 2]
+
+Before: [0, 1, 3, 2]
+8 0 2 3
+After: [0, 1, 3, 0]
+
+Before: [1, 1, 3, 3]
+15 1 0 0
+After: [1, 1, 3, 3]
+
+Before: [2, 2, 1, 2]
+11 0 1 0
+After: [1, 2, 1, 2]
+
+Before: [1, 0, 2, 2]
+3 2 3 0
+After: [2, 0, 2, 2]
+
+Before: [0, 0, 2, 2]
+3 2 3 0
+After: [2, 0, 2, 2]
+
+Before: [2, 2, 2, 2]
+3 2 3 0
+After: [2, 2, 2, 2]
+
+Before: [2, 2, 2, 0]
+12 2 0 0
+After: [1, 2, 2, 0]
+
+Before: [0, 1, 1, 2]
+10 1 3 0
+After: [0, 1, 1, 2]
+
+Before: [0, 0, 0, 2]
+14 0 0 3
+After: [0, 0, 0, 0]
+
+Before: [1, 3, 3, 3]
+13 3 3 2
+After: [1, 3, 1, 3]
+
+Before: [3, 2, 2, 3]
+5 3 3 0
+After: [3, 2, 2, 3]
+
+Before: [1, 1, 3, 1]
+15 1 0 1
+After: [1, 1, 3, 1]
+
+Before: [2, 3, 2, 2]
+4 0 3 2
+After: [2, 3, 1, 2]
+
+Before: [3, 3, 2, 3]
+0 3 0 1
+After: [3, 3, 2, 3]
+
+Before: [1, 1, 2, 0]
+9 0 2 3
+After: [1, 1, 2, 0]
+
+Before: [1, 2, 2, 0]
+9 0 2 2
+After: [1, 2, 0, 0]
+
+Before: [0, 3, 2, 1]
+7 3 2 1
+After: [0, 1, 2, 1]
+
+Before: [2, 0, 2, 3]
+5 2 2 0
+After: [2, 0, 2, 3]
+
+Before: [2, 0, 0, 2]
+4 0 3 2
+After: [2, 0, 1, 2]
+
+Before: [3, 3, 1, 1]
+0 3 0 2
+After: [3, 3, 1, 1]
+
+Before: [0, 3, 3, 0]
+14 0 0 1
+After: [0, 0, 3, 0]
+
+Before: [3, 2, 1, 1]
+0 3 0 1
+After: [3, 1, 1, 1]
+
+Before: [1, 1, 2, 2]
+15 1 0 0
+After: [1, 1, 2, 2]
+
+Before: [2, 2, 1, 2]
+6 3 3 0
+After: [0, 2, 1, 2]
+
+Before: [2, 1, 2, 2]
+4 0 3 2
+After: [2, 1, 1, 2]
+
+Before: [1, 1, 1, 2]
+10 1 3 1
+After: [1, 0, 1, 2]
+
+Before: [1, 1, 0, 0]
+15 1 0 0
+After: [1, 1, 0, 0]
+
+Before: [1, 2, 2, 3]
+9 0 2 1
+After: [1, 0, 2, 3]
+
+Before: [2, 0, 1, 2]
+4 0 3 0
+After: [1, 0, 1, 2]
+
+Before: [1, 3, 3, 3]
+12 3 2 3
+After: [1, 3, 3, 1]
+
+Before: [3, 1, 1, 2]
+0 1 0 0
+After: [1, 1, 1, 2]
+
+Before: [3, 0, 2, 1]
+0 3 0 3
+After: [3, 0, 2, 1]
+
+Before: [3, 3, 0, 1]
+0 3 0 0
+After: [1, 3, 0, 1]
+
+Before: [1, 3, 3, 2]
+6 3 3 2
+After: [1, 3, 0, 2]
+
+Before: [0, 2, 1, 0]
+8 0 2 2
+After: [0, 2, 0, 0]
+
+Before: [2, 2, 2, 0]
+12 2 0 2
+After: [2, 2, 1, 0]
+
+Before: [2, 1, 2, 3]
+5 2 2 0
+After: [2, 1, 2, 3]
+
+Before: [0, 0, 1, 3]
+5 3 3 3
+After: [0, 0, 1, 3]
+
+Before: [1, 0, 2, 3]
+13 2 2 2
+After: [1, 0, 1, 3]
+
+Before: [1, 1, 2, 3]
+15 1 0 2
+After: [1, 1, 1, 3]
+
+Before: [2, 2, 2, 2]
+3 2 3 3
+After: [2, 2, 2, 2]
+
+Before: [1, 1, 0, 1]
+15 1 0 2
+After: [1, 1, 1, 1]
+
+Before: [1, 1, 2, 3]
+15 1 0 0
+After: [1, 1, 2, 3]
+
+Before: [1, 1, 0, 3]
+2 1 3 1
+After: [1, 0, 0, 3]
+
+Before: [2, 0, 2, 1]
+12 2 0 1
+After: [2, 1, 2, 1]
+
+Before: [0, 2, 1, 2]
+8 0 1 1
+After: [0, 0, 1, 2]
+
+Before: [1, 1, 2, 3]
+1 1 2 1
+After: [1, 0, 2, 3]
+
+Before: [0, 3, 2, 3]
+2 2 3 0
+After: [0, 3, 2, 3]
+
+Before: [0, 0, 2, 3]
+13 3 3 2
+After: [0, 0, 1, 3]
+
+Before: [2, 1, 3, 2]
+10 1 3 1
+After: [2, 0, 3, 2]
+
+Before: [1, 1, 2, 3]
+2 1 3 3
+After: [1, 1, 2, 0]
+
+Before: [0, 0, 3, 2]
+14 0 0 2
+After: [0, 0, 0, 2]
+
+Before: [0, 2, 2, 1]
+7 3 2 3
+After: [0, 2, 2, 1]
+
+Before: [1, 0, 3, 2]
+11 2 2 3
+After: [1, 0, 3, 1]
+
+Before: [3, 2, 3, 3]
+11 0 0 1
+After: [3, 1, 3, 3]
+
+Before: [0, 3, 2, 2]
+14 0 0 2
+After: [0, 3, 0, 2]
+
+Before: [3, 2, 1, 1]
+6 3 3 2
+After: [3, 2, 0, 1]
+
+Before: [0, 2, 2, 3]
+2 2 3 0
+After: [0, 2, 2, 3]
+
+Before: [1, 2, 1, 2]
+6 3 3 3
+After: [1, 2, 1, 0]
+
+Before: [2, 1, 2, 1]
+7 3 2 1
+After: [2, 1, 2, 1]
+
+Before: [1, 1, 1, 2]
+10 1 3 2
+After: [1, 1, 0, 2]
+
+Before: [0, 0, 1, 1]
+14 0 0 1
+After: [0, 0, 1, 1]
+
+Before: [3, 3, 3, 1]
+11 0 2 1
+After: [3, 1, 3, 1]
+
+Before: [2, 1, 2, 2]
+12 2 0 2
+After: [2, 1, 1, 2]
+
+Before: [1, 2, 2, 1]
+7 3 2 0
+After: [1, 2, 2, 1]
+
+Before: [1, 2, 2, 2]
+9 0 2 1
+After: [1, 0, 2, 2]
+
+Before: [3, 3, 2, 1]
+7 3 2 3
+After: [3, 3, 2, 1]
+
+Before: [2, 1, 1, 2]
+6 3 3 3
+After: [2, 1, 1, 0]
+
+Before: [2, 2, 1, 3]
+2 2 3 2
+After: [2, 2, 0, 3]
+
+Before: [3, 2, 2, 2]
+3 2 3 1
+After: [3, 2, 2, 2]
+
+Before: [2, 2, 2, 1]
+0 2 0 0
+After: [2, 2, 2, 1]
+
+Before: [0, 1, 3, 1]
+14 0 0 1
+After: [0, 0, 3, 1]
+
+Before: [2, 0, 3, 1]
+8 1 0 0
+After: [0, 0, 3, 1]
+
+Before: [2, 3, 0, 2]
+4 0 3 2
+After: [2, 3, 1, 2]
+
+Before: [2, 0, 2, 2]
+3 2 3 1
+After: [2, 2, 2, 2]
+
+Before: [0, 0, 3, 2]
+8 0 2 2
+After: [0, 0, 0, 2]
+
+Before: [3, 1, 1, 2]
+10 1 3 2
+After: [3, 1, 0, 2]
+
+Before: [3, 2, 2, 1]
+7 3 2 2
+After: [3, 2, 1, 1]
+
+Before: [2, 2, 2, 2]
+4 0 3 1
+After: [2, 1, 2, 2]
+
+Before: [1, 1, 2, 2]
+9 0 2 1
+After: [1, 0, 2, 2]
+
+Before: [3, 0, 2, 2]
+5 2 2 1
+After: [3, 2, 2, 2]
+
+Before: [0, 2, 0, 1]
+14 0 0 0
+After: [0, 2, 0, 1]
+
+Before: [2, 2, 2, 1]
+5 2 2 0
+After: [2, 2, 2, 1]
+
+Before: [2, 1, 2, 3]
+1 1 2 1
+After: [2, 0, 2, 3]
+
+Before: [2, 3, 0, 2]
+4 0 3 1
+After: [2, 1, 0, 2]
+
+Before: [2, 3, 2, 1]
+7 3 2 0
+After: [1, 3, 2, 1]
+
+Before: [2, 0, 2, 2]
+12 2 0 0
+After: [1, 0, 2, 2]
+
+Before: [1, 2, 2, 2]
+3 2 3 2
+After: [1, 2, 2, 2]
+
+Before: [0, 0, 2, 1]
+7 3 2 0
+After: [1, 0, 2, 1]
+
+Before: [2, 2, 3, 3]
+11 2 2 3
+After: [2, 2, 3, 1]
+
+Before: [3, 3, 2, 0]
+5 2 2 2
+After: [3, 3, 2, 0]
+
+Before: [3, 2, 2, 2]
+3 2 3 2
+After: [3, 2, 2, 2]
+
+Before: [2, 3, 2, 2]
+4 0 3 3
+After: [2, 3, 2, 1]
+
+Before: [2, 1, 1, 2]
+11 0 0 1
+After: [2, 1, 1, 2]
+
+Before: [0, 0, 2, 1]
+7 3 2 2
+After: [0, 0, 1, 1]
+
+Before: [0, 2, 1, 0]
+14 0 0 3
+After: [0, 2, 1, 0]
+
+Before: [1, 1, 2, 0]
+15 1 0 1
+After: [1, 1, 2, 0]
+
+Before: [0, 1, 2, 3]
+1 1 2 1
+After: [0, 0, 2, 3]
+
+Before: [0, 3, 1, 0]
+14 0 0 3
+After: [0, 3, 1, 0]
+
+Before: [0, 2, 3, 2]
+8 0 3 0
+After: [0, 2, 3, 2]
+
+Before: [0, 1, 3, 3]
+13 0 0 0
+After: [1, 1, 3, 3]
+
+Before: [2, 1, 2, 0]
+1 1 2 0
+After: [0, 1, 2, 0]
+
+Before: [3, 0, 1, 1]
+11 0 0 0
+After: [1, 0, 1, 1]
+
+Before: [0, 2, 1, 3]
+14 0 0 3
+After: [0, 2, 1, 0]
+
+Before: [0, 2, 2, 1]
+14 0 0 0
+After: [0, 2, 2, 1]
+
+Before: [0, 2, 3, 0]
+14 0 0 1
+After: [0, 0, 3, 0]
+
+Before: [2, 2, 2, 2]
+3 2 3 1
+After: [2, 2, 2, 2]
+
+Before: [3, 0, 2, 1]
+7 3 2 3
+After: [3, 0, 2, 1]
+
+Before: [2, 2, 2, 1]
+6 3 3 0
+After: [0, 2, 2, 1]
+
+Before: [2, 1, 3, 2]
+10 1 3 2
+After: [2, 1, 0, 2]
+
+Before: [2, 1, 2, 2]
+5 2 2 3
+After: [2, 1, 2, 2]
+
+Before: [3, 2, 1, 1]
+0 3 0 3
+After: [3, 2, 1, 1]
+
+Before: [2, 1, 2, 3]
+1 1 2 3
+After: [2, 1, 2, 0]
+
+Before: [2, 3, 2, 0]
+0 2 0 1
+After: [2, 2, 2, 0]
+
+Before: [3, 0, 3, 1]
+11 0 0 3
+After: [3, 0, 3, 1]
+
+Before: [2, 3, 1, 1]
+6 2 3 2
+After: [2, 3, 0, 1]
+
+Before: [2, 0, 3, 2]
+11 2 2 0
+After: [1, 0, 3, 2]
+
+Before: [0, 1, 1, 2]
+10 1 3 3
+After: [0, 1, 1, 0]
+
+Before: [0, 1, 3, 3]
+12 3 2 2
+After: [0, 1, 1, 3]
+
+Before: [0, 1, 1, 2]
+14 0 0 1
+After: [0, 0, 1, 2]
+
+Before: [0, 1, 2, 3]
+1 1 2 2
+After: [0, 1, 0, 3]
+
+Before: [1, 1, 2, 2]
+1 1 2 3
+After: [1, 1, 2, 0]
+
+Before: [0, 1, 0, 1]
+14 0 0 3
+After: [0, 1, 0, 0]
+
+Before: [2, 0, 0, 1]
+6 3 3 1
+After: [2, 0, 0, 1]
+
+Before: [1, 2, 1, 3]
+13 3 2 3
+After: [1, 2, 1, 0]
+
+Before: [2, 1, 2, 1]
+6 3 3 3
+After: [2, 1, 2, 0]
+
+Before: [0, 1, 0, 2]
+6 3 3 3
+After: [0, 1, 0, 0]
+
+Before: [3, 1, 0, 2]
+8 2 0 0
+After: [0, 1, 0, 2]
+
+Before: [1, 1, 3, 3]
+12 3 2 0
+After: [1, 1, 3, 3]
+
+Before: [0, 1, 2, 1]
+5 2 2 3
+After: [0, 1, 2, 2]
+
+Before: [1, 0, 3, 0]
+11 2 2 0
+After: [1, 0, 3, 0]
+
+Before: [3, 3, 2, 1]
+5 2 2 0
+After: [2, 3, 2, 1]
+
+Before: [0, 2, 2, 3]
+14 0 0 3
+After: [0, 2, 2, 0]
+
+Before: [3, 0, 1, 3]
+2 2 3 3
+After: [3, 0, 1, 0]
+
+Before: [2, 3, 3, 2]
+4 0 3 3
+After: [2, 3, 3, 1]
+
+Before: [1, 1, 3, 2]
+15 1 0 2
+After: [1, 1, 1, 2]
+
+Before: [1, 1, 2, 2]
+9 0 2 0
+After: [0, 1, 2, 2]
+
+Before: [2, 1, 2, 2]
+10 1 3 0
+After: [0, 1, 2, 2]
+
+Before: [3, 1, 2, 0]
+1 1 2 3
+After: [3, 1, 2, 0]
+
+Before: [0, 1, 1, 3]
+14 0 0 1
+After: [0, 0, 1, 3]
+
+Before: [1, 1, 2, 3]
+13 3 1 0
+After: [0, 1, 2, 3]
+
+Before: [1, 1, 1, 2]
+6 3 3 1
+After: [1, 0, 1, 2]
+
+Before: [2, 1, 2, 2]
+5 2 2 1
+After: [2, 2, 2, 2]
+
+Before: [0, 2, 2, 0]
+14 0 0 0
+After: [0, 2, 2, 0]
+
+Before: [0, 0, 2, 2]
+8 0 2 2
+After: [0, 0, 0, 2]
+
+Before: [0, 1, 2, 0]
+14 0 0 3
+After: [0, 1, 2, 0]
+
+Before: [1, 3, 2, 2]
+9 0 2 1
+After: [1, 0, 2, 2]
+
+Before: [1, 2, 2, 0]
+12 2 1 0
+After: [1, 2, 2, 0]
+
+Before: [2, 1, 3, 2]
+4 0 3 0
+After: [1, 1, 3, 2]
+
+Before: [0, 1, 2, 1]
+1 1 2 1
+After: [0, 0, 2, 1]
+
+Before: [3, 0, 3, 3]
+11 0 0 0
+After: [1, 0, 3, 3]
+
+Before: [0, 3, 2, 1]
+7 3 2 0
+After: [1, 3, 2, 1]
+
+Before: [3, 1, 1, 3]
+12 3 0 0
+After: [1, 1, 1, 3]
+
+Before: [0, 2, 2, 1]
+7 3 2 0
+After: [1, 2, 2, 1]
+
+Before: [1, 1, 3, 2]
+10 1 3 3
+After: [1, 1, 3, 0]
+
+Before: [1, 1, 2, 1]
+1 1 2 1
+After: [1, 0, 2, 1]
+
+Before: [2, 0, 1, 2]
+6 3 3 0
+After: [0, 0, 1, 2]
+
+Before: [2, 0, 2, 0]
+0 2 0 3
+After: [2, 0, 2, 2]
+
+Before: [0, 2, 3, 3]
+13 3 3 0
+After: [1, 2, 3, 3]
+
+Before: [1, 1, 0, 3]
+15 1 0 3
+After: [1, 1, 0, 1]
+
+Before: [2, 0, 1, 1]
+11 0 0 2
+After: [2, 0, 1, 1]
+
+Before: [2, 3, 0, 2]
+6 3 3 2
+After: [2, 3, 0, 2]
+
+Before: [3, 1, 1, 2]
+10 1 3 0
+After: [0, 1, 1, 2]
+
+Before: [2, 3, 0, 1]
+6 3 3 1
+After: [2, 0, 0, 1]
+
+Before: [3, 1, 2, 1]
+1 1 2 0
+After: [0, 1, 2, 1]
+
+Before: [1, 1, 0, 2]
+10 1 3 0
+After: [0, 1, 0, 2]
+
+Before: [2, 1, 2, 1]
+1 1 2 2
+After: [2, 1, 0, 1]
+
+Before: [2, 1, 0, 2]
+10 1 3 2
+After: [2, 1, 0, 2]
+
+Before: [1, 1, 2, 2]
+15 1 0 2
+After: [1, 1, 1, 2]
+
+Before: [2, 3, 0, 2]
+4 0 3 0
+After: [1, 3, 0, 2]
+
+Before: [1, 1, 2, 1]
+1 1 2 0
+After: [0, 1, 2, 1]
+
+Before: [3, 1, 2, 3]
+13 3 3 0
+After: [1, 1, 2, 3]
+
+Before: [3, 0, 2, 3]
+0 3 0 1
+After: [3, 3, 2, 3]
+
+Before: [0, 1, 2, 1]
+1 1 2 0
+After: [0, 1, 2, 1]
+
+Before: [2, 2, 1, 2]
+4 0 3 3
+After: [2, 2, 1, 1]
+
+Before: [3, 3, 0, 3]
+11 0 0 0
+After: [1, 3, 0, 3]
+
+Before: [3, 3, 2, 2]
+3 2 3 1
+After: [3, 2, 2, 2]
+
+Before: [1, 3, 2, 3]
+2 2 3 0
+After: [0, 3, 2, 3]
+
+Before: [1, 2, 2, 3]
+9 0 2 0
+After: [0, 2, 2, 3]
+
+Before: [2, 1, 2, 0]
+1 1 2 2
+After: [2, 1, 0, 0]
+
+Before: [3, 1, 2, 1]
+1 1 2 2
+After: [3, 1, 0, 1]
+
+Before: [3, 1, 0, 2]
+10 1 3 1
+After: [3, 0, 0, 2]
+
+Before: [3, 0, 3, 1]
+12 2 3 2
+After: [3, 0, 0, 1]
+
+Before: [1, 0, 2, 2]
+9 0 2 3
+After: [1, 0, 2, 0]
+
+Before: [0, 2, 2, 3]
+5 3 3 1
+After: [0, 3, 2, 3]
+
+Before: [2, 0, 2, 1]
+12 2 0 2
+After: [2, 0, 1, 1]
+
+Before: [2, 3, 1, 2]
+11 0 0 3
+After: [2, 3, 1, 1]
+
+Before: [0, 2, 2, 2]
+14 0 0 0
+After: [0, 2, 2, 2]
+
+Before: [1, 0, 3, 0]
+11 2 2 2
+After: [1, 0, 1, 0]
+
+Before: [0, 1, 2, 3]
+14 0 0 0
+After: [0, 1, 2, 3]
+
+Before: [2, 2, 3, 1]
+6 3 3 3
+After: [2, 2, 3, 0]
+
+Before: [1, 1, 2, 2]
+10 1 3 0
+After: [0, 1, 2, 2]
+
+Before: [3, 1, 2, 2]
+6 3 3 1
+After: [3, 0, 2, 2]
+
+Before: [1, 2, 3, 3]
+13 3 1 2
+After: [1, 2, 0, 3]
+
+Before: [1, 2, 1, 3]
+2 2 3 2
+After: [1, 2, 0, 3]
+
+Before: [3, 1, 0, 2]
+10 1 3 3
+After: [3, 1, 0, 0]
+
+Before: [3, 1, 3, 3]
+11 2 2 3
+After: [3, 1, 3, 1]
+
+Before: [2, 2, 1, 2]
+11 0 0 2
+After: [2, 2, 1, 2]
+
+Before: [3, 1, 3, 2]
+10 1 3 0
+After: [0, 1, 3, 2]
+
+Before: [3, 0, 2, 2]
+3 2 3 2
+After: [3, 0, 2, 2]
+
+Before: [1, 1, 0, 3]
+2 1 3 0
+After: [0, 1, 0, 3]
+
+Before: [2, 1, 2, 2]
+1 1 2 3
+After: [2, 1, 2, 0]
+
+Before: [2, 2, 2, 3]
+2 2 3 2
+After: [2, 2, 0, 3]
+
+Before: [3, 0, 2, 1]
+7 3 2 1
+After: [3, 1, 2, 1]
+
+Before: [1, 1, 2, 3]
+9 0 2 0
+After: [0, 1, 2, 3]
+
+Before: [3, 2, 2, 3]
+2 1 3 2
+After: [3, 2, 0, 3]
+
+Before: [2, 1, 2, 2]
+4 0 3 1
+After: [2, 1, 2, 2]
+
+Before: [2, 0, 2, 2]
+4 0 3 0
+After: [1, 0, 2, 2]
+
+Before: [2, 3, 1, 2]
+4 0 3 2
+After: [2, 3, 1, 2]
+
+Before: [0, 2, 1, 0]
+8 0 2 3
+After: [0, 2, 1, 0]
+
+Before: [3, 0, 1, 1]
+6 2 3 3
+After: [3, 0, 1, 0]
+
+Before: [1, 2, 2, 0]
+12 2 1 2
+After: [1, 2, 1, 0]
+
+Before: [1, 3, 2, 1]
+9 0 2 2
+After: [1, 3, 0, 1]
+
+Before: [1, 1, 1, 3]
+15 1 0 1
+After: [1, 1, 1, 3]
+
+Before: [0, 0, 0, 3]
+8 0 3 2
+After: [0, 0, 0, 3]
+
+Before: [3, 1, 2, 0]
+1 1 2 2
+After: [3, 1, 0, 0]
+
+Before: [2, 1, 2, 2]
+10 1 3 2
+After: [2, 1, 0, 2]
+
+Before: [1, 1, 0, 1]
+15 1 0 1
+After: [1, 1, 0, 1]
+
+Before: [1, 1, 3, 0]
+13 2 1 0
+After: [0, 1, 3, 0]
+
+Before: [0, 0, 2, 1]
+7 3 2 1
+After: [0, 1, 2, 1]
+
+Before: [2, 1, 3, 0]
+11 0 0 3
+After: [2, 1, 3, 1]
+
+Before: [3, 1, 3, 0]
+0 1 0 3
+After: [3, 1, 3, 1]
+
+Before: [1, 1, 3, 3]
+13 2 1 1
+After: [1, 0, 3, 3]
+
+Before: [1, 3, 2, 3]
+9 0 2 3
+After: [1, 3, 2, 0]
+
+Before: [0, 3, 1, 3]
+8 0 3 1
+After: [0, 0, 1, 3]
+
+Before: [2, 1, 0, 2]
+4 0 3 3
+After: [2, 1, 0, 1]
+
+Before: [2, 0, 2, 2]
+3 2 3 3
+After: [2, 0, 2, 2]
+
+Before: [2, 3, 1, 0]
+11 0 0 0
+After: [1, 3, 1, 0]
+
+Before: [3, 2, 3, 2]
+11 0 0 2
+After: [3, 2, 1, 2]
+
+Before: [2, 1, 2, 2]
+4 0 3 3
+After: [2, 1, 2, 1]
+
+Before: [3, 0, 3, 3]
+5 3 3 1
+After: [3, 3, 3, 3]
+
+Before: [2, 2, 2, 1]
+7 3 2 1
+After: [2, 1, 2, 1]
+
+Before: [2, 1, 2, 2]
+3 2 3 2
+After: [2, 1, 2, 2]
+
+Before: [1, 1, 2, 1]
+7 3 2 2
+After: [1, 1, 1, 1]
+
+Before: [2, 0, 2, 2]
+5 2 2 0
+After: [2, 0, 2, 2]
+
+Before: [2, 1, 3, 2]
+4 0 3 1
+After: [2, 1, 3, 2]
+
+Before: [0, 2, 2, 2]
+3 2 3 3
+After: [0, 2, 2, 2]
+
+Before: [0, 3, 2, 2]
+14 0 0 0
+After: [0, 3, 2, 2]
+
+Before: [2, 1, 3, 2]
+10 1 3 0
+After: [0, 1, 3, 2]
+
+Before: [3, 1, 2, 1]
+7 3 2 0
+After: [1, 1, 2, 1]
+
+Before: [2, 2, 1, 2]
+4 0 3 2
+After: [2, 2, 1, 2]
+
+Before: [3, 2, 1, 1]
+11 0 0 2
+After: [3, 2, 1, 1]
+
+Before: [0, 3, 3, 1]
+13 0 0 1
+After: [0, 1, 3, 1]
+
+Before: [3, 0, 2, 3]
+13 3 2 2
+After: [3, 0, 0, 3]
+
+Before: [0, 0, 0, 1]
+6 3 3 2
+After: [0, 0, 0, 1]
+
+Before: [2, 3, 1, 2]
+4 0 3 1
+After: [2, 1, 1, 2]
+
+Before: [2, 3, 2, 3]
+0 2 0 3
+After: [2, 3, 2, 2]
+
+Before: [1, 3, 2, 0]
+9 0 2 0
+After: [0, 3, 2, 0]
+
+Before: [0, 1, 0, 2]
+6 3 3 0
+After: [0, 1, 0, 2]
+
+Before: [0, 1, 2, 1]
+1 1 2 2
+After: [0, 1, 0, 1]
+
+Before: [1, 3, 2, 1]
+7 3 2 0
+After: [1, 3, 2, 1]
+
+Before: [0, 3, 2, 1]
+8 0 2 1
+After: [0, 0, 2, 1]
+
+Before: [2, 2, 0, 3]
+5 3 3 1
+After: [2, 3, 0, 3]
+
+Before: [1, 1, 2, 2]
+3 2 3 3
+After: [1, 1, 2, 2]
+
+Before: [0, 0, 3, 2]
+11 2 2 1
+After: [0, 1, 3, 2]
+
+Before: [0, 3, 1, 3]
+2 2 3 3
+After: [0, 3, 1, 0]
+
+Before: [3, 3, 3, 3]
+11 2 0 0
+After: [1, 3, 3, 3]
+
+Before: [2, 0, 0, 2]
+4 0 3 0
+After: [1, 0, 0, 2]
+
+Before: [0, 1, 2, 3]
+2 2 3 1
+After: [0, 0, 2, 3]
+
+Before: [2, 3, 2, 1]
+7 3 2 2
+After: [2, 3, 1, 1]
+
+Before: [3, 1, 2, 2]
+10 1 3 0
+After: [0, 1, 2, 2]
+
+Before: [0, 2, 3, 3]
+14 0 0 3
+After: [0, 2, 3, 0]
+
+Before: [3, 2, 2, 3]
+13 3 1 1
+After: [3, 0, 2, 3]
+
+Before: [1, 1, 2, 2]
+9 0 2 3
+After: [1, 1, 2, 0]
+
+Before: [0, 2, 1, 3]
+14 0 0 2
+After: [0, 2, 0, 3]
+
+Before: [1, 0, 2, 1]
+7 3 2 3
+After: [1, 0, 2, 1]
+
+Before: [0, 3, 2, 1]
+7 3 2 3
+After: [0, 3, 2, 1]
+
+Before: [0, 1, 3, 2]
+11 2 2 0
+After: [1, 1, 3, 2]
+
+Before: [0, 0, 2, 0]
+13 0 0 2
+After: [0, 0, 1, 0]
+
+Before: [3, 1, 1, 3]
+11 0 0 2
+After: [3, 1, 1, 3]
+
+Before: [3, 2, 1, 3]
+0 3 0 3
+After: [3, 2, 1, 3]
+
+Before: [1, 2, 2, 0]
+9 0 2 0
+After: [0, 2, 2, 0]
+
+Before: [3, 0, 0, 3]
+0 3 0 0
+After: [3, 0, 0, 3]
+
+Before: [1, 0, 1, 3]
+2 2 3 0
+After: [0, 0, 1, 3]
+
+Before: [0, 0, 2, 1]
+7 3 2 3
+After: [0, 0, 2, 1]
+
+Before: [1, 1, 2, 2]
+15 1 0 3
+After: [1, 1, 2, 1]
+
+Before: [2, 1, 1, 3]
+2 1 3 0
+After: [0, 1, 1, 3]
+
+Before: [0, 2, 0, 2]
+8 0 3 0
+After: [0, 2, 0, 2]
+
+Before: [3, 1, 0, 3]
+0 3 0 0
+After: [3, 1, 0, 3]
+
+Before: [2, 3, 2, 3]
+2 2 3 1
+After: [2, 0, 2, 3]
+
+Before: [2, 1, 2, 3]
+0 2 0 0
+After: [2, 1, 2, 3]
+
+Before: [2, 0, 2, 3]
+8 1 0 3
+After: [2, 0, 2, 0]
+
+Before: [1, 1, 2, 3]
+2 2 3 1
+After: [1, 0, 2, 3]
+
+Before: [0, 0, 2, 2]
+8 0 3 1
+After: [0, 0, 2, 2]
+
+Before: [1, 0, 2, 1]
+7 3 2 0
+After: [1, 0, 2, 1]
+
+Before: [1, 3, 2, 3]
+9 0 2 2
+After: [1, 3, 0, 3]
+
+Before: [1, 1, 3, 3]
+11 2 2 1
+After: [1, 1, 3, 3]
+
+Before: [1, 1, 0, 3]
+15 1 0 1
+After: [1, 1, 0, 3]
+
+Before: [2, 3, 3, 2]
+4 0 3 1
+After: [2, 1, 3, 2]
+
+Before: [2, 1, 0, 1]
+6 3 3 0
+After: [0, 1, 0, 1]
+
+Before: [1, 1, 2, 2]
+10 1 3 2
+After: [1, 1, 0, 2]
+
+Before: [2, 0, 2, 1]
+7 3 2 3
+After: [2, 0, 2, 1]
+
+Before: [2, 3, 2, 2]
+13 2 2 3
+After: [2, 3, 2, 1]
+
+Before: [0, 1, 1, 0]
+14 0 0 0
+After: [0, 1, 1, 0]
+
+Before: [0, 1, 3, 2]
+14 0 0 1
+After: [0, 0, 3, 2]
+
+Before: [0, 3, 2, 3]
+8 0 1 2
+After: [0, 3, 0, 3]
+
+Before: [2, 3, 1, 3]
+2 2 3 0
+After: [0, 3, 1, 3]
+
+Before: [0, 0, 1, 1]
+8 0 2 0
+After: [0, 0, 1, 1]
+
+Before: [0, 1, 0, 2]
+10 1 3 0
+After: [0, 1, 0, 2]
+
+Before: [2, 3, 3, 3]
+5 3 3 3
+After: [2, 3, 3, 3]
+
+Before: [0, 3, 2, 1]
+7 3 2 2
+After: [0, 3, 1, 1]
+
+Before: [1, 0, 2, 3]
+2 2 3 1
+After: [1, 0, 2, 3]
+
+Before: [2, 1, 2, 1]
+7 3 2 3
+After: [2, 1, 2, 1]
+
+Before: [3, 1, 1, 1]
+0 1 0 0
+After: [1, 1, 1, 1]
+
+Before: [2, 3, 0, 3]
+5 3 3 3
+After: [2, 3, 0, 3]
+
+Before: [2, 0, 2, 0]
+13 2 2 0
+After: [1, 0, 2, 0]
+
+Before: [3, 2, 2, 3]
+13 3 2 2
+After: [3, 2, 0, 3]
+
+Before: [2, 0, 2, 1]
+0 2 0 2
+After: [2, 0, 2, 1]
+
+Before: [3, 1, 2, 0]
+1 1 2 0
+After: [0, 1, 2, 0]
+
+Before: [1, 2, 2, 1]
+9 0 2 3
+After: [1, 2, 2, 0]
+
+Before: [3, 0, 1, 1]
+0 3 0 0
+After: [1, 0, 1, 1]
+
+Before: [3, 1, 3, 3]
+0 1 0 2
+After: [3, 1, 1, 3]
+
+Before: [0, 1, 1, 3]
+2 1 3 1
+After: [0, 0, 1, 3]
+
+Before: [0, 3, 3, 3]
+5 3 3 1
+After: [0, 3, 3, 3]
+
+Before: [3, 3, 2, 2]
+13 2 2 3
+After: [3, 3, 2, 1]
+
+Before: [1, 1, 2, 1]
+1 1 2 3
+After: [1, 1, 2, 0]
+
+Before: [1, 1, 3, 2]
+15 1 0 0
+After: [1, 1, 3, 2]
+
+Before: [1, 0, 2, 2]
+5 2 2 1
+After: [1, 2, 2, 2]
+
+Before: [2, 2, 1, 1]
+11 0 1 1
+After: [2, 1, 1, 1]
+
+Before: [0, 0, 3, 1]
+14 0 0 1
+After: [0, 0, 3, 1]
+
+Before: [2, 1, 2, 2]
+10 1 3 1
+After: [2, 0, 2, 2]
+
+Before: [0, 1, 0, 2]
+10 1 3 3
+After: [0, 1, 0, 0]
+
+Before: [3, 1, 2, 2]
+1 1 2 3
+After: [3, 1, 2, 0]
+
+Before: [1, 0, 2, 1]
+9 0 2 3
+After: [1, 0, 2, 0]
+
+Before: [2, 1, 2, 2]
+1 1 2 1
+After: [2, 0, 2, 2]
+
+Before: [2, 3, 1, 2]
+4 0 3 0
+After: [1, 3, 1, 2]
+
+Before: [2, 1, 3, 3]
+5 3 3 3
+After: [2, 1, 3, 3]
+
+Before: [2, 2, 3, 3]
+2 1 3 0
+After: [0, 2, 3, 3]
+
+Before: [1, 1, 3, 2]
+15 1 0 1
+After: [1, 1, 3, 2]
+
+Before: [2, 3, 2, 1]
+7 3 2 1
+After: [2, 1, 2, 1]
+
+Before: [1, 0, 2, 0]
+9 0 2 2
+After: [1, 0, 0, 0]
+
+Before: [3, 3, 2, 3]
+5 2 2 1
+After: [3, 2, 2, 3]
+
+Before: [3, 1, 2, 2]
+1 1 2 1
+After: [3, 0, 2, 2]
+
+Before: [0, 0, 2, 3]
+2 2 3 3
+After: [0, 0, 2, 0]
+
+Before: [3, 3, 1, 3]
+2 2 3 0
+After: [0, 3, 1, 3]
+
+Before: [2, 2, 2, 3]
+0 2 0 1
+After: [2, 2, 2, 3]
+
+Before: [3, 1, 2, 1]
+0 1 0 2
+After: [3, 1, 1, 1]
+
+Before: [3, 3, 2, 1]
+7 3 2 0
+After: [1, 3, 2, 1]
+
+Before: [0, 1, 2, 0]
+1 1 2 2
+After: [0, 1, 0, 0]
+
+Before: [0, 0, 1, 0]
+14 0 0 0
+After: [0, 0, 1, 0]
+
+Before: [0, 2, 2, 1]
+12 2 1 3
+After: [0, 2, 2, 1]
+
+Before: [3, 2, 3, 1]
+6 3 3 3
+After: [3, 2, 3, 0]
+
+Before: [1, 1, 2, 1]
+1 1 2 2
+After: [1, 1, 0, 1]
+
+Before: [2, 3, 1, 2]
+4 0 3 3
+After: [2, 3, 1, 1]
+
+Before: [2, 2, 1, 2]
+4 0 3 1
+After: [2, 1, 1, 2]
+
+Before: [2, 1, 1, 2]
+4 0 3 0
+After: [1, 1, 1, 2]
+
+
+
+9 2 0 1
+9 0 1 0
+9 3 0 3
+10 3 1 1
+8 1 1 1
+14 1 2 2
+7 2 2 1
+9 1 3 3
+9 1 2 0
+9 3 0 2
+8 3 2 3
+8 3 1 3
+14 3 1 1
+7 1 3 2
+9 1 2 3
+8 0 0 0
+0 0 2 0
+8 1 0 1
+0 1 3 1
+15 3 0 0
+8 0 3 0
+8 0 2 0
+14 2 0 2
+7 2 1 1
+9 1 2 2
+8 0 0 0
+0 0 3 0
+9 0 3 3
+1 0 2 2
+8 2 1 2
+14 2 1 1
+7 1 0 2
+8 2 0 3
+0 3 2 3
+9 2 1 0
+9 3 3 1
+4 0 3 0
+8 0 3 0
+14 0 2 2
+9 1 1 3
+9 1 2 1
+9 1 0 0
+14 1 3 0
+8 0 1 0
+14 0 2 2
+9 2 1 1
+9 2 2 0
+6 0 3 1
+8 1 2 1
+8 1 2 1
+14 1 2 2
+7 2 2 1
+9 1 0 0
+8 1 0 3
+0 3 0 3
+9 3 0 2
+12 3 2 0
+8 0 3 0
+8 0 1 0
+14 0 1 1
+9 1 2 0
+8 3 0 3
+0 3 1 3
+9 0 0 2
+8 0 2 2
+8 2 2 2
+14 1 2 1
+9 2 0 0
+8 0 0 2
+0 2 2 2
+6 0 3 0
+8 0 1 0
+8 0 3 0
+14 0 1 1
+7 1 0 3
+9 2 3 0
+9 3 3 2
+9 3 0 1
+1 1 2 2
+8 2 2 2
+14 3 2 3
+7 3 3 0
+9 0 1 2
+9 0 1 1
+9 3 1 3
+1 3 2 2
+8 2 3 2
+14 0 2 0
+7 0 0 3
+9 2 2 0
+9 1 1 1
+9 3 2 2
+13 0 2 1
+8 1 2 1
+8 1 2 1
+14 3 1 3
+7 3 0 1
+9 2 2 3
+9 0 1 2
+12 2 3 2
+8 2 1 2
+14 1 2 1
+8 1 0 2
+0 2 2 2
+9 1 2 3
+8 2 0 0
+0 0 1 0
+7 0 2 0
+8 0 3 0
+8 0 2 0
+14 1 0 1
+7 1 0 0
+8 3 0 2
+0 2 1 2
+9 1 3 1
+14 1 3 3
+8 3 1 3
+8 3 3 3
+14 0 3 0
+9 2 1 1
+9 0 1 3
+9 2 3 3
+8 3 2 3
+8 3 3 3
+14 0 3 0
+7 0 2 1
+9 1 2 3
+9 2 1 0
+6 0 3 2
+8 2 3 2
+14 1 2 1
+7 1 2 3
+9 1 1 0
+9 2 1 2
+9 3 1 1
+0 0 1 2
+8 2 2 2
+14 2 3 3
+7 3 1 0
+9 2 1 3
+8 0 0 2
+0 2 3 2
+9 0 0 1
+9 2 1 2
+8 2 3 2
+8 2 3 2
+14 0 2 0
+7 0 1 2
+9 1 2 3
+9 2 3 1
+9 3 2 0
+10 0 1 0
+8 0 2 0
+14 2 0 2
+7 2 0 3
+8 2 0 2
+0 2 3 2
+9 2 1 0
+8 1 0 1
+0 1 3 1
+10 1 0 1
+8 1 2 1
+8 1 3 1
+14 1 3 3
+7 3 2 0
+9 1 0 1
+9 1 3 3
+9 2 3 1
+8 1 2 1
+14 1 0 0
+7 0 3 2
+9 2 3 0
+9 3 0 3
+9 2 1 1
+10 3 0 1
+8 1 3 1
+14 2 1 2
+7 2 0 0
+9 3 0 2
+9 3 0 1
+9 2 1 3
+10 1 3 3
+8 3 2 3
+14 3 0 0
+7 0 0 2
+9 1 3 3
+9 2 0 0
+9 1 1 1
+6 0 3 0
+8 0 1 0
+14 0 2 2
+7 2 0 3
+8 2 0 0
+0 0 1 0
+9 2 0 2
+9 2 3 1
+7 0 2 0
+8 0 2 0
+14 0 3 3
+9 3 2 1
+9 1 0 2
+9 1 0 0
+0 0 1 0
+8 0 2 0
+14 3 0 3
+7 3 3 1
+9 2 2 3
+9 2 0 2
+9 1 3 0
+7 0 2 3
+8 3 3 3
+8 3 2 3
+14 1 3 1
+9 0 3 2
+9 3 3 3
+8 0 2 3
+8 3 2 3
+8 3 2 3
+14 3 1 1
+8 1 0 0
+0 0 0 0
+9 1 3 3
+9 3 0 2
+8 3 2 2
+8 2 2 2
+14 1 2 1
+7 1 0 2
+9 2 0 0
+9 0 2 1
+9 2 1 3
+5 0 3 3
+8 3 1 3
+8 3 3 3
+14 2 3 2
+9 1 2 3
+9 1 0 1
+15 3 0 0
+8 0 2 0
+14 0 2 2
+7 2 0 0
+9 1 2 2
+9 2 0 3
+15 1 3 2
+8 2 1 2
+14 2 0 0
+9 0 0 3
+8 3 0 2
+0 2 2 2
+9 0 1 1
+5 2 3 1
+8 1 1 1
+8 1 3 1
+14 0 1 0
+9 3 2 2
+9 3 0 1
+9 2 2 3
+1 1 2 2
+8 2 3 2
+14 2 0 0
+7 0 1 3
+9 2 3 2
+9 2 2 0
+11 0 1 2
+8 2 1 2
+14 3 2 3
+7 3 0 1
+9 2 3 2
+9 1 1 0
+9 3 3 3
+7 0 2 3
+8 3 1 3
+14 1 3 1
+9 3 3 2
+8 1 0 3
+0 3 3 3
+8 3 0 0
+0 0 2 0
+13 0 2 2
+8 2 2 2
+8 2 2 2
+14 1 2 1
+9 2 2 2
+9 1 3 3
+6 0 3 2
+8 2 3 2
+14 1 2 1
+7 1 0 2
+9 3 3 1
+9 1 0 0
+0 3 1 1
+8 1 3 1
+14 2 1 2
+7 2 1 1
+9 2 1 0
+8 3 0 3
+0 3 3 3
+9 3 3 2
+3 0 2 2
+8 2 1 2
+8 2 1 2
+14 2 1 1
+7 1 2 2
+8 2 0 3
+0 3 1 3
+9 0 1 1
+6 0 3 1
+8 1 1 1
+14 2 1 2
+9 0 3 1
+9 3 2 0
+9 2 3 3
+10 0 3 1
+8 1 2 1
+8 1 2 1
+14 2 1 2
+7 2 3 3
+9 0 1 2
+9 1 0 0
+9 3 3 1
+8 0 2 1
+8 1 1 1
+14 3 1 3
+7 3 1 2
+9 2 0 1
+9 0 2 3
+9 2 3 0
+5 1 3 1
+8 1 3 1
+8 1 1 1
+14 1 2 2
+7 2 0 1
+9 3 2 0
+8 0 0 2
+0 2 0 2
+9 3 2 3
+13 2 0 0
+8 0 3 0
+14 1 0 1
+8 3 0 2
+0 2 2 2
+8 1 0 0
+0 0 1 0
+7 0 2 2
+8 2 3 2
+8 2 1 2
+14 1 2 1
+7 1 2 2
+9 0 0 3
+8 2 0 1
+0 1 1 1
+14 0 0 0
+8 0 2 0
+14 2 0 2
+7 2 3 3
+8 2 0 0
+0 0 3 0
+8 0 0 1
+0 1 3 1
+9 0 0 2
+1 0 2 0
+8 0 1 0
+14 0 3 3
+7 3 2 1
+9 1 2 3
+9 2 1 0
+6 0 3 0
+8 0 2 0
+8 0 3 0
+14 0 1 1
+7 1 0 3
+9 2 0 2
+9 1 1 0
+8 2 0 1
+0 1 2 1
+7 0 2 1
+8 1 2 1
+8 1 3 1
+14 3 1 3
+9 1 1 1
+7 0 2 1
+8 1 1 1
+14 1 3 3
+7 3 3 2
+9 2 0 3
+9 3 1 1
+0 0 1 0
+8 0 1 0
+14 2 0 2
+7 2 0 3
+8 0 0 2
+0 2 1 2
+9 2 0 0
+1 1 2 1
+8 1 1 1
+14 1 3 3
+7 3 1 2
+9 1 2 1
+9 2 0 3
+15 1 3 0
+8 0 2 0
+14 0 2 2
+9 3 2 3
+9 2 0 0
+9 3 2 1
+11 0 1 0
+8 0 3 0
+14 0 2 2
+7 2 3 3
+9 3 1 0
+9 3 3 2
+9 1 2 1
+8 1 2 1
+8 1 1 1
+8 1 3 1
+14 3 1 3
+7 3 0 0
+9 2 2 2
+8 1 0 3
+0 3 0 3
+9 0 2 1
+2 3 2 1
+8 1 1 1
+14 1 0 0
+7 0 0 1
+9 2 1 0
+9 3 2 2
+12 3 2 2
+8 2 3 2
+14 2 1 1
+7 1 0 2
+8 0 0 1
+0 1 3 1
+9 2 3 3
+10 1 3 1
+8 1 2 1
+14 1 2 2
+7 2 2 1
+9 1 0 2
+5 0 3 0
+8 0 1 0
+14 0 1 1
+7 1 3 3
+9 3 3 2
+9 2 0 0
+9 3 1 1
+13 0 2 2
+8 2 3 2
+8 2 1 2
+14 3 2 3
+9 3 3 2
+8 2 0 1
+0 1 0 1
+3 0 2 1
+8 1 3 1
+8 1 3 1
+14 1 3 3
+7 3 2 1
+9 1 3 3
+13 0 2 2
+8 2 2 2
+14 2 1 1
+7 1 2 0
+9 2 1 3
+9 1 0 1
+9 2 0 2
+5 2 3 3
+8 3 1 3
+14 0 3 0
+8 1 0 3
+0 3 2 3
+9 3 1 1
+10 1 3 1
+8 1 3 1
+8 1 1 1
+14 0 1 0
+9 3 3 1
+9 3 2 3
+11 2 1 1
+8 1 2 1
+8 1 1 1
+14 1 0 0
+7 0 0 1
+9 0 2 2
+8 2 0 0
+0 0 3 0
+8 1 0 3
+0 3 2 3
+13 2 0 3
+8 3 3 3
+14 3 1 1
+9 1 1 2
+8 1 0 3
+0 3 1 3
+14 3 3 3
+8 3 3 3
+14 3 1 1
+7 1 3 3
+9 3 0 2
+9 1 0 1
+9 2 1 0
+8 0 1 0
+8 0 2 0
+14 0 3 3
+7 3 3 2
+8 3 0 0
+0 0 2 0
+8 3 0 1
+0 1 3 1
+9 1 1 3
+6 0 3 0
+8 0 2 0
+14 2 0 2
+9 1 0 1
+9 2 1 3
+9 0 2 0
+15 1 3 1
+8 1 3 1
+14 2 1 2
+7 2 3 1
+9 1 3 0
+9 3 1 2
+9 0 0 3
+12 3 2 3
+8 3 1 3
+14 3 1 1
+7 1 1 2
+9 1 1 3
+9 2 3 0
+9 0 1 1
+15 3 0 0
+8 0 2 0
+14 0 2 2
+7 2 3 0
+8 1 0 1
+0 1 2 1
+9 0 2 3
+9 2 2 2
+2 3 2 3
+8 3 3 3
+14 0 3 0
+7 0 0 2
+9 3 3 0
+9 2 2 3
+3 1 0 1
+8 1 1 1
+14 1 2 2
+9 0 1 1
+10 0 3 0
+8 0 1 0
+8 0 2 0
+14 0 2 2
+8 3 0 0
+0 0 2 0
+4 0 3 3
+8 3 3 3
+14 3 2 2
+7 2 3 0
+8 0 0 3
+0 3 1 3
+9 3 2 1
+9 2 0 2
+14 3 3 1
+8 1 3 1
+14 1 0 0
+7 0 1 2
+9 1 0 0
+9 2 0 3
+9 3 0 1
+10 1 3 3
+8 3 2 3
+14 2 3 2
+7 2 2 1
+8 3 0 3
+0 3 0 3
+9 2 1 2
+8 3 0 0
+0 0 3 0
+11 2 0 3
+8 3 1 3
+8 3 1 3
+14 1 3 1
+9 1 0 3
+9 3 2 2
+9 2 0 0
+13 0 2 3
+8 3 2 3
+14 3 1 1
+8 3 0 3
+0 3 3 3
+8 0 0 0
+0 0 1 0
+8 0 2 0
+8 0 3 0
+14 1 0 1
+7 1 1 3
+9 1 3 1
+9 2 1 0
+13 0 2 0
+8 0 2 0
+8 0 2 0
+14 3 0 3
+7 3 3 0
+8 0 0 3
+0 3 3 3
+9 0 2 1
+1 3 2 2
+8 2 2 2
+14 2 0 0
+9 3 2 2
+9 3 1 1
+1 3 2 1
+8 1 3 1
+8 1 1 1
+14 1 0 0
+7 0 2 2
+9 3 3 1
+9 1 2 0
+9 1 0 3
+0 0 1 1
+8 1 3 1
+14 2 1 2
+7 2 3 1
+8 3 0 2
+0 2 3 2
+8 3 0 0
+0 0 2 0
+9 2 1 3
+4 0 3 0
+8 0 1 0
+14 0 1 1
+9 3 1 3
+9 2 3 2
+9 2 0 0
+10 3 0 0
+8 0 3 0
+14 1 0 1
+8 0 0 3
+0 3 0 3
+9 1 0 0
+7 0 2 2
+8 2 1 2
+14 1 2 1
+9 3 0 0
+8 2 0 2
+0 2 0 2
+13 2 0 2
+8 2 3 2
+14 1 2 1
+9 3 0 2
+9 2 2 3
+9 2 2 0
+3 0 2 3
+8 3 2 3
+14 3 1 1
+7 1 2 2
+9 2 0 3
+8 1 0 1
+0 1 1 1
+4 0 3 3
+8 3 3 3
+8 3 1 3
+14 3 2 2
+7 2 2 1
+9 3 0 0
+8 0 0 2
+0 2 0 2
+9 2 1 3
+13 2 0 2
+8 2 3 2
+14 1 2 1
+7 1 1 2
+9 0 1 1
+9 1 0 0
+8 3 0 3
+0 3 3 3
+0 0 1 1
+8 1 1 1
+14 1 2 2
+7 2 3 1
+9 2 3 0
+9 2 1 3
+9 2 0 2
+4 0 3 3
+8 3 3 3
+14 1 3 1
+9 1 1 3
+8 1 0 2
+0 2 0 2
+6 0 3 3
+8 3 3 3
+14 3 1 1
+7 1 1 3
+9 1 2 0
+9 3 0 1
+9 3 1 2
+0 0 1 0
+8 0 1 0
+14 0 3 3
+7 3 3 1
+8 1 0 0
+0 0 1 0
+9 2 2 3
+9 2 0 2
+7 0 2 0
+8 0 2 0
+14 0 1 1
+7 1 0 2
+9 1 0 3
+9 2 1 1
+9 1 1 0
+14 0 0 1
+8 1 1 1
+8 1 2 1
+14 1 2 2
+7 2 1 3
+9 2 3 0
+9 3 1 2
+9 2 3 1
+13 0 2 0
+8 0 3 0
+14 3 0 3
+7 3 0 2
+9 3 1 1
+9 1 0 3
+9 2 2 0
+11 0 1 3
+8 3 1 3
+14 2 3 2
+7 2 2 1
+8 2 0 0
+0 0 1 0
+9 2 1 2
+9 1 3 3
+7 0 2 3
+8 3 3 3
+14 3 1 1
+7 1 2 0
+9 0 1 3
+9 1 1 1
+2 3 2 2
+8 2 1 2
+14 2 0 0
+7 0 3 3
+9 3 0 1
+9 1 3 0
+8 3 0 2
+0 2 2 2
+0 0 1 1
+8 1 2 1
+14 1 3 3
+7 3 1 2
+9 2 1 1
+9 1 2 3
+9 2 1 0
+6 0 3 0
+8 0 1 0
+8 0 3 0
+14 0 2 2
+9 2 1 3
+9 1 3 1
+9 2 1 0
+4 0 3 1
+8 1 3 1
+8 1 1 1
+14 1 2 2
+7 2 3 1
+9 1 3 2
+9 3 3 0
+9 0 2 3
+9 2 0 2
+8 2 1 2
+14 2 1 1
+9 3 2 3
+8 1 0 2
+0 2 0 2
+9 2 2 0
+10 3 0 3
+8 3 2 3
+14 1 3 1
+9 0 1 3
+9 2 1 2
+2 3 2 0
+8 0 2 0
+14 1 0 1
+7 1 0 3
+9 3 0 0
+9 0 3 1
+11 2 0 0
+8 0 2 0
+14 3 0 3
+9 3 3 2
+9 3 2 0
+9 2 1 1
+1 0 2 0
+8 0 3 0
+14 3 0 3
+7 3 0 2
+8 1 0 0
+0 0 2 0
+9 1 0 3
+8 0 0 1
+0 1 0 1
+6 0 3 3
+8 3 2 3
+8 3 1 3
+14 3 2 2
+7 2 0 3
+9 3 2 2
+13 0 2 2
+8 2 1 2
+14 3 2 3
+7 3 3 1
+8 0 0 3
+0 3 1 3
+9 3 1 0
+9 2 0 2
+11 2 0 3
+8 3 1 3
+14 3 1 1
+9 0 1 3
+9 0 1 0
+2 3 2 2
+8 2 2 2
+8 2 2 2
+14 2 1 1
+7 1 3 3
+9 0 2 2
+9 3 1 1
+1 1 2 2
+8 2 3 2
+14 2 3 3
+7 3 3 0
\ No newline at end of file