#include <cstdio>
const char InFile[]="multimi2.in";
const char OutFile[]="multimi2.out";
FILE *f=fopen(InFile,"r");
int n,st,sf;
int main()
{
fscanf(f,"%d",&n);
fclose(f);
f=fopen(OutFile,"w");
if(n%2==0)
{
if((n/2)%2==0)
{
fprintf(f,"0\n%d\n",n/2);
st=1;
sf=n;
while(st<sf)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
fprintf(f,"\n%d\n",n/2);
st=2;
sf=n-1;
while(st<sf)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
}
else
{
fprintf(f,"1\n%d\n",n/2);
st=1;
sf=n;
while(sf-st>1)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
fprintf(f,"%d\n%d\n%d ",st,n/2,sf);
st=2;
sf=n-1;
while(sf-st>1)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
}
}
else
{
if((n/2)%2==0)
{
fprintf(f,"1\n%d\n1 ",n/2+1);
st=2;
sf=n;
while(st<sf)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
fprintf(f,"\n%d\n",n/2);
st=3;
sf=n-1;
while(st<sf)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
}
else
{
fprintf(f,"0\n%d\n1 ",n/2+1);
st=2;
sf=n;
while(sf-st>1)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
fprintf(f,"%d\n%d\n%d ",st,n/2,sf);
st=3;
sf=n-1;
while(sf-st>1)
{
fprintf(f,"%d %d ",st,sf);
st+=2;
sf-=2;
}
}
}
fclose(f);
return 0;
}