#include <stdio.h>
#include <assert.h>
#define nmax 1000111
#define FOR(i,s,d) for(i=(s);i<(d);++i)
int n;
void doit(int sol,int a,int b,int c,int n1)
{
int i;
printf("%d\n%d\n",sol,n1);
if(c>1) printf("1 ");
if(c==4) printf("2 ");
FOR(i,c,n+1)
if(i%4==a||i%4==b)
printf("%d ",i);
printf("\n%d\n",n-n1);
if(c==3) printf("2 ");
if(c==4) printf("3 ");
FOR(i,c,n+1)
if(!(i%4==a||i%4==b))
printf("%d ",i);
printf("\n");
}
int main()
{
assert(freopen("multimi2.in","r",stdin));
freopen("multimi2.out","w",stdout);
assert(scanf("%d",&n)==1);
assert(n<=1000000);
assert(n>=1);
if(n%4==0) doit(0,1,0,1,n/2);
if(n%4==1) doit(1,2,1,2,n/2+1);
if(n%4==2) doit(1,3,2,3,n/2);
if(n%4==3) doit(0,0,3,4,n/2+1);
return 0;
}