#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll MAX_N = 1e18 + 7;
ll mod = 1e9 + 7;
ll dp[61][3];
int main() {
  ll N;
  cin >> N;
  dp[60][0] = 1;
  for (ll a = 59; a >= 0; --a) {
    for (ll b = 0; b <= 2; ++b) {
      for (ll c = 0; c <= 2; ++c) {
        ll d = b * 2 + (N >> a & 1) - c;
        if (d < 0) continue;
        if (d > 2) d = 2;
        dp[a][d] += dp[a + 1][b];
        dp[a][d] %= mod;
      }
    }
  }
  ll ret = 0;
  for (ll i = 0; i <= 2; ++i) ret += dp[0][i];
  cout << ret << endl;
  return 0;
}
