@0
A: MOV ACC, RIGHT
MOV ACC, RIGHT
SUB 14
JEZ B
ADD 15
JMP A
B: MOV 14, ACC
C: MOV ACC, RIGHT
MOV ACC, RIGHT
SUB 1
JLZ D
JMP C
D: MOV ACC, RIGHT
ADD 1
JMP A

@1
L: MOV LEFT, ACC
JLZ E
SAV
MOV RIGHT, ACC
SUB LEFT
JLZ S
SWP
MOV ACC, DOWN
MOV RIGHT, NIL
JMP L
S: MOV RIGHT, ACC
MOV ACC, DOWN
JMP L
E: MOV ACC, DOWN
JMP L

@2
O: MOV DOWN, ACC
SAV
MOV 30, ACC
S: SWP
MOV ACC, LEFT
MOV ACC, LEFT
SWP
SUB 1
JNZ S
JMP O

@5
A: MOV UP, ACC
JLZ E
JEZ V
P: SUB 2
JEZ V
JGZ P
MOV 0, DOWN
JMP A
V: MOV 3, DOWN
JMP A
E: MOV -1, DOWN
JMP A

@6
MOV 0, ACC
A: MOV ACC, UP
ADD 1
SUB 9
JEZ B
ADD 9
JMP A
B: MOV 8, ACC
C: MOV ACC, UP
SUB 1
JLZ D
JMP C
D: MOV 0, ACC
JMP A

@9
O: MOV 0, DOWN
MOV ACC, DOWN
I: MOV UP, ACC
JLZ E
MOV ACC, DOWN
JMP I
E: MOV -1, DOWN
SWP
ADD 1
SAV
SUB 18
JEZ H
ADD 18
JMP O
H: JMP H
