#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int data[105][105],count,m,n;
bool dfs(int direction,int i,int j){ //definition是方向,
//1向东,2向南,3向西,4向北
if(data[i][j]==0)data[i][j] = ++count;
else return false;
if(count==m*n)return true;
if(direction==1){
if(dfs(1,i,j+1))
return true;
if(dfs(2,i+1,j))
return true;
}
if(direction==2){
if(dfs(2,i+1,j))
return true;
if(dfs(3,i,j-1))
return true;
}
if(direction==3){
if(dfs(3,i,j-1))
return true;
if(dfs(4,i-1,j))
return true;
}
if(direction==4){
if(dfs(4,i-1,j))
return true;
if(dfs(1,i,j+1))
return true;
}
return false;
}
int main(){
scanf("%d%d",&m,&n);
memset(data,0,sizeof data);
data[1][n+1] = -1;
data[m+1][n] = -1;
data[m][0] = -1;
count = 0;
dfs(1,1,1);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
printf(" %c",(data[i][j]-1)%26+'A');
}
printf("\n");
}
return 0;
}