#include using namespace std; #define rep(i,n) for (int i = 0; i< (n); ++i) #define repi(i, a, b) for (int i = (a); i < (b); ++i) #define all(x) (x).begin(), (x).end() #define fore(i, a) for(auto &i:a) using ll = long long; int main() { string n; cin >> n; int sz = n.size(); auto subtract = [&](string num){ rep(i, sz){ int j = sz-i-1; if(num[j] == '0'){ num[j] = '9'; } else{ num[j] = num[j]-1; break; } } return num; }; auto skip = [&](string num, int ind){ num[ind] = '2'; ind++; while(ind < sz){ num[ind] = '9'; ind++; } return num; }; auto is_nabe = [&](string num){ bool flag = false; int sum = 0; int ind; rep(i, sz){ if(num[i] == '3'){ flag = true, ind = i; break; } sum += num[i]; } if(!flag && (sum%3==0)) return -2; else if(flag) return ind; else return -1; }; while(true){ int t = is_nabe(n); if(t == -1)break; if(t >= 0){ n = skip(n, t); } if(t == -2){ n = subtract(n); } } cout << n << endl; }