import sys, time, random, heapq, math, itertools from collections import deque, Counter, defaultdict #from sortedcontainers import SortedSet, SortedList from bisect import bisect, bisect_left, bisect_right import heapq as hq from functools import cache, cmp_to_key def debug(*x):print('debug:',*x, file=sys.stderr) sys.setrecursionlimit(300000) input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 N = list(input()) def d(): global N for i in range(len(N)-1,-1,-1): if N[i] == "0": N[i] = "9" continue else: N[i] = str(int(N[i]) - 1) if N[i] == "3": N[i] = str(int(N[i]) - 1) return 0 for i in range(len(N)): if N[i] == "3": N[i] = "2" for j in range(i+1,len(N)): N[j] = "9" break cnt = 0 for i in range(len(N)): cnt += int(N[i]) cnt %=3 if cnt % 3 == 0: d() ans = "".join(N) print(ans) else: print("".join(N))