import sys
def solve():
data = sys.stdin.read().split()
if not data:
return
n = int(data[0])
res = []
def dfs(rem, max_val, path):
if rem == 0:
res.append("+".join(map(str, path)))
return
for i in range(min(max_val, rem), 0, -1):
path.append(i)
dfs(rem - i, i, path)
path.pop()
dfs(n, n, [])
sys.stdout.write("\n".join(res) + "\n")
if __name__ == "__main__":
solve()