#include <iostream>
#include <stdio.h>
using namespace std;
#include <vector>
using std::vector;
#include <math.h>
#include <cmath>
#define QUEENS 8
int iCount = 0;
int Site[QUEENS];
void Queue(int n);
void Print();
bool isValid(int n);
void Print()
{
iCount ++ ;
cout << iCount<<endl;
}
int main(int argc, char *argv[])
{
Queue(0);
return 0;
}
void Queue(int n)
{
if( n == QUEENS )
{
Print();
return ;
}
for (int i = 1; i <= QUEENS; ++i)
{
Site[n] = i;
if ( isValid(n) )
{
Queue(n+1);
}
}
}
bool isValid(int n)
{
for ( int i = 0 ; i < n; i ++ )
{
if ( Site[i] == Site[n] )
{
return false;
}
if ( abs(Site[i] - Site[n]) == (n-i) )
{
return false;
}
}
return true;
}