#include <bits/stdc++.h>
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4")
using namespace std;
const int inf = (int)2e9 + 99999, mod = (int)1e9 + 7;
const long long linf = (long long)2e18 + 99999;
int kob(int x, int y) { return ((long long)x * y) % mod; }
int aza(int x, int y) {
  x -= y;
  if (x < 0) return x + mod;
  return x;
}
int kos(int x, int y) {
  x += y;
  if (x >= mod) return x - mod;
  return x;
}
const int maxn = (int)1e5 + 777, maxn2 = (int)1e6 + 55;
int main() {
  int a1, a2, a3, a4;
  cin >> a1 >> a2 >> a3 >> a4;
  int a11 = a1, a22 = a2, a33 = a3, a44 = a4;
  a1 -= a3;
  a2 -= a3;
  bool bad = false;
  if (a3 <= a4) bad = 1, --a1;
  if (a3 < a4) --a2;
  if (abs(a3 - a4) >= 2 || a1 < 0 || a2 < 0) {
    if (a33 == a44 && a11 < a22) {
      a11 -= a33;
      a22 -= a33;
      a22--;
      if (a11 < 0 || a22 < 0) {
        cout << -1;
        exit(0);
      }
      for (int i = 1; i <= a33; ++i) cout << "74";
      for (int i = 1; i <= a11; ++i) cout << 4;
      cout << 7;
      for (int i = 1; i <= a22; ++i) cout << 7;
      exit(0);
    }
    cout << "-1", exit(0);
  }
  if (a3 < a4) cout << '7';
  for (int i = 1; i <= a1; ++i) cout << '4';
  for (int i = 1; i <= a3; ++i) cout << "47";
  for (int i = 1; i <= a2; ++i) cout << '7';
  if (bad) cout << '4';
  return 0;
}
