/* 
 * File:   fox.cpp
 * Author: cteam032
 *
 * Created on October 24, 2015, 9:50 AM
 */

#include <cstdlib>
#include <iostream>
using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    string number;

    while (cin >> number) {
        if (number == "END") return 0;
        int len = number.length();
        int ukaz = len - 1;
        int rozdil = 0;
        unsigned long long cifSoucet = 0;

        int * postupneSoucty = new int[len];
        //todo zaporne cislo

        for (int i = 0; i < len; i++) {
            cifSoucet += number[i] - 48;
            postupneSoucty[i] = cifSoucet;
        }

        while (rozdil < 2 && ukaz > 0) { //nebo >= who knows           
            rozdil += '9' - number[ukaz];
            ukaz--;
        }
        if (rozdil >= 2 && ukaz > 0) {
            if (number[ukaz] > '0') {
                number[ukaz]--;
                int zbytekNaDoplneni = cifSoucet - postupneSoucty[ukaz] + 2;
                for (int i = ukaz + 1; i < len; i++) {
                    if (zbytekNaDoplneni >= 9) {
                        number[i] = '9';
                        zbytekNaDoplneni -= 9;
                    } else {
                        number[i] = zbytekNaDoplneni + 48;
                        zbytekNaDoplneni = 0;
                    }
                }
            } else { //dostaneme spravny nebo 0atospravny
                while (number[ukaz] == '0' && ukaz > 0)
                    ukaz--;

                number[ukaz]--;
                int zbytekNaDoplneni = cifSoucet - postupneSoucty[ukaz] + 2;
                for (int i = ukaz + 1; i < len; i++) {
                    if (zbytekNaDoplneni >= 9) {
                        number[i] = '9';
                        zbytekNaDoplneni -= 9;
                    } else {
                        number[i] = zbytekNaDoplneni + 48;
                        zbytekNaDoplneni = 0;
                    }
                }
            }
        } else if (ukaz == 0 && rozdil >= 2) {
            number[ukaz]--;
            int zbytekNaDoplneni = cifSoucet - postupneSoucty[ukaz] + 2;
            for (int i = ukaz + 1; i < len; i++) {
                if (zbytekNaDoplneni >= 9) {
                    number[i] = '9';
                    zbytekNaDoplneni -= 9;
                } else {
                    number[i] = zbytekNaDoplneni + 48;
                    zbytekNaDoplneni = 0;
                }
            }
        } else { //ukazatel roven 0 a rozdil < 2
            if(rozdil == 0){
                //jdeme do minusu a prvni cislo zvetsime o jedna pokud to jde jinak dame pred nej 1
                cout << '-';
                if(number[ukaz] == '9'){
                    cout << '1';
                }else{
                    number[0]++;                     
                }
            }else{ //rozdil == 1
                //jdeme do muinusu a prvni cislo nechame byt a na dalsi dame 9
                cout << '-';
                for(int i = 1; i < len; i++)
                    number[i] = '9';
            }            
        }



        //vypis
        if(number[0] == '0') for(int i = 1; i < len; i++) 
            cout << number[i];
        else
            cout << number;
        cout << endl;
        //cout << cifSoucet;
    }

    return 0;
}