var f,g:text;
s1,s2,s,n,k,i,nr,nr2:longint;
a:array[1..1000000] of integer;
begin
assign(f,'multimi2.in'); reset(f);
assign(g,'multimi2.out'); rewrite(g);
readln(f,n);
for i:=1 to n do a[i]:=i;
if n mod 4 = 0 then
begin
writeln(g,'0');
writeln(g,n div 2);
for i:=1 to n do
if (i mod 4=0)or(i mod 4=1) then write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=1 to n do
if (i mod 4=2)or(I MOD 4=3) then write(g,i,' ');
writeln(g);
close(g);
halt;
end;
if n mod 4 = 1 then
begin
writeln(g,'1');
writeln(g,n div 2);
for i:=2 to n do
if (i mod 4 =1)or(i mod 4=2) then write(g,i,' ');
writeln(g);
writeln(g,n div 2+1);
write(g,'1 ');
for i:=2 to n do
if (i mod 4 =0)or(i mod 4 =3) then write(g,i,' ');
writeln(g);
close(g);
halt;
end;
if n mod 4 =2 then
begin
writeln(g,'1');
writeln(g,n div 2);
write(g,'1 ');
for i:=3 to n do
if (i mod 4=2)or(i mod 4=3) then write(g,i,' ');
writeln(g);
writeln(g,n div 2);
write(g,'2 ');
for i:=3 to n do
if (i mod 4 =0)or(i mod 4 =1) then write(g,i,' ');
writeln(g);
close(g);
halt;
end;
if n mod 4 =3 then
begin
writeln(g,'0');
writeln(g,n div 2);
write(g,'3 ');
for i:=4 to n do
if (i mod 4 =0)or(i mod 4=3) then write(g,i,' ');
writeln(g);
writeln(g,n div 2+1);
write(g,'1 2 ');
for i:=4 to n do
if (i mod 4 =1)or(i mod 4 =2) then write(g,i,' ');
writeln(g);
close(g);
halt;
end;
end.