MOD = 10**9+7
d1 = {0: 1}
d2 = {0: 1, 1: 2}
def f(k):
    if k in d1:return d1[k]
    d1[k] = f(k/2) + (k%2<1 and f(k/2-1))
    return d1[k]
def s(k):
    if k in d2:return d2[k]
    d2[k] = (f(k) + s(k-1) if k%2 else s(k/2) + 2*s(k/2-1)) % MOD
    return d2[k]
print s(input())