procedure FindSum(N : Integer; S : String);
begin
if N = 0 then
WriteLn(S)
else
for var i := N downto 1 do
if Length(S) = 0 then
FindSum(N - i, IntToStr(i))
else
FindSum(N - i, S + '+' + IntToStr(i))
end;
begin
var N := ReadInteger('N =');
FindSum(N, '');
end.