#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
int n, p[9], hashtable[9] = { 0 },num = 0;
using namespace std;
void digui(int indexrow)
{
if (indexrow == n + 1)
{
num++;
return;
}
for (int column = 1; column <= n; column++)
{
if (hashtable[column] == false)
{
bool flag = true;
for (int row = 1; row < indexrow; row++)
{
if (abs(indexrow-row) == abs(column - p[row]))
{
flag = false;
break;
}
}
if (flag)
{
p[indexrow] = column;
hashtable[column] = true;
digui(indexrow + 1);
hashtable[column] = false;
}
}
}
}
int main()
{
n = 8;
digui(1);
cout << num << endl;
}