#include <bits/stdc++.h>
using namespace std;
void Fast() {
  std::ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cerr.tie(NULL);
}
inline int D() {
  int t;
  scanf("%d", &t);
  return t;
}
inline long long llD() {
  long long t;
  scanf("%lld", &t);
  return t;
}
const int N = 1e5 + 5, M = 1e6 + 5;
long long n, m, k, cnt, dot, idx, sq;
long long a, b, c, l, r, mid;
vector<int> ans;
void valid() {
  cnt = (n * (n + 1)) >> 1ll;
  puts(cnt & 1 ? "1" : "0");
  cnt >>= 1ll;
  for (int i = n; i; --i)
    if (i <= cnt) ans.push_back(i), cnt -= i;
  printf("%d ", (int)(ans.size()));
  for (int i : ans) printf("%d ", i);
}
int main() {
  scanf("%d", &n);
  valid();
}
