#include <bits/stdc++.h>
using namespace std;
int n;
pair<int, int> a[105];
double ans = -1;
bool check(double r, double x, double y) {
  for (int t = 0; t < n; t++) {
    double h = sqrt(((a[t].first - x) * (a[t].first - x)) +
                    ((a[t].second - y) * (a[t].second - y)));
    if (r - h > 1e-5) return false;
  }
  return true;
}
bool have(pair<int, int> x) {
  for (int i = 0; i < n; i++)
    if (a[i] == x) return true;
  return false;
}
bool pan(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  long long L1 = ((a.first - b.first) * (a.first - b.first)) +
                 ((a.second - b.second) * (a.second - b.second)),
            L2 = ((c.first - b.first) * (c.first - b.first)) +
                 ((c.second - b.second) * (c.second - b.second)),
            L3 = ((a.first - c.first) * (a.first - c.first)) +
                 ((a.second - c.second) * (a.second - c.second));
  pair<int, int> d;
  if (L1 + L2 == L3)
    d = make_pair(a.first + c.first - b.first, a.second + c.second - b.second);
  if (L1 + L3 == L2)
    d = make_pair(b.first + c.first - a.first, b.second + c.second - a.second);
  if (L2 + L3 == L1)
    d = make_pair(a.first + b.first - c.first, a.second + b.second - c.second);
  if ((L1 + L2 == L3 || L1 + L3 == L2 || L2 + L3 == L1) && have(d)) {
    double x = a.first + b.first + c.first + d.first,
           y = a.second + b.second + c.second + d.second;
    x /= 4, y /= 4;
    double r = sqrt(((a.first - x) * (a.first - x)) +
                    ((a.second - y) * (a.second - y)));
    if (check(r, x, y)) ans = max(ans, r);
  }
  return L1 + L2 <= L3 || L1 + L3 <= L2 || L2 + L3 <= L1;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d%d", &a[i].first, &a[i].second);
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++)
      for (int k = j + 1; k < n; k++) {
        if (pan(a[i], a[j], a[k])) continue;
        long long a1, b1, c1, a2, b2, c2;
        a1 = 2 * a[j].first - 2 * a[i].first;
        b1 = 2 * a[j].second - 2 * a[i].second;
        c1 = ((a[j].first) * (a[j].first)) - ((a[i].first) * (a[i].first)) +
             ((a[j].second) * (a[j].second)) - ((a[i].second) * (a[i].second));
        a2 = 2 * a[j].first - 2 * a[k].first;
        b2 = 2 * a[j].second - 2 * a[k].second;
        c2 = ((a[j].first) * (a[j].first)) - ((a[k].first) * (a[k].first)) +
             ((a[j].second) * (a[j].second)) - ((a[k].second) * (a[k].second));
        double x =
            (c1 * 1.0 * b2 - c2 * 1.0 * b1) / (a1 * 1.0 * b2 - a2 * 1.0 * b1);
        double y =
            (c1 * 1.0 * a2 - c2 * 1.0 * a1) / (b1 * 1.0 * a2 - b2 * 1.0 * a1);
        double r = sqrt(((a[i].first - x) * (a[i].first - x)) +
                        ((a[i].second - y) * (a[i].second - y)));
        if (check(r, x, y)) ans = max(r, ans);
      }
  if (ans < 0)
    printf("-1\n");
  else
    printf("%8f\n", ans);
  return 0;
}
