@0
MOV 15, ACC
L: MOV 0, RIGHT
SUB 1
JGZ L
M: MOV UP, ACC
SAV
SUB 3
JGZ K
MOV 0, ACC
K: MOV ACC, DOWN
MOV ACC, DOWN
SWP
MOV ACC, DOWN
JMP M

@1


@2
NEG
ADD UP
JGZ P
N: JEZ E
MOV 3, RIGHT
ADD 1
JMP N
P: MOV 1, RIGHT
SUB 1
JGZ P
E: MOV 5, RIGHT
MOV UP, ACC
MOV UP, RIGHT

@3
L: JRO LEFT
MOV UP, DOWN
JMP L
MOV DOWN, UP
JMP L
MOV LEFT, ACC
MOV ACC, RIGHT
SUB 3
JLZ L
MOV UP, ACC
SUB 4
JEZ Z
ADD 5
Z: MOV ACC, RIGHT
MOV ACC, UP

@4
S: MOV LEFT, ACC
MOV 1, DOWN
MOV ACC, DOWN
SUB 3
JLZ SP
MOV LEFT, DOWN
JMP T
SP: NEG
MOV ACC, RIGHT
MOV RIGHT, DOWN
MOV ACC, RIGHT
T: MOV 5, ACC
L: MOV 5, DOWN
SUB 1
JGZ L

@5
S: JRO LEFT
JMP I
JMP W
MOV 0, DOWN
MOV DOWN, LEFT
MOV LEFT, NIL
JMP S
W: SWP
I: SUB 4
JEZ Z
ADD 5
Z: MOV ACC, LEFT
JRO LEFT
JMP S
SWP

@6
S: JRO UP
MOV -1, DOWN
MOV 0, DOWN
MOV UP, DOWN
MOV UP, ACC
MOV ACC, DOWN
MOV ACC, DOWN
MOV ACC, DOWN
MOV ACC, DOWN
MOV ACC, DOWN

@7
SUB 4
JEZ Z
ADD 5
Z: MOV UP, NIL
MOV ACC, UP
