#include<algorithm>
using namespace std;
int n,m,ans;
struct bignum
{
int num[80],tot;
bignum operator +(const bignum &a)
{
tot=max(tot,a.tot);
int r=0;
for(int i=1; i<=tot; i++)
{
num[i]+=a.num[i]+r;
r=num[i]/10;
num[i]%=10;
}
if(r>0)
{
tot++;
num[tot]=r;
}
return *this;
}
bignum printf()
{
for(int i=tot;i>0;i--)
{
putchar(num[i]+'0');
}
return *this;
}
}f[61][61][61];//高精度
int main()
{
scanf("%d",&n);
f[0][0][0].num[1]=1;
f[0][0][0].tot=1;
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++)
for(int k=0;k<=n;k++)
{
if (!i&&!j&&!k) continue;
if (i<k||i<j||j<k) continue;
if (i>j&&i>k&&i) f[i][j][k]=f[i][j][k]+f[i-1][j][k];//判断
if (j>k&&j) f[i][j][k]=f[i][j][k]+f[i][j-1][k];//判断
if (k) f[i][j][k]=f[i][j][k]+f[i][j][k-1];//判断
}
f[n][n][n].printf();
return 0;
}