var
e1, e2, n : longint;
fi, fo : text;
procedure scrie (e : longint, pas : integer);
begin
while e <= n do
begin
write(fo,e,' ');
inc(e,pas);
pas := 4-pas;
end;
writeln(fo);
end;
begin
assign(fi,'multimi2.in'); reset(fi);
assign(fo,'multimi2.out'); rewrite(fo);
read(fi,n);
if n mod 4 = 0 then
begin
writeln(fo, 0);
e1 := 1; writeln(fo, n div 2); scrie (e1, 3);
e2 := 2; writeln(fo, n div 2); scrie (e2, 1);
end;
if n mod 4 = 1 then
begin
writeln(fo, 1);
e1 := 2; writeln(fo, n div 2+1); write(fo, 1, ' '); scrie (e1, 3);
e2 := 3; writeln(fo, n div 2); scrie (e2, 1);
end;
if n mod 4 = 2 then
begin
writeln(fo, 1);
e1 := 3; writeln(fo, n div 2); write(fo,1,' '); scrie (e1, 3);
e2 := 4; writeln(fo, n div 2); write(fo,2,' '); scrie (e2, 1);
end;
if n mod 4 = 3 then
begin
writeln(fo, 0);
e1 := 4; writeln(fo, n div 2+1); write(fo,1,' ',2,' '); scrie (e1, 3);
e2 := 5; writeln(fo, n div 2); write(fo,3,' '); scrie (e2, 1);
end;
close(fi); close(fo);
end.