@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
JEZ E
N: MOV 3, RIGHT
ADD 1
JLZ N
JMP E
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, DOWN
MOV 5, DOWN

@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
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
