@0
S: MOV UP, ACC
JEZ T
SWP
ADD 1
SWP
MOV ACC, RIGHT
JMP S
T: SWP
NEG
MOV ACC, RIGHT

@1
D: MOV DOWN, ACC
SAV
SUB UP
MOV ACC, DOWN
SWP
A: MOV DOWN, ACC
MOV UP, ACC
ADD 1
MOV ACC, DOWN
SWP
JMP D

@3
MOV 0, DOWN
L: MOV UP, ACC
JLZ E
MOV ACC, DOWN
MOV ACC, RIGHT
JMP L
E: MOV ACC, RIGHT
MOV ACC, UP
M: MOV DOWN, ACC
JEZ B
MOV ACC, UP
MOV ACC, RIGHT
JMP M
B: MOV -1, RIGHT

@4
C: MOV LEFT, ACC
JLZ H
SWP
SUB 1
JEZ P
SWP
JMP C
P: SWP
MOV ACC, DOWN
JMP C
H: NEG
MOV ACC, UP
Q: MOV UP, ACC
SWP

@7
MOV UP, DOWN
