@0
MOV RIGHT ACC
MOV RIGHT NIL
C:MOV -4 DOWN
L:SAV
SUB RIGHT
JGZ N
MOV RIGHT NIL
SWP
JMP C
N:MOV RIGHT ACC
JNZ C
SWP
MOV 1 DOWN
MOV ACC DOWN

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

@3
L:ADD UP
SWP
ADD 1
SWP
JRO LEFT
MOV LEFT DOWN
MOV ACC DOWN
SWP
MOV ACC DOWN
MOV 0 ACC
SAV

@4
I:MOV RIGHT ACC
G:MOV ACC RIGHT
ADD 1
JRO RIGHT
JMP I
JMP G

@5
MOV UP LEFT
MOV UP ACC
NEG
SWP
MOV UP ACC
G:SWP
ADD LEFT
SWP
MOV ACC LEFT
SUB 1
JNZ G
SWP
MOV ACC DOWN
