#include <bits/stdc++.h>
using namespace std;
char s[100005];
char ans[100005];
int len;
bool dfs(int pos, int n4, int n7, bool tag) {
  if (pos >= len) return true;
  if (tag) {
    for (int i = 0; i < n4; i++) ans[i + pos] = '4';
    for (int i = 0; i < n7; i++) ans[i + pos + n4] = '7';
    return true;
  }
  if (s[pos] <= '4' && n4) {
    if (dfs(pos + 1, n4 - 1, n7, s[pos] < '4')) {
      ans[pos] = '4';
      return true;
    }
  }
  if (s[pos] <= '7' && n7) {
    if (dfs(pos + 1, n4, n7 - 1, s[pos] < '7')) {
      ans[pos] = '7';
      return true;
    }
  }
  return false;
}
int main() {
  while (cin >> s) {
    len = strlen(s);
    if (len % 2 == 1 || !dfs(0, len / 2, len / 2, 0)) {
      len += 1 + (len % 2 == 0);
      for (int i = 0; i < len / 2; i++) ans[i] = '4';
      for (int i = len / 2; i < len; i++) ans[i] = '7';
    }
    ans[len] = '\0';
    cout << ans << endl;
  }
  return 0;
}
