@0
L: SWP
SUB 1
SWP
MOV UP, ACC
MOV ACC, RIGHT
JNZ L
SWP
MOV ACC, DOWN

@1
MOV UP, DOWN

@2
MOV UP, RIGHT

@3
MOV LEFT, ACC
M: MOV UP, DOWN
ADD 1
JNZ M
P: MOV DOWN, RIGHT
MOV RIGHT, ACC
JLZ M
JEZ P
N: MOV DOWN, UP
SUB 1
JEZ P
MOV DOWN, UP
SUB 1
JNZ N
JMP P

@4
L: MOV LEFT, DOWN
MOV UP, ACC
SUB RIGHT
MOV ACC, LEFT
MOV ACC, RIGHT
JMP L

@5
L: MOV ACC, LEFT
ADD LEFT
JMP L

@7
MOV UP, LEFT
L: MOV UP, ACC
MOV ACC, DOWN
MOV ACC, LEFT
JMP L
