#include #include #define xMax 10 #define yMax 10 int Map[xMax+1][yMax+1],xs,ys,ans=0; int dx[]={-2,-1, 1, 2,2,1,-1,-2}, dy[]={-1,-2,-2,-1,1,2, 2, 1}; bool check(int x,int y) { if((x<0||x>=xs)||(y<0||y>=ys)||(Map[x][y]>0)) return 0; return 1; } void dfs(int x,int y,int step) { if(step>=xs*ys){ans++;return;} for(int i=0;i<8;i++) if(check(x+dx[i],y+dy[i])) { Map[x+dx[i]][y+dy[i]]=step+1; dfs(x+dx[i],y+dy[i],step+1); Map[x+dx[i]][y+dy[i]]=0; } } int main() { int t; int x,y; scanf("%d",&t); int answer[t]; for(int i=0;i