#include <bits/stdc++.h> //Í·Îļþ
using namespace std;
int n,m;
int a[101][101];
int k=1;
struct stu{
int x,y;
};
int dx[]={0,0,1,0,-1};//ÓÒÏÂ×óÉÏ
int dy[]={0,1,0,-1,0};
bool check(int x,int y){
if(a[x][y])return false;
if(x<1 || x>n || y<1 || y>m)return false;
return true;
}
void bfs(int x,int y){
queue<stu> q;
a[x][y]=k;
q.push(stu{x,y});
while(!q.empty()){
stu f=q.front();
q.pop();
for(int i=1;i<=4;i++){
int xx=f.x+dx[i];
int yy=f.y+dy[i];
if(check(xx,yy)){
a[xx][yy]=++k;
q.push(stu{xx,yy});
}
}
}
}
int main(){
cin>>n>>m;
bfs(1,1);
for(int i=1;i<=n;i++){ //Êä³ö
for(int j=1;j<=m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}