program multimi2;
var n, i : longint;
fin, fout:text;
begin
assign (fin,'multimi2.in'); reset(fin);
assign (fout,'multimi2.out'); rewrite(fout);
readln(fin,n);
if n=2 then
begin
writeln(fout,1);
writeln(fout,1);
writeln(fout,1);
writeln(fout,1);
writeln(fout,2);
end
else if n = 3 then
begin
writeln(fout,0);
writeln(fout,1);
writeln(fout,3);
writeln(fout,2);
writeln(fout,'1 2');
end
else
begin
if n mod 4=0 then
begin
writeln(fout,0);
writeln(fout,n div 2);
for i:= 1 to n div 4 do
write(fout,i,' ',n-i+1,' ');
writeln(fout);
writeln(fout,n div 2);
for i :=n div 4 +1 to n div 4*2 do
write(fout,i,' ',n-i+1,' ');
writeln(fout);
end;
if n mod 4 =2 then
begin
writeln(fout,1);
writeln(fout,n div 2);
for i:= 1 to n div 4 do
write(fout,i,' ',n-i+1,' ');
writeln(fout,n div 4*2 +1);
writeln(fout,n div 2);
for i :=n div 4 +1 to n div 4*2 do
write(fout,i,' ',n-i+1,' ');
writeln(fout, n div 4*2+2);
end;
if n mod 4 =1 then
begin
writeln(fout,n div 2 +1);
writeln(fout,n div 2);
for i:= 1 to n div 4 do
write(fout,i,' ',n-i+1,' ');
writeln(fout);
writeln(fout,n div 2+1 );
for i :=n div 4 +1 to n div 4*2 do
write(fout,i,' ',n-i+1,' ');
writeln(fout, n div 4*2+1);
end;
if n mod 4 =3 then
begin
writeln(fout,n-n div 2 -2);
writeln(fout,n div 2+1);
for i:= 1 to n div 4 do
write(fout,i,' ',n-i+1,' ');
writeln(fout,n div 2,' ',n div 2+1);
writeln(fout,n div 2 );
for i :=n div 4 +1 to n div 4*2 do
write(fout,i,' ',n-i+1,' ');
writeln(fout, n div 2+2);
end;
end;
close(fout) ;
close(fin) ;
end.