#include <bits/stdc++.h>
using namespace std;
const long long int INF = 2e18;
const long long int N = 1e6;
bool isPrime(long long int n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long int i = 5; i * i <= n; i = i + 6) {
    if (n % i == 0 || n % (i + 2) == 0) return false;
  }
  return true;
}
long long int fact(long long int n) {
  long long int ans = 1;
  for (long long int i = 1; i <= n; i++) ans = (ans * i) % 1000000000;
  return ans;
}
long long int exp(long long int x, long long int n) {
  long long int res = 1;
  while (n > 0) {
    if (n % 2 == 1) res = (res * x) % 1000000000;
    x = (x * x) % 1000000000;
    n = n / 2;
  }
  return res;
}
void null() {
  long long int n;
  cin >> n;
  string s = to_string(n);
  long long int m = s.size() % 2 ? s.size() + 1 : s.size();
  vector<long long int> v;
  string z = "";
  for (int i = 0; i < m / 2; i++) z += '4';
  for (int i = 0; i < m / 2; i++) z += '7';
  do {
    long long int ans = stoll(z);
    v.push_back(ans);
  } while (next_permutation(z.begin(), z.end()));
  z += '4';
  z += '7';
  sort(z.begin(), z.end());
  v.push_back(stoll(z));
  cout << (*lower_bound(v.begin(), v.end(), n)) << '\n';
  return;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout << setprecision(9);
  cout << fixed;
  long long int t = 1;
  clock_t start, end;
  start = clock();
  while (t--) {
    null();
  }
  end = clock();
  double time_taken = double(end - start) / double(CLOCKS_PER_SEC);
}
