@1
START: MOV UP, ACC
LOOP: SUB 1
JEZ DONE
ADD 1
SAV
MOV ACC, DOWN
MOV DOWN, ACC
JGZ LOOP
SWP
JMP LOOP
DONE: MOV 0, DOWN

@3
INC: ADD 1
L: JRO RIGHT
M: MOV ACC, RIGHT
RESET: MOV 1, ACC
JMP L
F: MOV -1, RIGHT
JMP RESET

@4
S: MOV UP, ACC
MOV ACC, RIGHT
JEZ S
DIV: SUB RIGHT
JLZ FAIL
JEZ MATCH
MOV -1, LEFT
MOV -1, RIGHT
JMP DIV
MATCH: MOV 1, LEFT
MOV 1, RIGHT
JMP RET
FAIL: MOV 4, LEFT
MOV 3, RIGHT
RET: MOV LEFT, UP

@5
RESET: MOV 2, ACC
L: SAV
MOV ANY, ACC
JEZ DO_R
SWP
K: MOV ACC, LEFT
JRO LEFT
MOV ACC, DOWN
JMP L
ADD 1
JMP L
DO_R: MOV 0, DOWN

@8
MOV ANY, DOWN

@9
MOV UP, LEFT
