#include <bits/stdc++.h>
using namespace std;
long long MOD = 1000000007;
long long N;
long long solve(long long n) {
  set<int> cnt;
  for (int i = 0; i < n + 1; i++) {
    int j = n - i;
    if (i > j) break;
    cnt.insert(i ^ j);
  }
  return cnt.size();
}
long long a(long long n) {
  if (n < 2) {
    if (n < 1)
      return 1;
    else
      return 3;
  } else {
    if (n % 2 == 0) {
      if (n == 2)
        return 4;
      else
        return (a(n / 2 - 2) + 2 * a(n / 2 - 1) + 2) % MOD;
    } else {
      return (2 * a((n - 3) / 2) + a((n - 1) / 2) + 2) % MOD;
    }
  }
}
int main() {
  cin >> N;
  cout << (a(N - 1) + 1) % MOD << endl;
}
