/************************************
 *  Event  :      IT-Festival, Pomor State University, Arkhangelsk 2007
 *  Problem:      Snooker
 *  Author:       Pavel Kuznetsov
 *  Last update:  2008.02.19 13:13
 ************************************
*/

#include <map> 
#include <set> 
#include <queue> 
#include <bitset> 
#include <valarray> 
#include <complex> 
#include <iostream> 
#include <sstream> 
#include <cmath> 
#include <algorithm> 
#include <string> 
#include <memory.h>
#include <cassert> 

using namespace std;

// prewritten code

#define Size(x) (int)(x).size()
#define For(i,a,b) for(int i=(int)(a);i<=(int)(b);++i)
#define Ford(i,a,b) for(int i=(int)(a);i>=(int)(b);--i) 
#define RepV(i,v) for (int i=0;i<Size(v);++i)
#define All(c) (c).begin(),(c).end()
#define Fill(a,b) memset(&a,b,sizeof(a))
#define Min(a,b) ((a)<(b)?(a):(b))
#define Max(a,b) ((a)>(b)?(a):(b))
#define Abs(a) ((a)<0?-(a):(a))
#define VVI vector<vector<int> >
#define VI vector<int>
#define VVS vector<vector<string> >
#define VS vector<string>
#define ForEach(it,a) for (typeof((a).begin()) it=(a).begin(); it!=(a).end(); ++it)
#define DBG(x) cout << #x <<" = "<< x << endl;
#define DBGA(x) {cout << #x <<": "; for (int i=0; i<(int)sizeof(x)/(int)sizeof(x[0]); ++i) cout<<x[i]<<' '; cout<<endl;}
#define DBGV(x) {cout << #x <<": "; for (int i=0; i<(int)Size(x); ++i) cout<<x[i]<<' '; cout<<endl;}


const string problem_name = "snooker";
const int MAXN = 147;
const int RED = 0;
const int COLORFUL = 1;

typedef long long i64;

i64 dp[MAXN+1][15+6+1][2];

i64 solve(int points, int balls, int last_ball){
   if (balls<0 || points<0) return 0;
   i64 &res = dp[points][balls][last_ball];
   if (res != -1) return res;
   
   res = 0;
   
   if (points == 0) return res=1;
   
   if (balls > 0 && balls < 6){
      res = (last_ball==RED ? 0 : solve(points-(7-balls+1),balls-1,COLORFUL));
   }
   else if (balls == 6){
      if (last_ball == RED){
         For(i,2,7) res += solve(points-i,balls,COLORFUL);
      } else {
         res = solve(points-2,balls-1,COLORFUL);
      }
   }
   else if (last_ball == RED){
      For(i,2,7) res += solve(points-i,balls,COLORFUL);
   } else {
      int reds = balls - 6;
      For(i,1,reds) res += solve(points-i,balls-i,RED);
   }
   
   return res;
}

int main(){
//   freopen((problem_name+".in").c_str(),"rt",stdin);
//   freopen((problem_name+".out").c_str(),"wt",stdout);
   
   // Input
   
   int n;
   
   cin >> n;
   
   // Check input
   
   assert( n >= 1 && n <= MAXN );
   
   // Solve
   
   Fill(dp,-1);
   
   i64 res = solve(n,15+6,COLORFUL);
   
   // Output
   
   cout << res;
   
   return 0;
}
