def dfs(n, depth):
if depth == 10:
if sum(path) == n:
global ans
ans += 1
a.append(path.copy())
return
for i in range(1, 4):
path[depth] = i
dfs(n, depth + 1)
n = int(input())
path = [0] * 10
ans = 0
a = []
if n < 10 or n > 30:
print(0)
else:
dfs(n, 0)
print(ans)
a.sort()
for x in a:
print(' '.join(map(str, x)))