/*
题意: 对一个数(5<=n<=100)分解成几个因子之和,因子数目不限,但必须不小于5,求有多少种组合方案
比如 m(17)=7 ,即 17=17, 5+12, 6+11, 7+10, 8+9, 5+5+7, 5+6+6, 而 5+5+6, 5+6+5, 6+5+5 看作是一样的
为避免重复,我们可以规定因子的序列是不下降的,
用 dp[i][j] 来表示对 i 分解且第一个因子为 j 的全部组合方案。分情况:
(1) i 分解成只有一个因子,即 j=i,当然方案数是 1 
(2) i 分解成一个因子以上, 其中 5 <= j <= i/2  ,那么余下的序列可以表示成 dp[i-j][k],继续分情况:
 1. i-j 分解成一个因子, 即 k = i-j ,  则方案数是 1
 2. i-j 分解成一个因子以上,则 j <= k <= (i-j)/2 ,方案数是 dp[i-j][k]
*/
#include<iostream>        //DP
#include <cstring>
using namespace std;
int dp[102][102];
int main()
{
    memset(dp,0,sizeof(dp));
    for(int i=5;i<=100;++i)
    {
        dp[i][i]=1;        // i 分解成一个因子
        for(int j=5;j<=i/2;++j)
        {
            dp[i][j]+=1;    // i-j 分解成一个因子
            for(int k=j;k<=(i-j)/2;++k)
                dp[i][j]+=dp[i-j][k];    // i-j 分解成一个因子以上
        }
    }
    int n,ans=0;
    cin>>n;
    for(int i=5;i<=n;++i)
        ans+=dp[n][i];
    cout<<ans<<endl;
    return 0;
}