#include <bits/stdc++.h>
using namespace std;
void time_taken() { return; }
vector<long long int> fact(long long int n) {
  vector<long long int> x;
  long long int i;
  for (i = 1; i <= n; i++) {
    if (n % i == 0) x.push_back(i);
  }
  return x;
}
vector<long long int> prime() {
  long long int i, j, flag = 1;
  vector<long long int> x;
  for (j = 1; j < 50000; j++) {
    flag = 1;
    for (i = 2; i < j; i++) {
      if (j % i == 0) {
        flag = 0;
        break;
      }
    }
    if (flag) x.push_back(j);
  }
  return x;
}
long long int ncr(long long int a, long long int b) {
  long long int p = 1, n = 1;
  while (b) {
    p *= a;
    a--;
    n *= b;
    b--;
  }
  return p / n;
}
bool bysec(pair<long long int, long long int>& a,
           pair<long long int, long long int>& b) {
  return a.second < b.second;
}
vector<long long int> v;
void lucky(long long int n, int c4, int c7) {
  if (n > 1e11) return;
  if (c4 == c7 && n) v.push_back(n);
  lucky(n * 10 + 4, c4 + 1, c7);
  lucky(n * 10 + 7, c4, c7 + 1);
}
void solve() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  int n;
  cin >> n;
  lucky(0, 0, 0);
  sort(v.begin(), v.end());
  int idx = lower_bound(v.begin(), v.end(), n) - v.begin();
  cout << v[idx] << "\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int n = 1;
  while (n--) {
    solve();
  }
  time_taken();
}
