#include<iostream>
#include<stdio.h>
short int a[50000],b[50000];
using namespace std;
int main()
{
FILE *f=fopen("multimi2.in","r"), *g=fopen("multimi2.out","w");
unsigned int i,n,ok,nr=0;
fscanf(f,"%u",&n);
if(n%2==0)
{ fprintf(g,"1\n");
nr=n/2;
fprintf(g,"%d\n",nr);
i=n;fprintf(g,"%u ",i);ok=1;
while(i>1)
if(ok==1) {i=i-3; if(i>0) fprintf(g,"%u ",i);ok=2;}
else if(ok==2) {i=i-1;if(i>0) fprintf(g,"%u ",i);ok=1;}
fprintf(g,"\n");
fprintf(g,"%d\n",nr);
i=n-1;fprintf(g,"%u ",i);ok=1;
while(i>1)
if(ok==1) {i=i-1; if(i>0) fprintf(g,"%u ",i);ok=2;}
else if(ok==2) {i=i-3;if(i>0) fprintf(g,"%u ",i);ok=1;}
}
else
{ fprintf(g,"0\n");
nr=(n-1)/2;
fprintf(g,"%d\n",nr);
i=n;fprintf(g,"%u ",i);ok=1;
while(i>1)
if(ok==1) {i=i-3; if(i>0) fprintf(g,"%u ",i);ok=2;}
else if(ok==2) {i=i-1;if(i>0) fprintf(g,"%u ",i);ok=1;}
fprintf(g,"\n");
fprintf(g,"%d\n",nr+1);
i=n-1;fprintf(g,"%u ",i);ok=1;
while(i>1)
if(ok==1) {i=i-1; if(i>0) fprintf(g,"%u ",i);ok=2;}
else if(ok==2) {i=i-3;if(i>0) fprintf(g,"%u ",i);ok=1;}
}
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}