input: def hanoi(n, source, spare, target):
      """Recursive solution to solve the Towers of Hanoi game.
      >>> n = 3
      >>> source = [(i, "A") for i in range(1, n+1)]
      >>> target = []
      >>> spare = []
      >>> hanoi(n, source, spare, target)
      Moving disk 1 from A to C
      Moving disk 2 from A to B
      Moving disk 1 from C to B
      Moving disk 3 from A to C
      Moving disk 1 from B to A
      Moving disk 2 from B to C
      Moving disk 1 from A to C
      """
output:     if n == 1:
          disk, src = source.pop()
          target.append((disk, src))
          print(f"Moving disk {disk} from {src} to {target[0][1]}")
      else:
          hanoi(n-1, source, target, spare)
          disk, src = source.pop()
          target.append((disk, src))
          print(f"Moving disk {disk} from {src} to {target[0][1]}")
          hanoi(n-1, spare, source, target)