size=5x5x5
program 1
*start
    if carrying != NONE then goto *do_put

*do_get
    if check(FRONT) == MATERIAL && material(FRONT) == BALANCED then goto *take
    if find(BALANCED) then goto *walk
    turn RIGHT
    goto *start

*take
    get
    goto *start

*do_put
    if check(FRONT) == ORDER && order(FRONT) == STAIR then goto *place
    if find(STAIR) then goto *walk
    turn RIGHT
    goto *start

*place
    put
    goto *start

*walk
    go
    goto *start
endprogram
program 2
*start
    if carrying != NONE then goto *do_put

*do_get
    if check(FRONT) == MATERIAL && material(FRONT) == HEAVY then goto *take
    if find(HEAVY) then goto *walk
    turn RIGHT
    goto *start

*take
    get
    goto *start

*do_put
    if check(FRONT) == ORDER && order(FRONT) == FLOOR then goto *place
    if find(FLOOR) then goto *walk
    if find(MARKER) then goto *walk
    turn RIGHT
    goto *start

*place
    put
    goto *start

*walk
    go
    goto *start
endprogram

z=1
....>1..>2
....B4H4H4
........mP
....n?....
B4B4......

z=2
..........
..........
....n?....
..........
..........

z=3
.._?_?....
.._?n?....
..........
..........
..........

z=4
..........
..........
..........
..........
..........
