#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
int n, a[11], pm[11], x[N], y[N];
vector<pair<int, int>> pt;
vector<int> seg[N << 2];
double ansx1, ansx2, ansy1, ansy2;
void build(int l, int r, int rt) {
  for (int i = l; i <= r; ++i) {
    seg[rt].push_back(pt[i].second);
  }
  sort(seg[rt].begin(), seg[rt].end());
  if (l == r) return;
  int mid = l + r >> 1;
  build(l, mid, rt << 1);
  build(mid + 1, r, rt << 1 | 1);
}
int query(int l, int r, int rt, int L, int R, int leval) {
  if (L <= l && r <= R) {
    int ret =
        upper_bound(seg[rt].begin(), seg[rt].end(), leval) - seg[rt].begin();
    return ret;
  }
  int mid = l + r >> 1, ret = 0;
  if (L <= mid) ret += query(l, mid, rt << 1, L, R, leval);
  if (R > mid) ret += query(mid + 1, r, rt << 1 | 1, L, R, leval);
  return ret;
}
bool check() {
  int x1 = a[pm[0]] + a[pm[1]] + a[pm[2]] - 1;
  int x2 = x1 + a[pm[3]] + a[pm[4]] + a[pm[5]];
  int y1 = a[pm[0]] + a[pm[3]] + a[pm[6]] - 1;
  int y2 = y1 + a[pm[1]] + a[pm[4]] + a[pm[7]];
  if (x1 + 1 >= n || x[x1] == x[x1 + 1]) return false;
  if (x2 + 1 >= n || x[x2] == x[x2 + 1]) return false;
  if (y1 + 1 >= n || y[y1] == y[y1 + 1]) return false;
  if (y2 + 1 >= n || y[y2] == y[y2 + 1]) return false;
  if (query(0, n - 1, 1, 0, x1, y[y1]) != a[pm[0]]) return false;
  if (query(0, n - 1, 1, 0, x1, y[y2]) != a[pm[0]] + a[pm[1]]) return false;
  if (query(0, n - 1, 1, x1 + 1, x2, y[y1]) != a[pm[3]]) return false;
  if (query(0, n - 1, 1, x1 + 1, x2, y[y2]) != a[pm[3]] + a[pm[4]])
    return false;
  ansx1 = (x[x1] + x[x1 + 1]) / 2.0, ansx2 = (x[x2] + x[x2 + 1]) / 2.0;
  ansy1 = (y[y1] + y[y1 + 1]) / 2.0, ansy2 = (y[y2] + y[y2 + 1]) / 2.0;
  return true;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &x[i], &y[i]);
    pt.push_back({x[i], y[i]});
  }
  sort(pt.begin(), pt.end());
  sort(x, x + n);
  sort(y, y + n);
  for (int i = 0; i < 9; ++i) scanf("%d", &a[i]);
  for (int i = 0; i < 9; ++i) pm[i] = i;
  build(0, n - 1, 1);
  do {
    if (check()) {
      printf("%.10f %.10f\n", ansx1, ansx2);
      printf("%.10f %.10f", ansy1, ansy2);
      return 0;
    }
  } while (next_permutation(pm, pm + 9));
  puts("-1");
  return 0;
}
