this is the start of the "explicit" exit; when the stack is empty, the original call to
towers
is complete; otherwise the return point must be determined
two: if(!empty(&s))