#include<stdio.h>
int map[8][8]={0};
int count=0;
int safe(int x,int y)
{
int i;
int j;
for(i=0;i<8;i++)
{
if(map[i][y]!=0)
return 0;
}
for(j=0;j<8;j++)
{
if(map[x][j]!=0)
return 0;
}
for(i=x,j=y;i>=0&&j>=0;i--,j--)
{
if(map[i][j]!=0)
return 0;
}
for(i=x,j=y;i>=0&&j<8;i--,j++)
{
if(map[i][j]!=0)
return 0;
}
return 1;
} void queen(int i)
{
if(i==8)
{
count++;
return;
}
for(int j=0;j<8;j++)
{
if(safe(i,j))
{
map[i][j]=1;
queen(i+1);
map[i][j]=0;
}
}
}
int main()
{
queen(0);
printf("%d",count);
return 0;
}