#include <bits/stdc++.h>
using namespace std;
using namespace std;
int ni() {
  int _num;
  scanf("%d", &_num);
  return _num;
}
int testnum;
void preprocess() {}
string s, t;
bool dfs(int i, int four, int seven, bool slack) {
  if (four == 0 && seven == 0) return true;
  if (slack) {
    t.insert(t.end(), four, '4');
    t.insert(t.end(), seven, '7');
    return true;
  }
  if (four && s[i] <= '4') {
    t.insert(i, 1, '4');
    if (s[i] < '4') return dfs(i + 1, four - 1, seven, true);
    if (dfs(i + 1, four - 1, seven, false)) return true;
    t.erase(((int)(t.size())) - 1);
  }
  if (seven && s[i] <= '7') {
    t.insert(i, 1, '7');
    if (s[i] < '7') return dfs(i + 1, four, seven - 1, true);
    if (dfs(i + 1, four, seven - 1, false)) return true;
    t.erase(((int)(t.size())) - 1);
  }
  return false;
}
void solve() {
  if (((int)(s.size())) % 2) s = '0' + s;
  while (true) {
    int L = ((int)(s.size()));
    if (dfs(0, L / 2, L / 2, false)) break;
    s = "00" + s;
  }
  cout << t << endl;
}
bool input() {
  cin >> s;
  return true;
}
int main() {
  preprocess();
  int T = 1;
  for (testnum = 1; testnum <= T; testnum++) {
    if (!input()) break;
    solve();
  }
}
