Program multimi2;
Var f:text;
n,i:longint;
Begin
assign(f,'multimi2.in');
reset(f);
readln(f,n);
close(f);
assign(f,'multimi2.out');
rewrite(f);
if n=2 then
begin
Writeln(f,'1');
Writeln(f,'1');
Writeln(f,'1');
Writeln(f,'1');
Writeln(f,'2');
end
else
if n mod 2=0 then
if n mod 4=0 then
begin
Writeln(f,'0');
Writeln(f,n div 2);
for i:=1 to n div 4 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f);
Writeln(f,n div 2);
for i:=(n div 4)+1 to n div 2 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f);
end
else
begin
Writeln(f,'1');
Writeln(f,(n-2) div 2);
for i:=1 to n div 4 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f,(n div 2));
Writeln(f,(n-2) div 2);
for i:=(n div 4)+2 to n div 2 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f,(n div 2)+1);
end
else
if (n-1) mod 4=0 then
begin
Writeln(f,'1');
Writeln(f,n div 2);
for i:=1 to n div 4 do Write(f,i*2,' ',n-(i*2-1)+1,' ');
Writeln(f);
Writeln(f,(n div 2)+1);
for i:=(n div 4)+1 to n div 2 do Write(f,i*2,' ',n-(i*2-1)+1,' ');
Writeln(f,'1');
end
else
begin
Writeln(f,'0');
n:=n-1;
Writeln(f,n div 2);
for i:=1 to (n div 4)+1 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f);
Writeln(f,(n div 2)+1);
for i:=(n div 4)+2 to n div 2 do Write(f,i*2-1,' ',n-(i*2-1)+1,' ');
Writeln(f,n+1);
end;
close(f);
End.