#include <bits/stdc++.h>
long long inf = (long long)1e18;
using namespace std;
int expo(int base, int exponent) {
  int ans = 1;
  while (exponent != 0) {
    if (exponent & 1) ans = (1LL * ans * base) % 1000000007;
    base = (1LL * base * base) % 1000000007;
    exponent >>= 1;
  }
  return ans % 1000000007;
}
int solve() {
  long long n, d, p;
  cin >> n;
  vector<long long> a(n);
  for (long long i = 0; i < n; ++i) cin >> a[i];
  sort(a.begin(), a.end());
  if ((a[n - 1] + a[0]) % 2 == 0) {
    p = (a[n - 1] + a[0]) / 2;
    d = p - a[0];
    for (long long i = 0; i < n; ++i)
      if (a[i] > p)
        a[i] -= d;
      else if (a[i] < p)
        a[i] += d;
    for (long long i = 0; i < n - 1; ++i)
      if (a[i] != a[i + 1]) {
        cout << -1;
        return 0;
      }
    cout << d;
  } else {
    d = a[n - 1] - a[0];
    for (long long i = 0; i < n; ++i)
      if (a[i] < a[n - 1]) a[i] += d;
    for (long long i = 0; i < n - 1; ++i)
      if (a[i] != a[i + 1]) {
        cout << -1;
        return 0;
      }
    cout << d;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
}
