#include<fstream.h>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
int main()
{
FILE *f,*g;
f=fopen("multimi2.in","r");
g=fopen("multimi2.out","w");
long n,n2,ne1=0,ne2=0;
long x=3,z,i,y;
fscanf(f,"%ld",&n);
n2=n-2;
if(n>3)
{
if(n%2!=0)
{
y=((x+(n-5))/2)%2;
if(y==0)
{
z=x+(n-5)/2;
fprintf(g,"%d\n",0);
fprintf(g,"%d\n",n/2);
fprintf(g,"%ld ",n);
for(i=1;i<=z/2-1;i++)
fprintf(g,"%ld %ld ", i,n-i);
fprintf(g,"\n");
ne2=z-i-1;
fprintf(g,"%ld\n",n/2+1);
for(i=i;i<=z-1;i++)
fprintf(g,"%ld %ld ", i,n-i);
}
else
{
z=x+(n2-5)/2;
fprintf(g,"%d\n%d\n", 1,n/2);
fprintf(g,"%ld ",n2);
fprintf(g,"%ld ",n-1);
for(i=1;i<=z/2-1;i++)
fprintf(g,"%ld %ld",i,n2-i);
fprintf(g,"\n%ld\n",n/2+1);
for(i=i;i<=z-1;i++)
fprintf(g,"%ld %ld ",i,n2-i);
fprintf(g,"%ld\n",n);
}
}
else
{
if(n%4==0)
{
fprintf(g,"%d\n%d\n",0,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
{
fprintf(g,"%d\n%d\n",1,n/2);
fprintf(g,"%ld ",n);
for(i=1;i<=n2/4;i++)
fprintf(g,"%ld %ld ",i,n2-i+1);
fprintf(g,"\n%ld\n",n/2);
fprintf(g,"%ld ",n-1);
for(i=i;i<=n2/2;i++)
fprintf(g,"%ld %ld ",i,n2-i+1);
}
}
}
if(n==3)
{
fprintf(g,"%d\n%d\n",0,2);
fprintf(g,"%d %d\n",1,2);
fprintf(g,"%d\n%d",1,3);
}
if(n==2)
fprintf(g,"%d\n%d\n%d\n%d\n%d",1,1,1,1,2);
return(0);
}