// RandomUsername (Nikola Jovanovic)
// MindCoding 2016 Round 3
// A

#include <bits/stdc++.h>
#define DBG false
#define debug(x) if(DBG) printf("(ln %d) %s = %d\n", __LINE__, #x, x);
#define lld long long
#define ff(i,a,b) for(int i=a; i<=b; i++)
#define fb(i,a,b) for(int i=a; i>=b; i--)
#define par pair<int, int>
#define fi first
#define se second
#define mid (l+r)/2
#define INF 1000000000
#define MAXN 15

using namespace std;

int T;

struct info
{
    int tmp[MAXN];
    int cnt[MAXN];
    info()
    {
        ff(i, 0, 13)
            tmp[i] = cnt[i] = 0;
    }
};

info a[MAXN][MAXN];
int ret[MAXN];

bool valid(int i, int j)
{
    if(i>=0 && j>=0 && i<=13 && j<=13)
        return true;
    return false;
}

void update(int di, int dj, int si, int sj)
{
    a[di][dj].tmp[T] += a[di][dj].cnt[T] + a[si][sj].cnt[T-1];
}

void doStep()
{
    ff(i, 0, 13)
    {
        ff(j, 0, 13)
        {
            if(valid(i-1, j))
                update(i, j, i-1, j);
            if(valid(i+1, j))
                update(i, j, i+1, j);
            if(valid(i, j-1))
                update(i, j, i, j-1);
            if(valid(i, j+1))
                update(i, j, i, j+1);
        }
    }
}

void reset()
{
   ff(i, 0, 13)
    {
        ff(j, 0, 13)
        {
            ff(idx, 0, 13)
                a[i][j].tmp[idx] = 0;
        }
    }
}

void copyTmp()
{
    ff(i, 0, 13)
    {
        ff(j, 0, 13)
        {
            a[i][j].cnt[T] = a[i][j].tmp[T];
        }
    }
}

int main()
{
    // first step
    a[0][0].cnt[0] = 1;
    // do 13 steps
    ff(i, 1, 13)
    {
        T = i;
        reset();
        doStep();
        copyTmp();
    }
    ff(i, 0, 13)
    {
        ff(j, 0, 13)
        {
            ff(idx, 0, 13)
            {
                ret[idx] += a[i][j].cnt[idx];
            }
        }
    }
    // print ret
    //ff(i, 0, 13)
    //    printf("%d:%d\n", i, ret[i]);
    int n;
    scanf("%d", &n);
    printf("%d\n", ret[n-1]);
    return 0;
}