import java.util.*;

public class ASCIIPuzzle {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Imagen ASCII original ordenada
        String[] originalArt = {
            "   ***       ", // 1
            "  ** **      ", // 2 
            " **   **     ", // 3
            " **   **         **** ", // 4
            " **   **       **   ****", // 5
            " **  **       *   **   **", // 6
            "  **  *      *  **  ***  **", // 7
            "   **  *    *  **     **  *", // 8 
            "    ** **  ** **        **",// 9
            "    **   **  **", // 10
            "   *           *", // 11
            "  *             *", // 12
            " *    0     0    *", // 13
            " *   /   @   \\   *", // 14
            " *   \\__/ \\__/   *", // 15
            "   *     W     *", // 16
            "     **     **   ", // 17 
            "       *****    "// 18
        };

        // Crear una copia desordenada
        List<String> scrambledArt = new ArrayList<>(Arrays.asList(originalArt));
        Collections.shuffle(scrambledArt);

        while (true) {
            // Mostrar el arte desordenado
            System.out.println("\nOrdena el arte ASCII:");
            for (int i = 0; i < scrambledArt.size(); i++) {
                System.out.println((i + 1) + ": " + scrambledArt.get(i));
            }

            // Pedir cambio de líneas
            System.out.print("\n¿Qué línea cambias? (1-" + scrambledArt.size() + "): ");
            int firstIndex = scanner.nextInt() - 1;

            System.out.print("¿Por cuál la cambias? (1-" + scrambledArt.size() + "): ");
            int secondIndex = scanner.nextInt() - 1;

            // Intercambiar líneas
            Collections.swap(scrambledArt, firstIndex, secondIndex);

            // Verificar si está ordenado
            if (Arrays.equals(scrambledArt.toArray(), originalArt)) {
                System.out.println("\n¡Felicidades! Has ordenado el arte ASCII:");
                for (String line : originalArt) {
                    System.out.println(line);
                }
                break;
            }
        }

        scanner.close();
    }
}