#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
const int MAXN = 1000005;
int n;
long long dp[MAXN][2][2];
int main() {
  scanf("%d", &n);
  for (int i = 0; i <= n; i++)
    for (int s = 0; s <= 1; s++)
      for (int r = 0; r <= 1; r++) {
        if (i == 0)
          dp[i][s][r] = 1;
        else {
          if (i % 2 == 1) {
            int ri = (s + i / 2) % 2;
            if (ri != r)
              dp[i][s][r] = 0;
            else
              dp[i][s][r] =
                  (dp[i / 2][s][r ^ 1] * dp[i / 2][(s + i / 2 + 1) % 2][r]) %
                  MOD;
          } else {
            int ri = (s + i / 2 - 1) % 2;
            if (ri == r)
              dp[i][s][r] =
                  (dp[i / 2 - 1][s][r ^ 1] * dp[i / 2][(s + i / 2) % 2][r]) %
                  MOD;
            else
              dp[i][s][r] = (dp[i / 2][s][r ^ 1] *
                             dp[i / 2 - 1][(s + i / 2 + 1) % 2][r]) %
                            MOD;
          }
        }
      }
  printf("%lld\n", (dp[n][1][0] + dp[n][1][1]) % MOD);
  return 0;
}
