#include <bits/stdc++.h>
using namespace std;
int Mod(int x) { return (x % 1000000007 + 1000000007) % 1000000007; }
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long lcm(long long a, long long b) { return (a * (b / gcd(a, b))); }
long long bigmod(long long b, long long p, long long m) {
  if (p == 0) return 1;
  if (p % 2 == 0) {
    long long temp = bigmod(b, p / 2, m);
    return (temp * temp) % m;
  }
  return (bigmod(b, p - 1, m) * (b % m)) % m;
}
char inp[10010];
string scan() {
  scanf("%s", inp);
  string s;
  for (int i = 0; inp[i]; i++) s += inp[i];
  return s;
}
int com(string t, string s) {
  string a, b;
  a = s + t;
  b = t + s;
  for (int i = 0; i < a.length(); i++) {
    if (a[i] > b[i]) return 1;
    if (a[i] < b[i]) return 0;
  }
  return 0;
}
vector<vector<int> > v;
vector<bool> visited;
int dfs(int node) {
  visited[node] = 1;
  for (int i = 0; i < (int)v[node].size(); i++) {
    if (!visited[v[node][i]]) dfs(v[node][i]);
  }
}
int connectedcomponenetscnt(int head) {
  int cnt = 0;
  for (int i = 1; i < 500; i++) {
    if (!visited[i]) {
      dfs(i);
      cnt++;
    }
  }
  return cnt;
}
int a[4];
int check() {
  int R = 0;
  if (a[2] == a[3] && (a[0] < a[2] || a[1] < a[2] || (max(a[0], a[1]) <= a[2])))
    R = 1;
  int maxx = max(a[2], a[3]);
  if (abs(a[2] - a[3]) == 1 && (a[0] < maxx || a[1] < maxx)) R = 1;
  if (abs(a[2] - a[3]) > 1 || (R)) return 0;
  return 1;
}
int main() {
  for (int i = 0; i < 4; i++) cin >> a[i];
  int yes = check();
  if (!yes) {
    cout << -1;
    return 0;
  }
  string s;
  if (a[2] == a[3]) {
    if (a[0] > a[2]) {
      for (int i = 0; i < a[2]; i++) {
        s += "47";
        a[0]--;
        a[1]--;
      }
      s += '4';
      a[0]--;
    } else {
      for (int i = 0; i < a[3]; i++) {
        s += "74";
        a[0]--;
        a[1]--;
      }
      s += '7';
      a[1]--;
    }
  } else {
    if (a[2] > a[3]) {
      for (int i = 0; i < a[2]; i++) {
        s += "47";
        a[0]--;
        a[1]--;
      }
    } else {
      for (int i = 0; i < a[3]; i++) {
        s += "74";
        a[0]--;
        a[1]--;
      }
    }
  }
  int j = 0;
  for (int i = 0; i < s.length(); i++)
    if (s[i] == '7') j = i;
  for (int i = 0; i < s.length(); i++) {
    printf("%c", s[i]);
    if (s[i] == '4' && a[0] > 0) {
      while (a[0] > 0) {
        a[0]--;
        cout << 4;
      }
    }
    if (i == j && a[1] > 0) {
      while (a[1] > 0) {
        a[1]--;
        cout << 7;
      }
    }
  }
  while (a[0] > 0 || a[1] > 0) {
    if (a[0])
      cout << 4;
    else
      cout << 7;
    a[0]--;
    a[1]--;
  }
}
