var i,poz_st,j,n:longint;
f,g:text;
begin
assign(f,'multimi2.in'); reset(f);
assign(g,'multimi2.out'); 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 2 do
if i mod 2=1 then
write(g,i,' ');
for i:=n div 2+1 to n do
if i mod 2=0 then
write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=1 to n div 2 do
if i mod 2=0 then
write(g,i,' ');
for i:=n div 2+1 to n do
if i mod 2=1 then
write(g,i,' ');
writeln(g);
end;
if n mod 4=1 then begin
writeln(g,1);
writeln(g,(n div 2)+1);
write(g,1,' ');
for i:=2 to (n div 2)+1 do
if i mod 2=1 then
write(g,i,' ');
for i:=(n div 2)+2 to n do
if i mod 2=0 then
write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=2 to (n div 2)+1 do
if i mod 2=0 then
write(g,i,' ');
for i:=n div 2+2 to n do
if i mod 2=1 then
write(g,i,' ');
writeln(g);
end;
if n mod 4=2 then begin
writeln(g,1);
writeln(g,n div 2);
write(g,1,' ');
for i:=3 to (n div 2)+1 do
if i mod 2=1 then
write(g,i,' ');
for i:=n div 2+2 to n do
if i mod 2=0 then
write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=2 to n div 2+1 do
if i mod 2=0 then
write(g,i,' ');
for i:=n div 2+2 to n do
if i mod 2=1 then
write(g,i,' ');
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:=4 to (n div 2)+2 do
if i mod 2=1 then
write(g,i,' ');
for i:=n div 2+3 to n do
if i mod 2=0 then
write(g,i,' ');
writeln(g);
writeln(g,n div 2);
write(g,'3 ');
for i:=4 to n div 2+2 do
if i mod 2=0 then
write(g,i,' ');
for i:=n div 2+3 to n do
if i mod 2=1 then
write(g,i,' ');
writeln(g);
end;
close(f); close(g);
end.