#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
const int MAX_ARRAY = 100005;
string num2str(int i) {
  stringstream ss;
  ss << i;
  return ss.str();
}
std::vector<std::string> split(std::string str, std::string pattern) {
  std::string::size_type pos;
  std::vector<std::string> result;
  str += pattern;
  std::string::size_type size = str.size();
  for (int i = 0; i < size; i++) {
    pos = str.find(pattern, i);
    if (pos < size) {
      std::string s = str.substr(i, pos - i);
      result.push_back(s);
      i = pos + pattern.size() - 1;
    }
  }
  return result;
}
bool IsPrimer(int x) {
  for (int i = 2; i < sqrt(double(x)); i++) {
    if (x % i == 0) {
      return false;
    }
  }
  return true;
}
bool DesCmp(int a, int b) { return a > b; }
int main() {
  int r1, r2;
  cin >> r1 >> r2;
  int c1, c2;
  cin >> c1 >> c2;
  int d1, d2;
  cin >> d1 >> d2;
  for (int a = 1; a <= 9; a++) {
    for (int b = 1; b <= 9; b++) {
      for (int c = 1; c <= 9; c++) {
        for (int d = 1; d <= 9; d++) {
          if (a + b == r1 && c + d == r2 && a + c == c1 && b + d == c2 &&
              a + d == d1 && b + c == d2 && a != b && a != c && a != d &&
              b != c && c != d) {
            cout << a << " " << b << endl;
            cout << c << " " << d << endl;
            return 0;
          }
        }
      }
    }
  }
  cout << "-1" << endl;
  return 0;
}
