#include <bits/stdc++.h>
using namespace std;

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

char num2[123456];
int num[123456];
int n;

int zametej_zprava(){
	int i = n-1;
	int dist = 2;
	for(;i>=0 && dist > 0;i--){
		dist-=9-num[i];
	}
	return i;
}

void vypis_min(int soucet, int pocet){
	if(soucet % 9 != 0)pocet--;
	pocet-=soucet/9;
	REP(i, pocet)printf("0");
	if(soucet % 9 != 0){
		printf("%d", soucet%9);
	}
	soucet-=soucet%9;
	REP(i, soucet/9)printf("9");
}

void vypis_max(int soucet, int pocet){
	if(soucet % 9 != 0)pocet--;
	pocet-=soucet/9;
	int pr = soucet % 9;
	soucet-=pr;
	REP(i, soucet/9)printf("9");
	if(pr > 0)printf("%d", pr);
	REP(i, pocet)printf("0");
}


bool testcase(){
	scanf("%s", num2);
	n = strlen(num2);

	if(num2[0] == 'E')return false;

	if(num2[0] == '-'){
		FOR(i, 1, n-1)num[i] = num2[i] - '0';
		bool ok = false;
		FORD(i, n-1, 1)if(num[i] < 9){
			ok = true;
			num[i]++;
			break;
		}
		if(!ok){
			printf("-1");
		} else{
			printf("-");
		}
		FOR(i, 1, n-1)printf("%d", num[i]);
		printf("\n");
	} else{
		REP(i, n)num[i] = num2[i] - '0';

		int cs = 0;
		for(int i = 1; i < n; i++)cs+=num[i];
		if(cs>=9*(n-1)-1){
			cs+=num[0];
			cs++;
			printf("-");
			vypis_min(cs, n+(num[0]==9));
			printf("\n");
		} else{
			int i = n-1;
			int dist = 2;
			cs = 0;
			for(;i>=0 && dist > 0;i--){
				dist-=9-num[i];
				cs+=num[i];
			}
			for(;i>=0 && num[i] == 0;i--){
				cs+=num[i];
			}
			num[i]--;
			bool start = true;
			REP(j, i+1){
				if(start){
					if(num[j]==0)continue;
					start=false;
				}
				printf("%d", num[j]);
			}
			vypis_max(cs+2, n-(i+1));
			printf("\n");
		}
	
	}

	return true;
}


int main() {

	while(testcase());

	return 0;
}