#include <bits/stdc++.h>
using namespace std;
int x[20]; // x[i]表示 第i个皇后在第i行的第x[i]列
int n;
int ans;
// 判断对角线和列项是否满足
bool check(int a){
for(int i = 1;i<a;i++){
if(x[a]==x[i]||abs(x[a]-x[i])==abs(a-i)) return false;
}
return true;
}
void dfs(int t){
if(t>n){
ans++;
return;
}
for(int i = 1;i<=n;i++){
x[t]=i;
if(check(t)) dfs(t+1);
}
}
int main(){
cin>>n;
dfs(1);
cout<<ans<<endl;
return 0;
}