#include<stdio.h>
int main(){
FILE *f, *g;
f=fopen("multimi2.in", "r");
g=fopen("multimi2.out", "w");
long n, x, i;
fscanf(f, "%ld", &n);
x=3+((n-5)/2);
if(n%2==0&&n%4!=0&&n!=2&&n!=3){
fprintf(g, "1\n");
fprintf(g, "%ld\n", n/2);
for(i=1;i<=(n-2)/4;i++)
fprintf(g, "%ld %ld ", i, n-2-i+1);
fprintf(g, "%ld", n-1);
fprintf(g, "\n%ld\n", n/2);
for(i=i;i<=(n-2)/2;i++)
fprintf(g, "%ld %ld ", i, n-2-i+1);
fprintf(g, "%ld", n);
}
else if(n%4==0&&n!=2&&n!=3){
fprintf(g, "0\n");
fprintf(g, "%ld\n", n/2);
for(i=1;i<=n/4;i++)
fprintf(g, "%ld %ld ", i, n-i+1);
fprintf(g, "\n%ld\n", n/2);
for(i=i;i<=n/2;i++)
fprintf(g, "%ld %ld ", i, n-i+1);
}
else if(n%2!=0&&x%2==0&&n!=2&&n!=3){
fprintf(g, "0\n");
fprintf(g, "%ld\n", n/2);
for(i=1;i<=n/4;i++)
fprintf(g, "%ld %ld ", i, n-1);
fprintf(g, "%ld\n%ld\n", n, n/2+1);
for(i=i;i<=n/2;i++)
fprintf(g, "%ld %ld ", i, n-i);
}
else if(n%2!=0&&x%2!=0&&n!=2&&n!=3){
fprintf(g, "1\n");
fprintf(g, "%ld\n", n/2+1);
for(i=1;i<=(n-2)/4+1;i++)
fprintf(g, "%ld %ld ", i, (n-2)-i);
fprintf(g, "%ld\n%ld\n", n-1, n/2);
for(i=i;i<=(n-2)/2;i++)
fprintf(g, "%ld %ld ", i, (n-2)-i);
fprintf(g, "%ld %ld", n-2, n);
}
else if(n==2)
fprintf(g, "1\n1\n1\n1\n2\n");
else if(n==3)
fprintf(g, "0\n2\n1 2\n1\n3");
fclose(f);
fclose(g);
return 0;
}