/* YA team is awarded N points for rugby. Count how many combinations of tries (T: 5 points), conversions (G: 2 points), and penalty goals (PG: 3 points) total N points. Note that a conversion is always less than or equal to the number of tries because it is a kick after a try. Also, there will be no dropped goals and no authorized tries. Input: N Output: Output the number of patterns, and then start a new line. */ using System; using System.Linq; using Internal; using System.Collections.Generic; using System.Text; class Scanner { string[] s; int i; char[] cs = new char[] { ' ' }; public Scanner() { s = new string[0]; i = 0; } public string Next() { if (i < s.Length) return s[i++]; string st = Console.ReadLine(); while (st == "") st = Console.ReadLine(); s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); if (s.Length == 0) return Next(); i = 0; return s[i++]; } public int NextInt() { return int.Parse(Next()); } public long NextLong() { return long.Parse(Next()); } public double NextDouble() { return double.Parse(Next()); } public ulong NextUlong() { return ulong.Parse(Next()); } public decimal NextDecimal() { return decimal.Parse(Next()); } public int[] ArrayInt(int N, int add = 0) { int[] Array = new int[N]; for (int i = 0; i < N; i++) { Array[i] = NextInt() + add; } return Array; } public double[] ArrayDouble(int N, double add = 0) { double[] Array = new double[N]; for (int i = 0; i < N; i++) { Array[i] = NextDouble() + add; } return Array; } public long[] ArrayLong(long N, long add = 0) { long[] Array = new long[N]; for (long i = 0; i < N; i++) { Array[i] = NextLong() + add; } return Array; } } class Program { static void Main() { Scanner sc = new Scanner(); int N = sc.NextInt(); int ans = 0; for (int i = 0; i <= N / 5; i++) { for (int j = 0; j <= i; j++) { for (int k = 0; k <= N / 3; k++) { if (i * 5 + j * 2 + k * 3 == N) { ans++; } } } } Console.WriteLine(ans); } }