#include<stdio.h>
long i, j, n;
FILE *fin, *fout;
int main()
{
fin = fopen("multimi2.in", "rt");
fout = fopen("multimi2.out", "wt");
fscanf(fin, "%ld", &n);
if(n % 2 == 0)
{
if(n == 2)
fprintf(fout, "1\n1\n1\n1\n2\n");
else
if(n % 4 == 0)
{
fprintf(fout, "0\n");
i = 1;
j = n;
fprintf(fout, "%ld\n", n / 2);
while(i <= n / 4)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "\n%ld\n", n / 2);
while(i <= j)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
}
else
{
fprintf(fout, "1\n");
i = 1;
j = n;
fprintf(fout, "%ld\n", n / 2);
while(i <= n / 4)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "%ld\n", n / 2);
fprintf(fout, "%ld\n", n / 2);
while(i + 1 != j)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "%ld\n", n / 2 + 1);
}
}
else
{
if(n == 3)
fprintf(fout, "0\n1\n3\n2\n1 2\n");
else
if((n - 1) % 4 == 0)
{
fprintf(fout, "1\n");
i = 2;
j = n;
fprintf(fout, "%ld\n", n / 2);
while(i <= n / 4 + 1)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "\n%ld\n", n / 2 + 1);
while(i <= j)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "1\n");
}
else
{
fprintf(fout, "0\n");
i = 2;
j = n;
fprintf(fout, "%ld\n", n / 2 + 1);
while(i <= n / 4 + 1)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "%ld 1\n", n / 2 + 1);
fprintf(fout, "%ld\n", n / 2);
while(i + 1 != j)
{
fprintf(fout, "%ld %ld ", i, j);
i++;
j--;
}
fprintf(fout, "%ld\n", n / 2 + 2);
}
}
return 0;
}