/*
1 2 3 4 5 6 7 8 9 10 11
1 11 3 9 5 6 7
2 10 4 8
*/
#include <stdio.h>
long int n,i;
int main(){
FILE *f = fopen("multimi2.in","r");
fscanf(f,"%ld",&n);
fclose(f);
FILE *g = fopen("multimi2.out","w");
if (n%4==3){
if (((n/2+2)/2)%2==1) {
fprintf(g,"%ld\n",0l);
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/2+1;i++)
if (2*i-1 != (n/2+2)/2 )
fprintf(g,"%ld ",2*i-1);
fprintf(g,"\n");
fprintf(g,"%ld\n",n/2+1);
for (i=1;i<=n/2;i++)
fprintf(g,"%ld ",2*i);
fprintf(g,"%ld ",(n/2+2)/2);
} else {
//1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//1 15 3 13 5 11 8 4 7 8 9
//2 14 12 6 10 7 9
fprintf(g,"%ld\n",0l);
fprintf(g,"%ld\n",n/2+1);
for (i=1;i<=(n-3)/2;i++){
fprintf(g,"%ld %ld ",2*i-1,n+1-2*i+1);
fprintf(g,"%ld %ld\n",n/2+1,(n/2+1)/2);
fprintf(g,"%ld\n",n/2);
for (i=1;i<=(n-3)/2;i++){
if (2*i!=(n/2+1)/2) {
fprintf(g,"%ld ",2*i);
}
fprintf(g,"%ld ",n+1-2*i);
}
fprintf(g,"%ld %ld ",n/2,n/2+2);
}
}
/* fprintf(g,"%ld\n",0l);
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/2+1;i++)
if (2*i-1 != (n/2+2)/2 )
fprintf(g,"%ld ",2*i-1);
fprintf(g,"\n");
fprintf(g,"%ld\n",n/2+1);
for (i=1;i<=n/2;i++)
fprintf(g,"%ld ",2*i);
fprintf(g,"%ld ",(n/2+2)/2);*/
} else
if (n%4==1) {//30
fprintf(g,"%ld\n",1l);
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/2;i++)
if (2*i != (n/2+1)/2)
fprintf(g,"%ld ",2*i);
fprintf(g,"%ld\n",n/2+1);
fprintf(g,"%ld\n",n/2+1);
for (i=1;i<=n/2+1;i++)
if (2*i-1 != n/2+1)
fprintf(g,"%ld ",2*i-1);
fprintf(g,"%ld\n",(n/2+1)/2);
} else if (n%4==0) {
fprintf(g,"%ld\n%ld\n",0l,n/2);
for (i=1;i<=n/4;i++)
fprintf(g,"%ld %ld ",2*i,n+1-2*i);
fprintf(g,"\n");
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/2;i++)
fprintf(g,"%ld %ld ",2*i-1,n+1-2*i+1);
} else if (n%4==2) {
fprintf(g,"%ld\n",1l);
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/4;i++)
fprintf(g,"%ld %ld ",2*i-1,n-(2*i-1)+1);
fprintf(g,"%ld",n/2+1);
fprintf(g,"\n");
fprintf(g,"%ld\n",n/2);
for (i=1;i<=n/4;i++)
fprintf(g,"%ld %ld ",2*i,n-(2*i)+1);
fprintf(g,"%ld",n/2);
}
fclose(g);
return 0;
}