#include <iostream>
using namespace std;
//抄博友程序 动态规划 背
int dp[1000008];
int main()
{
dp[0]=1;
dp[1]=1;
for(int i=2;i<=1000000;i++)
{
if(i%2==0)
{
dp[i]=dp[i/2]+dp[i-1];//乘2+加1
}else
{
dp[i]=dp[i-1];//加1
}
dp[i]=dp[i]%1000000000;
}
int n;
cin>>n;
cout<<dp[n]<<endl;
return 0;
}