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);
}
{
String[] params1
= bufferedReader.
readLine().
split(" "); long n;
n
= Long.
parseLong(params1
[0]); }
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwppbXBvcnQgamF2YS51dGlsLk1hcDsKaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS5sYW5nLk1hdGg7CgpjbGFzcyBNYWluCnsKCiAgICBwcml2YXRlIHN0YXRpYyBsb25nIG1vZCA9IDFMIDw8IDMyOwogICAgcHVibGljIHN0YXRpYyBNYXA8TG9uZywgTG9uZz4gbXAgPSBuZXcgSGFzaE1hcDxMb25nLCBMb25nPigpOwoKICAgIHB1YmxpYyBzdGF0aWMgbG9uZyBmKGxvbmcgbikgewogICAgICAgIGlmIChuIDw9IDIpIHsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgICAgIGlmIChtcC5jb250YWluc0tleShuKSkgewogICAgICAgICAgICByZXR1cm4gbXAuZ2V0KG4pOwogICAgICAgIH0KICAgICAgICBpZiAobiAlIDIgPT0gMSkgewogICAgICAgICAgICBsb25nIGQgPSAoZig2ICogbiAvIDcpICUgbW9kICsgZigyICogbiAvIDMpICUgbW9kKSAlIG1vZDsKICAgICAgICAgICAgbXAucHV0KG4sIGQpOwogICAgICAgICAgICByZXR1cm4gbXAuZ2V0KG4pOwogICAgICAgIH0KICAgICAgICBsb25nIG8gPSAoZihuIC0gMSkgJSBtb2QgKyBmKG4gLSAzKSAlIG1vZCkgJSBtb2Q7CiAgICAgICAgbXAucHV0KG4sIG8pOwogICAgICAgIHJldHVybiBtcC5nZXQobik7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgogICAgewogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJ1ZmZlcmVkUmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKICAgICAgICBTdHJpbmdbXSBwYXJhbXMxID0gYnVmZmVyZWRSZWFkZXIucmVhZExpbmUoKS5zcGxpdCgiICIpOwogICAgICAgIGxvbmcgbjsKICAgICAgICBuID0gTG9uZy5wYXJzZUxvbmcocGFyYW1zMVswXSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludChmKG4pKTsKICAgIH0KfQ==