recurse version hanoi guard