https://www.acwing.com/problem/content/758/
#include<bits/stdc++.h>
using namespace std;
int ans[110][110][3]={0};
int v=1;
void solve(int n,int m,int a,int b)//1 2 1 1
{
//for(int i=a;i<n;i++)
if(n<=0||m<=0)return ;
for( int j=b;j<(m+b);j++ ){
if(!ans[a][j][1])
ans[a][j][0]=v++,ans[a][j][1]=1;
}
for(int i=a+1;i<(n+a);i++){
if(!ans[i][(m+b)-1][1])
ans[i][(m+b)-1][0]=v++,ans[i][m+b-1][1]=1;
}
for(int i=(m+b)-2;i>=b;i--)
{
if(!ans[n+a-1][i][1])
ans[(n+a)-1][i][0]=v++,ans[n+a-1][i][1]=1;
}
for(int i=(n+a)-2;i>=a+1;i--)
{
if(! ans[i][b][1])
ans[i][b][0]=v++, ans[i][b][1]=1;
}
solve(n-2,m-2,a+1,b+1);
}
int main(){
int n,m;
cin>>n>>m;
// if(n==m)
solve(n,m,0,0);
// else
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
cout<<ans[i][j][0]<<" ";
cout<<endl;
}
return 0;
}