//PascalABC.NET 3.1 сборка 1200
procedure Decomposition(depth, previous, rest: integer; a: string);
begin
if rest < 0 then
exit;
if (rest = 0) and a.Contains('+') then begin
Println(a);
exit;
end;
for var i := previous to rest do
Decomposition(depth + 1, i, rest - i,
(a = '') ? i.ToString() : a + ' + ' + i.ToString());
end;
begin
Decomposition(1, 1, ReadInteger('n ='), '');
end.