@0
S:MOV 999 ACC
L:SAV
SUB RIGHT
JGZ U
ADD RIGHT
JMP L
U:MOV RIGHT ACC
JNZ L
SWP
MOV ACC RIGHT

@1
L:MOV UP ACC
MOV ACC LEFT
MOV ACC LEFT
MOV ACC DOWN
JNZ L
MOV LEFT ACC
MOV ACC DOWN
ADD ACC
ADD 1
MOV ACC DOWN

@3
S:MOV UP ACC
JNZ N
MOV -999 DOWN
MOV UP ACC
MOV UP DOWN
ADD 2
L:MOV ACC DOWN
ADD 1
MOV ACC DOWN
ADD 1
JRO DOWN
JMP L
N:MOV ACC DOWN

@5
S:MOV 0 ACC
L:SUB UP
JLZ L
SUB 999
ADD UP
K:ADD UP
JGZ A
ADD UP
JGZ B
MOV 1 UP
JMP K
A:MOV UP NIL
B:MOV -999 UP
MOV ACC DOWN
