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