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