Taddeus Kroes пре 7 година
родитељ
комит
6b4c1db156
2 измењених фајлова са 4100 додато и 0 уклоњено
  1. 59 0
      16_instructions.py
  2. 4041 0
      input/16

+ 59 - 0
16_instructions.py

@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+import sys
+from collections import defaultdict
+
+isa = {
+    'addr': lambda a, b, reg: reg[a] + reg[b],
+    'addi': lambda a, b, reg: reg[a] + b,
+    'mulr': lambda a, b, reg: reg[a] * reg[b],
+    'muli': lambda a, b, reg: reg[a] * b,
+    'banr': lambda a, b, reg: reg[a] & reg[b],
+    'bani': lambda a, b, reg: reg[a] & b,
+    'borr': lambda a, b, reg: reg[a] | reg[b],
+    'bori': lambda a, b, reg: reg[a] | b,
+    'setr': lambda a, b, reg: reg[a],
+    'seti': lambda a, b, reg: a,
+    'gtir': lambda a, b, reg: int(a > reg[b]),
+    'gtri': lambda a, b, reg: int(reg[a] > b),
+    'gtrr': lambda a, b, reg: int(reg[a] > reg[b]),
+    'eqir': lambda a, b, reg: int(a == reg[b]),
+    'eqri': lambda a, b, reg: int(reg[a] == b),
+    'eqrr': lambda a, b, reg: int(reg[a] == reg[b]),
+}
+
+def run(exe, a, b, reg):
+    reg = list(reg)
+    reg[out] = exe(a, b, reg)
+    return tuple(reg)
+
+# part 1
+effects, program = sys.stdin.read().rstrip().split('\n\n\n\n')
+opcodes = [set(isa.keys()) for i in range(len(isa))]
+three = 0
+
+for effect in effects.split('\n\n'):
+    before, inst, after = effect.split('\n')
+    reg = tuple(map(int, before[9:-1].split(', ')))
+    opcode, a, b, out = map(int, inst.split())
+    expect = tuple(map(int, after[9:-1].split(', ')))
+    mnems = set(mnem for mnem, exe in isa.items() if run(exe, a, b, reg) == expect)
+    opcodes[opcode] &= mnems
+    three += int(len(mnems) >= 3)
+
+print(three)
+
+# part 2
+while sum(map(len, opcodes)) > len(isa):
+    for opcode, mnems in enumerate(opcodes):
+        if len(mnems) == 1:
+            certain = next(iter(mnems))
+            for other, mnems in enumerate(opcodes):
+                if other != opcode:
+                    mnems.discard(certain)
+opcodes = [next(iter(mnems)) for mnems in opcodes]
+
+reg = [0, 0, 0, 0]
+for inst in program.split('\n'):
+    opcode, a, b, out = map(int, inst.split())
+    reg[out] = isa[opcodes[opcode]](a, b, reg)
+print(reg[0])

+ 4041 - 0
input/16

@@ -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