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