#include <bits/stdc++.h>
using namespace std;
int n, hn;
string s, r, c;
int c1[100005], c2[100005];
string times(string s, int t) {
  c = "";
  for (int i = 0; i < t; ++i) c += s;
  return c;
}
inline void work(int w) {
  cout << r.substr(0, w + 1) + times("4", hn - c1[w]) + times("7", hn - c2[w]) +
              '\n';
}
signed main() {
  cin >> s, r = "";
  n = s.size(), hn = (n + 1) >> 1;
  if (n & 1) {
    for (int i = 1, I((n + 1) >> 1); i <= I; ++i) r = '4' + r + '7';
    return cout << r + '\n', 0;
  }
  for (int i = 1; i <= hn; ++i) r = '7' + r + '4';
  if (r < s) {
    r = "";
    for (int i = 0; i <= hn; ++i) r = '4' + r + '7';
    return cout << r + '\n', 0;
  }
  r = "";
  for (int i = 0, l(0), ll(0), t; i < n; ++i) {
    c1[i] = i ? c1[i - 1] : 0, c2[i] = i ? c2[i - 1] : 0;
    if (s[i] <= '4') {
      if (c1[i] < hn)
        r += '4', ++c1[i], l = i;
      else
        r += '7', ++c2[i], ll = l;
    } else if (s[i] <= '7' && c2[i] < hn)
      r += '7', ++c2[i], ll = l;
    else
      return t = c2[i] < hn ? l : ll, r[t] = '7', --c1[t], ++c2[t], work(t), 0;
    if (s[i] < r[i]) return work(i), 0;
  }
  cout << r;
  return 0;
}
