#include <bits/stdc++.h>
using namespace std;
int n;
long long dp[1<<20][20];
int main(){
cin >> n;
for(int i=0;i<n;i++)
dp[1<<i][i] = 1;
for(int mask=0; mask<(1<<n); mask++){
for(int last=0; last<n; last++){
if(!(mask&(1<<last))) continue;
long long cur = dp[mask][last];
if(cur==0) continue;
for(int x=0; x<n; x++){
if(mask&(1<<x)) continue;
if(abs(x - last) == 1) continue;
dp[mask|(1<<x)][x] += cur;
}
}
}
long long ans = 0;
for(int i=0;i<n;i++)
ans += dp[(1<<n)-1][i];
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwpsb25nIGxvbmcgZHBbMTw8MjBdWzIwXTsKCmludCBtYWluKCl7CiAgICBjaW4gPj4gbjsKCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIGRwWzE8PGldW2ldID0gMTsKCiAgICBmb3IoaW50IG1hc2s9MDsgbWFzazwoMTw8bik7IG1hc2srKyl7CiAgICAgICAgZm9yKGludCBsYXN0PTA7IGxhc3Q8bjsgbGFzdCsrKXsKICAgICAgICAgICAgaWYoIShtYXNrJigxPDxsYXN0KSkpIGNvbnRpbnVlOwogICAgICAgICAgICBsb25nIGxvbmcgY3VyID0gZHBbbWFza11bbGFzdF07CiAgICAgICAgICAgIGlmKGN1cj09MCkgY29udGludWU7CgogICAgICAgICAgICBmb3IoaW50IHg9MDsgeDxuOyB4KyspewogICAgICAgICAgICAgICAgaWYobWFzayYoMTw8eCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoYWJzKHggLSBsYXN0KSA9PSAxKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGRwW21hc2t8KDE8PHgpXVt4XSArPSBjdXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbG9uZyBsb25nIGFucyA9IDA7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIGFucyArPSBkcFsoMTw8biktMV1baV07CgogICAgY291dCA8PCBhbnM7Cn0K