import sys import math #from collections import deque, defaultdict, Counter #import heapq #import bisect #import itertools #import functools # 外部ライブラリ(AtCoder環境で利用可能) #from sortedcontainers import SortedList, SortedSet, SortedDict #from atcoder.dsu import DSU #from atcoder.segtree import SegTree #from atcoder.lazysegtree import LazySegTree #from atcoder.fenwicktree import FenwickTree # 入力高速化 #input = sys.stdin.readline # 再帰回数上限 # よくあるmod #MOD = 1000000007 MOD = 998244353 def solve(): # 解答ここから N = input() compromise = -1 compromise_req = False for i in range(len(N)-1, -1, -1): if int(N[i]) == 5 and compromise_req: compromise = i compromise_req = False elif int(N[i]) >= 6: compromise_req = False compromise = -1 elif int(N[i]) <= 3: compromise_req = True if compromise_req: if len(N) >= 2: print("".join(["5"] * (len(N) - 1))) else: print("4") return comed = False for i in range(len(N)): if comed: print("5", end="") continue if compromise == i: print("4", end="") comed = True continue if int(N[i]) == 5: print("5", end="") elif int(N[i]) >= 6: print("5", end="") comed = True else: print("4", end="") print() if __name__ == '__main__': T = 1 for _ in range(T): solve()