#include<stdio.h>
int sum = 0;
int limit = 1;
void compare(int row, int left, int right);
void main()
{
int n = 0;
printf("input queens num.\n");
scanf("%d",&n);
limit = (limit<<n)-1;
compare(0,0,0);
printf("%d\n",sum);
}
void compare(int row, int left, int right)
{
if(row!=limit)
{
int pos = limit & ~(row|left|right);
while (pos!=0)
{
int p = pos&(-pos);
pos -= p;
compare(row+p, (left+p)<<1, (right+p)>>1);
}
}
else sum++;
}