#include //#include using namespace std; // using namespace atcoder; // using mint = modint1000000007; // const int mod = 1000000007; // using mint = modint998244353; // const int mod = 998244353; // const int INF = 1e9; // const long long LINF = 1e18; #define rep(i, n) for (int i = 0; i < (n); ++i) #define rep2(i, l, r) for (int i = (l); i < (r); ++i) #define rrep(i, n) for (int i = (n)-1; i >= 0; --i) #define rrep2(i, l, r) for (int i = (r)-1; i >= (l); --i) #define all(x) (x).begin(), (x).end() #define allR(x) (x).rbegin(), (x).rend() #define P pair template inline bool chmax(A& a, const B& b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(A& a, const B& b) { if (a > b) { a = b; return true; } return false; } string f(string s) { // 無理が確定したら5を4にする // それがむりならall } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); string s; cin >> s; string t; rep(i, s.size()) { if (s[i] > '5') {//6789 while (t.size() != s.size()) { t += '5'; } break; } else if (s[i] == '5' || s[i] == '4') { t += s[i]; continue; } else { // 0123 int pos = -1; rep(i, t.size()) if (t[i] == '5')pos = i; if (pos == -1) { t = ""; rep(i, s.size() - 1)t += '5'; break; } t[pos] = '4'; rep2(i, pos + 1, t.size())t[i] = '5'; while (t.size() != s.size()) t += '5'; break; } } cout << t << endl; return 0; }