#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
vector<char> print;
bool solve(vector<long long> a, string s1, string s2) {
  string ans;
  a[3] -= (a[2] - 1);
  while (a[2] > 0) ans += s1, a[2]--;
  if (a[3] > 0) ans += s2.back(), a[3]--;
  while (a[3] > 0) ans += s2, a[3]--;
  long long id = -1;
  for (long long i = 0; i < ans.size(); i++) {
    auto x = ans[i];
    a[0] -= x == '4', a[1] -= x == '7';
    if (x == '7') id = i;
  }
  print.clear();
  for (long long i = 0; i < ans.size(); i++) {
    print.push_back(ans[i]);
    if (ans[i] == '4')
      while (a[0]-- > 0) print.push_back('4');
    if (ans[i] == '7' and id == i)
      while (a[1]-- > 0) print.push_back('7');
  }
  return true;
}
bool check(vector<long long> v) {
  for (long long i = 0; i < print.size(); i++) {
    v[0] -= print[i] == '4';
    v[1] -= print[i] == '7';
    if (i + 1 < print.size()) {
      string tp;
      tp += print[i];
      tp += print[i + 1];
      v[2] -= tp == "47";
      v[3] -= tp == "74";
    }
  }
  return count(v.begin(), v.end(), 0) == 4;
}
void write() {
  for (auto x : print) cout << x;
  exit(0);
}
void solve() {
  vector<long long> a(4);
  for (auto &x : a) cin >> x;
  vector<long long> v = a;
  if (abs(a[2] - a[3]) > 1) {
    cout << "-1" << '\n';
    return;
  }
  string s1 = "47", s2 = "74", ans;
  if (solve(a, s1, s2) and check(v)) write();
  swap(a[2], a[3]);
  if (solve(a, s2, s1) and check(v)) write();
  cout << -1 << '\n';
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  long long t = 1;
  while (t--) solve();
  return 0;
}
