#include <stdio.h>

int main() {
int matrix[100][100];
int m;
int n;
scanf("%d%d\n", &m, &n);
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
scanf("%d", &matrix[i][j]);
}
}

//printf("m=%d,n=%d\n",m ,n);

for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
//printf("%d ", matrix[i][j]);
}
//printf("\n");
}

int i=0;
int j=0;

int u=0;
int v=0;
int x=m;
int y=n;

int z=0;

while(z<m*n){

if(i==u&&j<y){

// printf("-1-%d-%d\n",i ,j);
printf("%d", matrix[i][j++]);

if(j==(y)){
u++;
}

}else if(j==y&&i<x){


// printf("-2-%d-%d\n",i ,j);
i++;
if(i==(x)){
y=y-1;
j=j-1;
continue;
}
printf("%d", matrix[i][j-1]);


}else if(i==x&&j>v){

//printf("-3-%d-%d-%d\n",i ,j, matrix[1][1]);
j--;
if(j==(v)){
x=x-1;
continue;
}
printf("%d", matrix[i-1][j]);

}else if(j==v&&i>u){
//printf("-4-%d-%d\n",i ,j);
i--;
if(i==(u)){
v=v+1;
continue;
}
printf("%d", matrix[i][v]);

}

if(z<((m*n)-1)){
printf(" ");
}

z++;

}

return 0;
}