#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 7;
int cnt[maxn], temp[maxn], ma;
int t;
bool check(int n, int m, int x, int y) {
  if (x <= 0 || y <= 0 || x > n || y > m) return false;
  memset(temp, 0, sizeof(temp));
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) temp[abs(i - x) + abs(j - y)]++;
  for (int i = 0; i < t; i++)
    if (temp[i] != cnt[i]) return false;
  return true;
}
int main() {
  int x;
  scanf("%d", &t);
  for (int i = 0; i < t; i++) {
    int a;
    scanf("%d", &a);
    cnt[a]++;
    if (a > ma) ma = a;
  }
  if (cnt[0] != 1) {
    puts("-1");
    return 0;
  }
  for (x = 1; x <= ma; x++)
    if (cnt[x] < 4 * x) break;
  for (int i = 1; i * i <= t; i++) {
    if (t % i != 0) continue;
    if (check(i, t / i, i - x + 1, 1 + ma - i + x)) {
      printf("%d %d\n%d %d", i, t / i, i - x + 1, 1 + ma - i + x);
      return 0;
    } else if (check(t / i, i, t / i - x + 1, 1 + ma - t / i + x)) {
      printf("%d %d\n%d %d", t / i, i, t / i - x + 1, 1 + ma - t / i + x);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
}
