#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
int add(int a, int b) {
  long long x = a + b;
  if (x >= 998244353) x -= 998244353;
  if (x < 0) x += 998244353;
  return x;
}
long long mul(long long a, long long b) { return (a * b) % 998244353; }
long long pw(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = (ans * a) % 998244353;
    a = (a * a) % 998244353;
    b >>= 1;
  }
  return ans;
}
int n;
long long dp[2][1000002];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n;
  dp[1][0] = 1;
  dp[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    int x = (i - 1);
    if (x % 2 == 0) {
      int par = (1 + x / 2) % 2;
      dp[par][i] = mul(dp[!par][x / 2], dp[0][x / 2]);
    } else {
      for (int j = x / 2; j <= 1 + x / 2; j++) {
        int par = (1 + j) % 2;
        dp[par][i] = mul(dp[!par][j], dp[0][i - j - 1]);
      }
    }
  }
  cout << (dp[1][n] + dp[0][n]) % 998244353;
  return 0;
}
