@0
MOV RIGHT,ACC
MOV ACC,DOWN
F: MOV RIGHT,ACC
JLZ G
MOV ACC,DOWN
JMP F
G: MOV RIGHT,ACC
JEZ D
P: MOV 3,DOWN
SUB 1
JEZ D
MOV 0,DOWN
SUB 1
JNZ P
D: MOV -1,DOWN

@1
S: MOV RIGHT,ACC
MOV ACC,LEFT
MOV 0,LEFT
SWP
MOV ACC,LEFT
ADD 1
SWP
MOV -1,LEFT
MOV ACC,LEFT

@2
A: MOV ACC,LEFT
MOV ACC,DOWN
ADD 1
SUB 9
JEZ P
ADD 9
JMP A
P: MOV 8,ACC
D: MOV ACC,LEFT
MOV ACC,DOWN
SUB 1
JLZ E
JMP D
E: JMP E

@4
MOV UP,ACC
SAV
F: MOV UP,ACC
JLZ G
MOV ACC,RIGHT
JMP F
G: SWP
MOV ACC,DOWN
MOV ACC,DOWN
MOV DOWN,ACC
H: MOV DOWN,RIGHT
MOV DOWN,RIGHT
SUB 1
JNZ H
E: MOV -1,RIGHT

@5
F: MOV LEFT,ACC
JLZ G
MOV ACC,DOWN
JMP F
G: MOV RIGHT,ACC
JLZ E
MOV ACC,DOWN
JMP G
E: MOV -2,DOWN

@6
MOV UP,ACC
MOV ACC,DOWN
MOV ACC,DOWN
F: MOV DOWN,ACC
JLZ D
MOV ACC,LEFT
NEG
ADD 3
MOV ACC,LEFT
JMP F
D: MOV -1,LEFT

@7
MOV RIGHT,ACC
JEZ V
MOV 3,ACC
V: SAV
MOV RIGHT,ACC
L: SWP
MOV ACC,RIGHT
MOV ACC,RIGHT
SWP
SUB 1
JNZ L

@8
MOV UP,ACC
Q: SUB 2
JGZ Q
ADD 1
MOV ACC,LEFT
MOV UP,ACC
NEG
ADD 15
MOV ACC,LEFT
MOV ACC,UP
L: MOV LEFT,UP
MOV LEFT,UP
SUB 1
JNZ L

@9
MOV UP,DOWN

@10
MOV UP,ACC
Q: SUB 2
JGZ Q
JEZ S
MOV 3,ACC
S: SAV
MOV UP,ACC
JEZ D
L: SWP
MOV ACC,UP
SWP
SUB 2
JGZ L
D: MOV -1,UP
