#include <iostream>
#include <algorithm>
#include <fstream>
#include <cmath>

using namespace std;

const int MAXN=1005;

int dl[4]={0,1,0,-1};
int dc[4]={1,0,-1,0};

int viz[MAXN][MAXN], a[MAXN][MAXN];

int main(){

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

    for(int i=0;i<=n+1;i++){
        viz[i][0]=1;
        viz[i][m+1]=1;
    }
    for(int j=0;j<=m+1;j++){
        viz[0][j]=1;
        viz[n+1][j]=1;
    }

    int casute=0, x=1,y=1,dir=0;

    while(casute<m*n){

        viz[x][y]=1;
        casute++;
        cout<<a[x][y]<<" ";

        int newx, newy;
        newx = x + dl[dir];
        newy = y + dc[dir];
        if(viz[newx][newy]==1) dir++;
        if(dir>3) dir=0;
        x+=dl[dir];
        y+=dc[dir];
    }

}