#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;
}