@0
MOV RIGHT, ACC
MOV ACC, DOWN
MOV ACC, DOWN

@1
MOV UP, ACC
MOV ACC, DOWN
MOV ACC, LEFT

@3
S: MOV 999, ACC
L: SAV
SUB UP
JGZ N
ADD UP
JMP L
N: MOV UP, ACC
JLZ E
JMP L
E: SWP
NEG
MOV ACC, RIGHT

@4
L: MOV UP, ACC
MOV ACC, RIGHT
JGZ L
JEZ L
MOV LEFT, RIGHT

@5
S: MOV -1, UP
L: MOV LEFT, ACC
JLZ D
MOV ACC, UP
JMP L
D: MOV DOWN, NIL
MOV -1, RIGHT
P: MOV UP, ACC
JLZ F
MOV ACC, RIGHT
MOV UP, ACC
JLZ F
MOV ACC, RIGHT
JMP P
F: MOV LEFT, DOWN

@7
S: MOV ACC, UP
MOV UP, ACC
MOV ACC, RIGHT
L: SAV
ADD RIGHT
JLZ E
MOV ACC, DOWN
SWP
SAV
ADD RIGHT
JLZ E
MOV ACC, DOWN
SWP
JMP L
E: MOV -1, DOWN

@8
S: MOV LEFT, NIL
L: MOV UP, ACC
MOV ACC, LEFT
JGZ L
JEZ L
