#pragma comment(linker, "/STACK:1677721600") #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f #define inf (-((LL)1<<40)) #define root 1, 1, n #define middle ((L + R) >> 1) #define lson k<<1, L, (L + R)>>1 #define rson k<<1|1, ((L + R)>>1) + 1, R #define mem0(a) memset(a,0,sizeof(a)) #define mem1(a) memset(a,-1,sizeof(a)) #define mem(a, b) memset(a, b, sizeof(a)) #define FIN freopen("in.txt", "r", stdin) #define FOUT freopen("out.txt", "w", stdout) #define rep(i, a, b) for(int i = a; i <= b; i ++) #define dec(i, a, b) for(int i = a; i >= b; i --) //typedef __int64 LL; typedef long long LL; typedef pair Pair; const int MAXN = 300000 + 10; const int MAXM = 1100000; const double eps = 1e-12; LL MOD = 1000000007; LL f[MAXN], ans[MAXN]; void init(int n) { ans[1] = 1; ans[2] = 2; ans[3] = 3; f[1] = 1; f[2] = 1; f[3] = 1; rep (i, 4, n) { f[i] = 1; rep (j, 1, i - 3) f[i] += f[j]; ans[i] = ans[i - 1] + f[i]; } } int main() { #ifndef ONLINE_JUDGE FIN;// FOUT; #endif init(60); int n; while(~scanf("%d", &n)) { cout << ans[n] << endl; } return 0; }