import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.HashMap;
import java.lang.Math;

class Main
{

    private static long mod = 1L << 32;
    public static Map<Long, Long> mp = new HashMap<Long, Long>();

    public static long f(long n) {
        if (n <= 2) {
            return 1;
        }
        if (mp.containsKey(n)) {
            return mp.get(n);
        }
        if (n % 2 == 1) {
            long d = (f(6 * n / 7) % mod + f(2 * n / 3) % mod) % mod;
            mp.put(n, d);
            return mp.get(n);
        }
        long o = (f(n - 1) % mod + f(n - 3) % mod) % mod;
        mp.put(n, o);
        return mp.get(n);
    }


    public static void main (String[] args) throws java.lang.Exception
    {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String[] params1 = bufferedReader.readLine().split(" ");
        long n;
        n = Long.parseLong(params1[0]);
        System.out.print(f(n));
    }
}