#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};
string s, t, ans;
void dfs(int i, int x, int y, bool g) {
  if (x > s.size() / 2 || y > s.size() / 2) return;
  if (i == s.size()) {
    ans = t;
    return;
  }
  if (g) {
    t[i] = '4';
    dfs(i + 1, x + 1, y, 1);
    if (!(ans == "")) {
      return;
    }
    t[i] = '7';
    dfs(i + 1, x, y + 1, 1);
  } else {
    if (s[i] <= '4') {
      t[i] = '4';
      dfs(i + 1, x + 1, y, '4' > s[i]);
      if (!(ans == "")) return;
    }
    if (s[i] <= '7') {
      t[i] = '7';
      dfs(i + 1, x, y + 1, '7' > s[i]);
      if (!(ans == "")) return;
    }
  }
}
int main() {
  cin >> s;
  for (long long i = 0; i < (s.size() / 2); i++) {
    t += '7';
  }
  for (long long i = 0; i < (s.size() / 2); i++) {
    t += '4';
  }
  if (s.size() % 2 == 1 || s > t) {
    for (long long i = 0; i < (s.size() / 2 + 1); i++) {
      ans += '4';
    }
    for (long long i = 0; i < (s.size() / 2 + 1); i++) {
      ans += '7';
    }
    cout << ans;
    return 0;
  }
  t = s;
  dfs(0, 0, 0, 0);
  cout << ans;
  return 0;
}
