#include<bits/stdc++.h>
#define COGS
using namespace std;
const int maxn=20;
long long f[1<<maxn],n,temp;
inline void in(){
#ifdef COGS
freopen("rook.in","r",stdin);
freopen("rook.out","w",stdout);
#endif
scanf("%lld",&n);
temp=(1<<n)-1;
}
inline long long lowbit(int x){
return x&-x;
}
inline void dp(){
f[0]=1;
for (long long i=1;i<=temp;i++){
for (long long j=i;j;j-=lowbit(j)){
long long k=lowbit(j);
f[i]+=f[i-k];
}
}
}
inline void p(){
printf("%lld",f[temp]);
}
int main(){
in();
dp();
p();
return 0;
}