#include <stdio.h>
#include <math.h>

#define INF 1000000

int memo[1001];

int minTurnsRec(int n)
{
    if (n == 0) return 0;
    if (n < 0) return INF;
    if (memo[n] != -1) return memo[n];
    
    int a = 1 + minTurnsRec(n - 1);
    int b = 1 + minTurnsRec(n - 2);
    int c = 1 + minTurnsRec(n - 3);
    
    int m = a;
    if (b < m) m = b;
    if (c < m) m = c;
    
    memo[n] = m;
    return m;
}

int main(void)
{
    double score_d;
    if (scanf("%lf", &score_d) != 1)
    {
        printf("Invalid Input");
        return 0;
    }
    
    if (score_d < 0.0)
    {
        printf("Invalid Input");
        return 0;
    }
    
    double intpart;
    if (modf(score_d, &intpart) != 0.0)
    {
        printf("Invalid Input");
        return 0;
    }
    
    int n = (int)intpart;
    if (n < 0)
    {
        printf("Invalid Input");
        return 0;
    }
    
    for (int i = 0; i <= n; ++i) memo[i] = -1;
    
    int ans = miinTurnsRec(n);
    
    if (ans >= INF)
    {
        printf("Invalid Input");
    }
    else
    {
        printf("%d", ans);
    }
    
    return 0;
}