@0
K: SAV
L: MOV RIGHT, ACC
JGZ K
JLZ F
SWP
F: MOV ACC, DOWN

@1
S: MOV UP, ACC
T: MOV ACC, LEFT
NEG
SUB 3
M: ADD 4
MOV ACC, RIGHT
JLZ M
JEZ Z
SUB 2
JEZ O
MOV -2, LEFT
MOV RIGHT, ACC
JMP T
Z: MOV 2, RIGHT
O: MOV RIGHT, LEFT

@2
ADD 2
JRO LEFT
JMP B
MOV 3, ACC
SUB 3
JMP A
B: SUB 2
A: MOV ACC, LEFT
MOV 0, ACC

@3
S: MOV UP, ACC
JLZ F
T: MOV ACC, RIGHT
M: SUB 3
SWP
ADD 1
SWP
JGZ M
JLZ N
MOV -3, RIGHT
SWP
JMP T
N: MOV 0, ACC
SAV
F: MOV ACC, RIGHT

@4
K: SAV
L: MOV LEFT, ACC
JGZ K
JLZ F
SWP
F: MOV ACC, RIGHT

@5
S: MOV LEFT, ACC
JLZ F
T: MOV ACC, RIGHT
M: SUB 5
SWP
ADD 1
SWP
JGZ M
JLZ N
MOV -5, RIGHT
SWP
JMP T
N: MOV 0, ACC
SAV
F: MOV ACC, RIGHT

@6
K: SAV
L: MOV LEFT, ACC
JGZ K
JLZ F
SWP
F: MOV ACC, DOWN

@8
L: MOV RIGHT, ACC
JLZ F
SUB 1
JEZ Z
ADD 1
MOV ACC, DOWN
Z: MOV 0, DOWN
JMP L
F: NEG
MOV ACC, DOWN

@9
K: SAV
L: MOV RIGHT, ACC
JGZ K
JLZ F
SWP
F: MOV ACC, LEFT

@10
S: MOV UP, ACC
JLZ F
T: MOV ACC, LEFT
M: SUB 7
SWP
ADD 1
SWP
JGZ M
JLZ N
MOV -7, LEFT
SWP
JMP T
N: MOV 0, ACC
SAV
F: MOV ACC, LEFT
