procedure main(a) every n := !a do write(right(n,15)," -> ",midM(n)) end procedure midM(n,m) /m := 3 n := abs(n) return n ? if (*n >= m) then if (((*n-m) % 2) = 0) then (move((*n - m)/2),move(m)) else "wrong number of digits" else "too short" end