#include <iostream>
#include <limits.h>
#include <cmath>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <stack>
#include <map>
#include <fstream>
#include <list>
#include <queue>
#include <iomanip>
#include <deque>
#include <set>

using namespace std;

#define pb push_back
#define mp make_pair

//ifstream f("b.txt");
//#define cin f

int a[1001][1001];


int main()
{
    int n,m;
    cin >> n >> m;

    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            cin>>a[i][j];

    int i, k = 0, l = 0;

    swap(m,n);

    while (k < m && l < n)
    {

        for (i = l; i < n; ++i)
           cout<<a[k][i]<<" ";
        k++;


        for (i = k; i < m; ++i)
            cout<<a[i][n-1]<<" ";
        n--;


        if ( k < m)
        {
            for (i = n-1; i >= l; --i)
                cout<<a[m-1][i]<<" ";
            m--;
        }


        if (l < n)
        {
            for (i = m-1; i >= k; --i)
                cout<<a[i][l]<<" ";
            l++;
        }
    }
}