var a:array[1..1000000] of boolean;
n,i:longint;
f,g:text;
begin
assign(f,'multimi2.in');
assign(g,'multimi2.out');
reset(f);
rewrite(g);
read(f,n);
if n mod 4=0 then begin
writeln(g,0);
writeln(g,n div 2);
for i:=1 to (n div 4) do
write(g,i*2-1,' ',n-(i-1)*2,' ');
writeln(g);
writeln(g,n div 2);
for i:=1 to (n div 4) do
write(g,i*2,' ',n-(i-1)*2-1,' ');
writeln(g);
end;
if n mod 4=1 then begin
writeln(g,1);
writeln(g,n div 2+1);
write(g,1,' ');
for i:=1 to (n div 4) do
write(g,i*2,' ',n-(i-1)*2,' ');
writeln(g);
writeln(g,n div 2);
for i:=1 to (n div 4) do
write(g,i*2+1,' ',n-(i-1)*2-1,' ');
writeln(g);
end;
if n mod 4=3 then begin
writeln(g,0);
writeln(g,(n div 2)+1);
write(g,1,' ',2,' ');
for i:=1 to (n div 4) do
write(g,i*2+2,' ',n-(i-1)*2,' ');
writeln(g);
writeln(g,(n div 2));
write(g,3,' ');
for i:=1 to (n div 4) do
write(g,i*2+3,' ',n-(i-1)*2-1,' ');
writeln(g);
end;
if n mod 4=2 then begin
writeln(g,1);
writeln(g,n div 2);
for i:=1 to (n div 4) do
write(g,i*2-1,' ',n-(i-1)*2,' ');
writeln(g,n div 2);
writeln(g,n div 2);
for i:=1 to (n div 4) do
write(g,i*2,' ',n-(i-1)*2-1,' ');
writeln(g,(n div 2)+1);
end;
close(f);
close(g);
end.