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

@1
S: MOV -1, RIGHT
L: MOV UP, ACC
MOV ACC, LEFT
JLZ W
MOV ACC, RIGHT
JMP L
W: MOV DOWN, NIL

@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
MOV ACC, RIGHT

@4
MOV LEFT, RIGHT
MOV RIGHT, UP

@5
D: MOV LEFT, DOWN
MOV -1, RIGHT
P: MOV UP, ACC
JLZ G
MOV ACC, RIGHT
JMP P
G: MOV ACC, LEFT
Q: MOV RIGHT, ACC
MOV ACC, DOWN
JGZ Q
JEZ Q

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