#include <bits/stdc++.h>
using namespace std;
int X[110000], Y[110000];
pair<int, int> p[110000];
int disx[110000], disy[110000], lenx, leny;
int sumx[110000], sumy[110000];
int a[9 + 1];
int size[110000 * 20], ls[110000 * 20], rs[110000 * 20], root[110000], tot;
void Insert(int l, int r, int &no, int k) {
  int p = ++tot;
  size[p] = size[no] + 1, ls[p] = ls[no], rs[p] = rs[no];
  no = p;
  if (l == r)
    return;
  else {
    int mid = l + r >> 1;
    if (k <= mid)
      Insert(l, mid, ls[no], k);
    else
      Insert(mid + 1, r, rs[no], k);
  }
}
int query(int l, int r, int nol, int nor, int st, int en) {
  if (st <= l && r <= en)
    return size[nor] - size[nol];
  else {
    int mid = l + r >> 1;
    if (en <= mid)
      return query(l, mid, ls[nol], ls[nor], st, en);
    else if (st > mid)
      return query(mid + 1, r, rs[nol], rs[nor], st, en);
    else
      return query(l, mid, ls[nol], ls[nor], st, en) +
             query(mid + 1, r, rs[nol], rs[nor], st, en);
  }
}
int main() {
  int n, i, y1, y2, x1, x2;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d%d", X + i, Y + i);
    disx[i] = X[i];
    disy[i] = Y[i];
  }
  sort(disx + 1, disx + n + 1);
  sort(disy + 1, disy + n + 1);
  lenx = unique(disx + 1, disx + n + 1) - disx - 1;
  leny = unique(disy + 1, disy + n + 1) - disy - 1;
  for (i = 1; i <= n; i++) {
    p[i].first = lower_bound(disx + 1, disx + lenx + 1, X[i]) - disx;
    p[i].second = lower_bound(disy + 1, disy + leny + 1, Y[i]) - disy;
  }
  sort(p + 1, p + n + 1);
  for (i = 1; i <= n; i++) {
    if (p[i].first != p[i - 1].first) root[p[i].first] = root[p[i].first - 1];
    Insert(1, leny, root[p[i].first], p[i].second);
    sumx[p[i].first]++;
    sumy[p[i].second]++;
  }
  for (i = 1; i <= lenx; i++) sumx[i] += sumx[i - 1];
  for (i = 1; i <= leny; i++) sumy[i] += sumy[i - 1];
  for (i = 1; i <= 9; i++) scanf("%d", a + i);
  sort(a + 1, a + 9 + 1);
  do {
    x1 = lower_bound(sumx + 1, sumx + lenx + 1, a[1] + a[2] + a[3]) - sumx;
    x2 = lower_bound(sumx + 1, sumx + lenx + 1,
                     a[1] + a[2] + a[3] + a[4] + a[5] + a[6]) -
         sumx;
    y1 = lower_bound(sumy + 1, sumy + leny + 1, a[1] + a[4] + a[7]) - sumy;
    y2 = lower_bound(sumy + 1, sumy + leny + 1,
                     a[1] + a[4] + a[7] + a[2] + a[5] + a[8]) -
         sumy;
    if (sumx[x1] == a[1] + a[2] + a[3] &&
        sumx[x2] == a[1] + a[2] + a[3] + a[4] + a[5] + a[6] &&
        sumy[y1] == a[1] + a[4] + a[7] &&
        sumy[y2] == a[1] + a[4] + a[7] + a[2] + a[5] + a[8] &&
        query(1, leny, 0, root[x1], 1, y1) == a[1] &&
        query(1, leny, root[x1], root[x2], 1, y1) == a[4] &&
        query(1, leny, 0, root[x1], y1 + 1, y2) == a[2] &&
        query(1, leny, root[x1], root[x2], y1 + 1, y2) == a[5]) {
      printf("%lf %lf\n%lf %lf", disx[x1] + 0.5, disx[x2] + 0.5, disy[y1] + 0.5,
             disy[y2] + 0.5);
      return 0;
    }
  } while (next_permutation(a + 1, a + 9 + 1));
  puts("-1");
  return 0;
}
