#include <bits/stdc++.h>
using namespace std;
const int N = 105;
const double eps = 1e-7;
bool flag;
int n;
double ans;
int Dis[N][N];
pair<int, int> a[N];
int sqr(int x) { return x * x; }
double sqr(double x) { return x * x; }
int dis(pair<int, int> x, pair<int, int> y) {
  return sqr(x.first - y.first) + sqr(x.second - y.second);
};
int check(int x, int y, int z) {
  int X = Dis[x][y], Y = Dis[x][z], Z = Dis[y][z], Max = max(max(X, Y), Z);
  return Max + Max - X - Y - Z;
}
void Calc(pair<int, int> x, pair<int, int> y, pair<int, int> z) {
  double A1 = 2 * (x.first - y.first), B1 = 2 * (x.second - y.second),
         C1 = sqr(x.first) - sqr(y.first) + sqr(x.second) - sqr(y.second);
  double A2 = 2 * (x.first - z.first), B2 = 2 * (x.second - z.second),
         C2 = sqr(x.first) - sqr(z.first) + sqr(x.second) - sqr(z.second);
  double X = (C1 * B2 - C2 * B1) / (B2 * A1 - B1 * A2),
         Y = (C1 * A2 - C2 * A1) / (B1 * A2 - B2 * A1),
         D = sqrt(sqr(X - x.first) + sqr(Y - x.second));
  bool tf = 0;
  for (int i = 1; i <= n; i++) {
    double td = sqrt(sqr(X - a[i].first) + sqr(Y - a[i].second));
    if (td + eps < D) {
      tf = 1;
      break;
    }
  }
  if (!tf) {
    flag = 1;
    ans = max(ans, D);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].first, &a[i].second);
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++) Dis[i][j] = dis(a[i], a[j]);
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++)
      for (int k = j + 1; k <= n; k++)
        if (check(i, j, k) < 0) Calc(a[i], a[j], a[k]);
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++)
      for (int k = j + 1; k <= n; k++)
        for (int l = k + 1; l <= n; l++)
          if (!check(i, j, k) && !check(j, k, l) && !check(i, j, l)) {
            Calc(a[i], a[j], a[k]);
            break;
          }
  if (flag)
    printf("%.7lf\n", ans);
  else
    puts("-1");
  return 0;
}
