#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<pair<int, int>> vec;
vector<int> ans;
bool cmp(int s, int f) { return s + f != n; }
void valid() {
  if (n & 1)
    for (int i = 0; i < ceil(1.0 * n / 2); ++i) vec.push_back({i, n - i});
  else
    for (int i = 0; i < (n >> 1); ++i) vec.push_back({i + 1, n - i});
  puts((int)(vec.size()) & 1 ? "1" : "0");
  printf("%d ", (int)(vec.size()));
  for (int i = 1; i < vec.size(); i += 2)
    printf("%d %d ", vec[i].first, vec[i].second);
  if ((int)(vec.size()) & 1) printf("%d ", vec.back().first);
}
int main() {
  scanf("%d", &n);
  valid();
}
