@0
L: MOV UP, ACC
JEZ END
SUB 3
JNZ P
SWP
ADD 1
SWP
JMP L
END: MOV 0, DOWN
SWP
MOV ACC, DOWN
JMP L
P: MOV ACC, DOWN

@1
L: MOV RIGHT, ACC
JEZ END
ADD 1
JNZ P
SWP
ADD 1
SWP
JMP L
END: MOV 1, DOWN
SWP
MOV ACC, RIGHT
JMP L
P: MOV -1, DOWN

@2
L: MOV UP, ACC
JGZ R
MOV ACC, LEFT
JEZ E
JMP L
R: MOV ACC, RIGHT
JMP L
E: MOV 0, RIGHT
MOV LEFT, DOWN
MOV UP, DOWN
MOV RIGHT, DOWN
MOV RIGHT, DOWN

@3
L: MOV LEFT, ACC
JEZ END
SUB 1
JNZ P
SWP
ADD 1
SWP
JMP L
END: MOV 1, DOWN
SWP
MOV ACC, LEFT
MOV DOWN, LEFT
JMP L
P: MOV -1, DOWN

@4
MOV -1, ACC
L: ADD 1
JRO UP
MOV ACC, RIGHT
ADD RIGHT
MOV ACC, RIGHT
ADD RIGHT
MOV ACC, RIGHT
ADD RIGHT
MOV ACC, RIGHT
MOV RIGHT, NIL

@5
MOV 1, ACC
SAV
L: MOV UP, ACC
SUB LEFT
JGZ GT
MOV 0, LEFT
MOV RIGHT, NIL
JLZ LT
JMP S
GT: MOV ACC, LEFT
MOV RIGHT, ACC
S: SAV
LT: JRO RIGHT
SWP
MOV ACC, DOWN

@6
MOV -1, ACC
L: ADD 1
JRO UP
MOV 2, LEFT
MOV -10, LEFT
MOV 3, LEFT
MOV -10, LEFT
MOV 4, LEFT
MOV -10, LEFT
MOV ACC, UP
MOV 5, LEFT
MOV 1, LEFT
