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