#include <cstdio>
#include <map>
#define MOD (long long)100000007
using namespace std;

map<long long int, long long int> D;
long long int n;

long long int f(long long int n)
{
    if( n <= 1 ) return 1;
    if( !D[n] )
    {
        if( n % 2 == 0 ) D[n] = ((f(n/2)*f(n/2))%MOD + ((f(n/2-1)*f(n/2-1))%MOD))%MOD;
        else D[n] = ((f(n/2)*f(n/2))%MOD + (2*f(n/2-1)*f(n/2))%MOD)%MOD;
    }
    return D[n];
}

int main()
{
    freopen(".10.in","r",stdin);
    freopen(".10.out","w",stdout);
    scanf("%lld", &n);
    printf("%lld\n", f(n));
}
