問題文

正の整数を定義域とする関数ff

f(x)={x   (xが奇数のとき)f(x2) (xが偶数のとき)f(x)= \left \{ \begin{array}{l} x   (xが奇数のとき) \\ f(\frac{x}{2}) (xが偶数のとき) \end{array} \right.

と定義されています。

正の整数 nn が入力として与えられます。

k=1nf(k)\displaystyle\sum_{k=1}^{n} f(k)

の値を10000000071000000007で割った余りを求めてください。

制約

1n10121\leq n \leq 10^{12}

入力

入力は以下の形式で標準入力から与えられる。

n

出力

答えを標準出力に1行で出力せよ。行末に改行を入れること。

入力例1

4

出力例1

6

f(1)=1, f(2)=f(1)=1, f(3)=3, f(4)=f(2)=f(1)=1f(1)=1, f(2)=f(1)=1, f(3)=3, f(4)=f(2)=f(1)=1

となり、合計は 66 です。

入力例2

123456789012

出力例2

449155048

10000000071000000007で割った余りを出力してください。

Submit


Go (1.21)