#include <bits/stdc++.h>
using namespace std;
struct Nodo {
  string txt;
  int c_4;
  int c_7;
  Nodo() {}
  Nodo(string texto, int C1, int C2) {
    txt = texto;
    c_4 = C1;
    c_7 = C2;
  }
  bool operator<(const Nodo &refe) const {
    if (txt.size() != refe.txt.size()) {
      return (txt.size() > refe.txt.size());
    } else {
      return (txt > refe.txt);
    }
  }
};
int main() {
  string algo;
  cin >> algo;
  priority_queue<Nodo> cola;
  cola.push(Nodo("", 0, 0));
  while (!cola.empty()) {
    string txt = cola.top().txt;
    int c1 = cola.top().c_4;
    int c2 = cola.top().c_7;
    cola.pop();
    if (c1 == c2) {
      if (txt.size() >= algo.size()) {
        if (atoll(txt.c_str()) >= atoll(algo.c_str())) {
          cout << txt << endl;
          return 0;
        }
      }
    }
    if (txt.size() > algo.size() + 2) continue;
    cola.push(Nodo(txt + "4", c1 + 1, c2));
    cola.push(Nodo(txt + "7", c1, c2 + 1));
  }
}
