# 분해합 입력
N = int(input())
# 분해합 생성자를 찾기 위한 반복문(brute force)
for i in range(1, N+1):
# 각 자리수(i)를 모두 더해줌
num = sum((map(int, str(i))))
# 분해합은 생성자와 각 자리수의 합
sums = i + num
# i가 오름차순으로 1씩 늘어나기 때문에,
# 가장 처음에 분해합과 입력값이 같을 때가
# 생성자 최소값임
if sums == N:
print(i)
break
# 분해합이 생성자 i와 같다면 생성자가 없는 것임
if i == N:
print(0)