#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const long long mod = 1e9+7;
map<ll,ll> dp;

long long f(long long n) {
        if(dp[n])       return dp[n];
        return dp[n] =  (f(n/2)+f((n-1)/2)+f((n-2)/2))%mod;
}

long long solution(long long n) {
        return f(n)%mod;
}

int main() {
        long long n;
        cin>>n;
        dp[0] = 1;
        dp[1] = 2;
        cout<<solution(n)<<endl;
        return 0;
}
