#include #include using namespace std; bool solve(int i, string &n, stack &ans) { if (i == n.size()) { return true; } if (n[i] < '4') { // cout << 1 << endl; return false; } if (n[i] > '5') { // cout << 2 << endl; while (i < n.size()) { ans.push('5'); i++; } return true; } if (n[i] == '5') { // cout << 3 << endl; if (solve(i + 1, n, ans)) { ans.push('5'); return true; } else { i++; while (i < n.size()) { ans.push('5'); i++; } ans.push('4'); return true; } } if (n[i] == '4') { // cout << 4 << endl; if (solve(i + 1, n, ans)) { ans.push('4'); return true; } else { return false; } } } int main() { string n; cin >> n; stack ans; if (!solve(0, n, ans)) { for (int i = 1; i < n.size(); i++) { cout << 5; } cout << endl; } else { while (!ans.empty()) { cout << ans.top(); ans.pop(); } cout << endl; } }