#include <bits/stdc++.h>
using namespace std;
#define FAST_IO ios::sync_with_stdio(0); cin.tie(0);
int N;
bool board[14][14];
bool check_can_place(int y, int x)
{
// 열 체크
for (int i = 0;i<N;++i)
if (board[i][x])
return false;
// 우상좌하 대각선 체크
for (int i=0;i<N;++i)
{
const int j=y+x-i;
if (j >= N)
continue;
if (board[i][j])
return false;
}
// 좌상우하 대각선 체크
for (int i=0;i<N;++i)
{
const int j=-y+x+i;
if (j < 0)
continue;
if (board[i][j])
return false;
}
return true;
}
int solve(int i = 0)
{
if (i == N)
return 1;
int ret = 0;
for (int j=0;j<N;++j)
{
if (check_can_place(i, j))
{
board[i][j] = true;
ret += solve(i + 1);
board[i][j] = false;
}
}
return ret;
}
int main()
{
FAST_IO;
cin >> N;
cout << solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRkFTVF9JTyBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCmludCBOOwpib29sIGJvYXJkWzE0XVsxNF07Cgpib29sIGNoZWNrX2Nhbl9wbGFjZShpbnQgeSwgaW50IHgpCnsKICAgIC8vIOyXtCDssrTtgawKICAgIGZvciAoaW50IGkgPSAwO2k8TjsrK2kpCiAgICAgICAgaWYgKGJvYXJkW2ldW3hdKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAKICAgIC8vIOyasOyDgeyijO2VmCDrjIDqsIHshKAg7LK07YGsCiAgICBmb3IgKGludCBpPTA7aTxOOysraSkKICAgIHsKICAgICAgICBjb25zdCBpbnQgaj15K3gtaTsKICAgICAgICBpZiAoaiA+PSBOKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICBpZiAoYm9hcmRbaV1bal0pCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIAogICAgLy8g7KKM7IOB7Jqw7ZWYIOuMgOqwgeyEoCDssrTtgawKICAgIGZvciAoaW50IGk9MDtpPE47KytpKQogICAgewogICAgICAgIGNvbnN0IGludCBqPS15K3graTsKICAgICAgICBpZiAoaiA8IDApCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGlmIChib2FyZFtpXVtqXSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgCiAgICByZXR1cm4gdHJ1ZTsKfQoKaW50IHNvbHZlKGludCBpID0gMCkKewogICAgaWYgKGkgPT0gTikKICAgICAgICByZXR1cm4gMTsKICAgIAogICAgaW50IHJldCA9IDA7CiAgICBmb3IgKGludCBqPTA7ajxOOysraikKICAgIHsKICAgICAgICBpZiAoY2hlY2tfY2FuX3BsYWNlKGksIGopKQogICAgICAgIHsKICAgICAgICAgICAgYm9hcmRbaV1bal0gPSB0cnVlOwogICAgICAgICAgICByZXQgKz0gc29sdmUoaSArIDEpOwogICAgICAgICAgICBib2FyZFtpXVtqXSA9IGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcmV0Owp9CgoKaW50IG1haW4oKQp7CiAgICBGQVNUX0lPOwogICAgY2luID4+IE47CiAgICBjb3V0IDw8IHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==