#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <list>
#include <map>
#include <vector>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <climits>
using namespace std;


#define DEBUG(x) cout << ">>> " << #x << " : " << x << endl;
#define REP(i,a) for (int i = 0; i < (a) ; ++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)
#define FOREACH(it,a) for (__typeof((a).begin()) it = (a).begin(); it !=(a).end();++it)


const int INF = 1<<29;
typedef long long ll;
typedef pair<int,int> ii;
typedef vector<ii> vii;
typedef  vector<int> vi;

void myprint(string s) {
	bool zeros = true;
	REP(i,(int)s.length()) {
		if (s[i] != '0') zeros =false;
		if (!zeros) cout << s[i];
	}
	cout << endl;
}

void solve(string s, int start) {
	int len = s.length();
	bool first = true;
	int pos8 = -1;
	FORD(i,len-1,start+1) {
		if (s[i] < '8' && s[i-1] > '0') {
			s[i] += 2;
			s[i-1] += -1;
			myprint(s);
			return;
		}
	}
	FORD(i,len-1,start+1) {
		if (first && s[i] < '9') {
			s[i] += 1;
			pos8 = i;
			first = false;
		}
		else if (!first && s[i] < '9' && s[i-1] > '0') {
			s[i] += 1;
			s[i-1] += -1;
			myprint(s);
			return;
		}
	}	
	/*if (allzeros) {
		cout << "-1" << endl;
		return;
	}*/
	if (s[start] < '9' && pos8 == -1) {
		s[start] += 1;
		cout << "-";
		FOR(i, start, len-1) cout << s[i];
		cout << endl;
	} else {
		if (pos8 == -1)	cout << "-1";
		else cout << "-";
		//s[start]-=1;
		cout << (s[start]);
		FOR(i, start+1, len-1) cout << s[i];
		cout << endl;
	}
	
}

int main(){
	ios_base::sync_with_stdio(false);
	string s;
	int start;
	bool zeros, isset;
	while(1) {
		cin >> s;
		if (s == "END") break;
		zeros = true;
		isset = false;
		start = 0;
		REP(i,(int)s.length()) {
			if (s[i] != '0') zeros =false;
			if (!zeros) {
				start = i;
				isset = true;
				break;
			}
		}
		if (!isset) start = s.length()-1;
		//DEBUG(start)
		//DEBUG(s)
		solve(s, start);
	}
}