#include <bits/stdc++.h>
using namespace std;
const int inf = 100005;
int len;
char num[inf], ans[inf];
bool dfs(int pos, int a, int b, int k) {
  if (pos >= len) return 1;
  if (k) {
    int i;
    for (i = 0; i < a; i++) {
      ans[i + pos] = '4';
    }
    for (; i < len; i++) {
      ans[i + pos] = '7';
    }
    return 1;
  }
  if (a && num[pos] <= '4') {
    if (dfs(pos + 1, a - 1, b, num[pos] < '4')) {
      ans[pos] = '4';
      return 1;
    }
  }
  if (b && num[pos] <= '7') {
    if (dfs(pos + 1, a, b - 1, num[pos] < '7')) {
      ans[pos] = '7';
      return 1;
    }
  }
  return 0;
}
int main(void) {
  cin >> num;
  len = strlen(num);
  if (len & 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;
}
