input: Write a function to solve the Towers of Hanoi game. The function should take the number of disks and three lists representing the source, spare, and target pegs. The function should print the sequence of moves to solve the game. If there is only one disk, it should move directly from the source peg to the target peg. If there are multiple disks, it should recursively move the top n-1 disks to the spare peg, move the nth disk to the target peg, and then recursively move the n-1 disks from the spare peg to the target peg.
  
  def hanoi(n, source, spare, target):
      if n == 1:
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
      else:
          hanoi(n-1, source, target, spare)
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
          hanoi(n-1, spare, source, target)
  
  assert hanoi(3, [(1, "A"), (2, "A"), (3, "A")], [], [])==None
  assert hanoi(1, [(1, "A")], [], [])==None
  assert hanoi(0, [], [], [])==None
  assert hanoi(2, [(1, "A"), (2, "A")], [], [])==None
  assert hanoi(4, [(1, "A"), (2, "A"), (3, "A"), (4, "A")], [], [])==None
output: def hanoi(n, source, spare, target):
      if n == 1:
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
      else:
          hanoi(n-1, source, target, spare)
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
          hanoi(n-1, spare, source, target)