#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e6 + 5;
const int mod = 1e9;
int a[32], dp[maxn];

int main() {
a[0] = 1;
for (int i = 1; i <= 20; i++) a[i] = a[i - 1] * 2;
dp[0] = 1;
for (int i = 0; i <= 20; i++) {
for (int j = a[i]; j < maxn; j++) {
dp[j] = (dp[j] + dp[j - a[i]]) % mod;
}
}
int n;
while (~scanf("%d", &n)) printf("%d\n", dp[n]);
return 0;
}