import java.util.*;

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

        // Read number of rows
        if (!sc.hasNextInt()) {
            System.out.println("Invalid input");
            return;
        }

        int n = sc.nextInt();

        if (n <= 0 || n > 100) {
            System.out.println("Invalid input");
            return;
        }

        int[][] grid = new int[100][100];  // Max 100 rows, 100 cols
        int[] rowSizes = new int[100];     // To store each row’s size
        
        sc.nextLine(); // Clear remaining newline

        // Read the grid
        for (int i = 0; i < n; i++) {
            String line = sc.nextLine().trim();

            if (line.isEmpty()) {
                System.out.println("Invalid input");
                return;
            }

            String[] parts = line.split("\\s+");
            int size = parts.length;

            for (int j = 0; j < size; j++) {
                try {
                    int value = Integer.parseInt(parts[j]);
                    if (value < 0) {
                        System.out.println("Invalid input");
                        return;
                    }
                    grid[i][j] = value;
                } catch (Exception e) {
                    System.out.println("Invalid input");
                    return;
                }
            }
            rowSizes[i] = size;
        }

        // Print flipped grid
        for (int i = n - 1; i >= 0; i--) {
            for (int j = 0; j < rowSizes[i]; j++) {
                System.out.print(grid[i][j] + " ");
            }
            System.out.println();
        }
    }
}
