import java.util.Scanner; 

public class TowerOfHanoi {
  /** Metoda main */
  public static void main(String[] args) {
    // Tworzenie obiektu typu Scanner
    Scanner input = new Scanner(System.in);
    System.out.print("Podaj liczbę dysków: ");
    int n = input.nextInt();

    // Rekurencyjne znajdowanie rozwiązania
    System.out.println("Potrzebne posunięcia:");
    moveDisks(n, 'A', 'B', 'C');
  }

  /** Metoda znajdująca rozwiązanie problemu przeniesienia n dysków
       z fromTower na toTower z wykorzystaniem auxTower */
  public static void moveDisks(int n, char fromTower,
      char toTower, char auxTower) {
    if (n == 1) // Warunek zakończenia
      System.out.println("Przenieś dysk " + n + " z " +
         fromTower + " na " + toTower);
    else {
      moveDisks(n - 1, fromTower, auxTower, toTower);
      System.out.println("Przenieś dysk " + n + " z " +
         fromTower + " na " + toTower);
      moveDisks(n - 1, auxTower, toTower, fromTower);
    }
  }
}
