@1
S: MOV -1, RIGHT
RD: MOV UP, ACC
JLZ END
MOV ACC, RIGHT
MOV ACC, DOWN
JMP RD
END: MOV ACC, DOWN
MOV DOWN, NIL
JMP S

@3
INIT: MOV 999, ACC
SAV
RD: MOV RIGHT, ACC
JLZ END
MOV ACC, RIGHT
SWP
SUB RIGHT
JGZ N
ADD RIGHT
SWP
JMP RD
N: MOV RIGHT, NIL
JMP RD
END: SWP
MOV ACC, RIGHT

@4
V: MOV UP, ACC
JLZ M
MOV ACC, LEFT
MOV LEFT, ACC
MOV ACC, LEFT
MOV ACC, LEFT
JMP V
M: MOV ACC, LEFT
MOV LEFT, ACC
MOV ACC, RIGHT
MOV RIGHT, UP
JMP V

@5
S: MOV LEFT, ACC
MOV ACC, DOWN
MOV -1, RIGHT
T: MOV UP, ACC
JLZ F
MOV ACC, RIGHT
JMP T
F: MOV RIGHT, ACC
JLZ E
MOV ACC, DOWN
JMP F
E: MOV ACC, DOWN
MOV 0, LEFT
JMP S

@7
M: MOV UP, ACC
SAV
R: MOV UP, ACC
JLZ E
MOV ACC, RIGHT
SWP
MOV ACC, RIGHT
SWP
SUB RIGHT
MOV RIGHT, NIL
MOV ACC, DOWN
JMP R
E: MOV ACC, DOWN

@8
MOV LEFT, ACC
SAV
MOV LEFT, ACC
MOV ACC, LEFT
SWP
MOV ACC, LEFT
