#include <bits/stdc++.h>
using namespace std;
int n;
const double eps = 1e-6;
inline double dcmp(double x) {
  if (x < -eps) return -1;
  if (x > eps) return 1;
  return 0;
}
const int maxn = 105;
struct point {
  double x, y;
  point() {}
  point(double _x, double _y) { x = _x, y = _y; }
  friend bool operator==(point a, point b) { return a.x == b.x && a.y == b.y; }
} P[maxn];
inline double sqr(double x) { return x * x; }
inline double dist(point A, point B) {
  return sqrt(sqr(A.x - B.x) + sqr(A.y - B.y));
}
point empty = point(-1e9, -1e9);
point calc_circle(point A, point B, point C) {
  double d1 = sqr(A.x) + sqr(A.y) - sqr(B.x) - sqr(B.y);
  double d2 = sqr(B.x) + sqr(B.y) - sqr(C.x) - sqr(C.y);
  double dx1 = A.x - B.x, dx2 = B.x - C.x;
  double dy1 = A.y - B.y, dy2 = B.y - C.y;
  double tmp = (dx2 * dy1 - dx1 * dy2) * 2.0;
  if (dcmp(tmp) == 0) return empty;
  return point((d2 * dy1 - d1 * dy2) / tmp, (d1 * dx2 - d2 * dx1) / tmp);
}
int main() {
  scanf("%d", &n);
  for (int i = 1, x, y; i <= n; i++) {
    scanf("%d%d", &x, &y);
    P[i] = point(x, y);
  }
  double ans = -1;
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++)
      for (int k = j + 1; k <= n; k++) {
        point A = P[i], B = P[j], C = P[k];
        double len[3] = {dist(A, B), dist(B, C), dist(A, C)};
        sort(len, len + 3);
        point p = calc_circle(A, B, C);
        if (p == empty) continue;
        int flag = dcmp(sqr(len[2]) - sqr(len[1]) - sqr(len[0]));
        if (flag == 1) continue;
        if (flag == 0) {
          if (dist(A, B) == len[2]) swap(A, C);
          if (dist(A, C) == len[2]) swap(A, B);
          point D = point(B.x + C.x - A.x, B.y + C.y - A.y);
          for (int l = 1; l <= n; l++)
            if (P[l] == D) flag = 1;
        }
        if (flag) {
          double dis = 1e9;
          for (int l = 1; l <= n; l++) dis = min(dis, dist(p, P[l]));
          if (dcmp(dis - len[2] / 2) >= 0) ans = max(ans, dis);
        }
      }
  if (ans == -1) puts("-1"), exit(0);
  cout << fixed << setprecision(6) << ans << endl;
  return 0;
}
