#include <iostream>
#include <stdio.h>
#include <math.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<list>

using namespace std;

#define FOR(i, a, b) for(int i=a; i<b; ++i)
#define FORD(i, a, b) for(int i=a-1; i>=b; --i)

char s[100010];

int main()
{
	while(1) {
		scanf("%s", s);
		if (strcmp(s, "END") == 0) break;
		
		int len = strlen(s);
		int sum = 0;
		FOR(i,0,len) {
			sum += s[i] - '0';
		}
		sum++;

		int chck = 2;
			FORD(i, len, 0) {
				if (chck > 0) {
					if (s[i] == '9') continue;
					if (s[i] == '8') {
						chck--;
					} else {
						chck = 0;
					}
				} else if (chck == 0) {
					if (s[i] != '0') {
						chck = -1;
						break;
					}
				}
			}

		if (sum >= 9 * len || (chck != -1 && sum >= 9 * (len - 1)) ) {

			int max = ceil((double) sum / 9.0);
			FORD(i, max + 1, 1) {
				s[i] = sum > 9 ? '9' : '0' + sum;
				sum -= 9;
				if (sum < 0) sum = 0;
			}
			s[0] = '-';
			s[max + 1] = '\0';

		} else {
			int state = 2;
			FORD(i, len, 0) {
				if (state > 0) {
					if (s[i] == '9') continue;
					if (s[i] == '8') {
						s[i]++;
						state--;
					} else {
						s[i] = s[i] + state;
						state = 0;
					}
				} else if (state == 0) {
					if (s[i] != '0') {
						s[i]--;
						state = -1;
						break;
					}
				}
			}

			if (state != -1 || s[0] == '0') {
				len--;
				FOR(i, 0, len) {
					s[i] = sum > 9 ? '9' : '0' + sum;
					sum -= 9;
					if (sum < 0) sum = 0;
				}
				s[len] = '\0';
			}
		}

		printf("%s\n", s);
	}

	return 0;
}