#include
#include <studio.h>
using namespace std;
int vis[10][10];
int n,m,tot;
void inboard(int x, int y)
{
if(x<n && y<m && x>=0 && y>=0)
{
return 1;
}
return 0;
}
void dfs(int x,int y,int cur)
{
if(inboard(x,y)&&!vis[x][y])
{
cur++;
vis[x][y]=cur;
if(cur = =n*m)
{
tot++;
cout<<“case#”<<tot<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%4d",vis[i][j]);
if(j==m-1) cout<<endl;
}
cout<<endl;
vis[x][y]=0;
return;
}
}else{
dfs(x-1,y-2,cur);
dfs(x-1,y+2,cur);
dfs(x-2,y-1,cur);
dfs(x-2,y+1,cur);
dfs(x+1,y-2,cur);
dfs(x+1,y+2,cur);
dfs(x+2,y-1,cur);
dfs(x+2,y+1,cur);
vis[x][y]=0;
}
}
else return ;
}
int main()
{
void dfs(int x,int y,int cur);
int inboard(int x,int y);
cin>>n>>m;
dfs(0,0,0);
cout<<tot;
return 0;
}