@0
MOV UP ACC
MOV ACC DOWN
SUB 2
MOV ACC DOWN

@1
L:JRO DOWN
JMP A
SWP
MOV ACC DOWN
MOV DOWN ACC
SWP
JMP L
A:MOV ACC DOWN
MOV DOWN ACC

@2
JMP A
L:MOV -1 RIGHT
A:MOV UP RIGHT
MOV UP ACC
SAV
F:SUB 1
JLZ X
MOV 1 RIGHT
JMP F
X:MOV 7 RIGHT
SWP
R:SUB 1
JLZ L
MOV 4 RIGHT
JMP R

@3
MOV 15 ACC
I:MOV 0 UP
SUB 1
JNZ I
S:MOV LEFT RIGHT
L:JRO LEFT
MOV ACC DOWN
MOV UP ACC
JMP L
MOV ACC UP
MOV DOWN ACC
JMP L
MOV ACC RIGHT
MOV RIGHT ACC
JMP L

@4
L:MOV LEFT ACC
SAV
SUB 1
JGZ N
ADD 2
MOV ACC UP
MOV LEFT LEFT
N:MOV ANY ACC
SUB 4
JEZ O
ADD 5
O:MOV ACC LAST
MOV ACC DOWN
SWP
MOV ACC DOWN

@6
MOV UP ACC
MOV 0 DOWN
MOV UP DOWN
SAV
MOV 6 ACC
L:SWP
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
SWP
SUB 1
JNZ L
MOV -1 DOWN
