#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
const int mod = 1e9 + 7;
int a[N];
long long dp[N];
long long f(long long x) {
  if (dp[x] != 0)
    return dp[x];
  else
    return (f(x / 2) % mod + f((x - 1) / 2) % mod + f((x - 2) / 2) % mod) % mod;
}
int main() {
  long long n;
  scanf("%lld", &n);
  dp[0] = 1;
  dp[1] = 2;
  cout << f(n);
  return 0;
}
