#include <bits/stdc++.h>
using namespace std;
const int N = 100 + 5;
const double EPS = 1e-6;
int n, cnt = 0;
double ans = -1.0;
pair<double, double> p[N];
pair<pair<double, double>, double> q[N * N];
inline void cmax(double& x, double y) {
  if (y > x) x = y;
}
inline double sqrdis(const pair<double, double>& x,
                     const pair<double, double>& y) {
  return (x.first - y.first) * (x.first - y.first) +
         (x.second - y.second) * (x.second - y.second);
}
inline pair<double, double> operator+(const pair<double, double>& x,
                                      const pair<double, double>& y) {
  return make_pair(x.first + y.first, x.second + y.second);
}
inline pair<double, double> operator-(const pair<double, double>& x,
                                      const pair<double, double>& y) {
  return make_pair(x.first - y.first, x.second - y.second);
}
inline bool equal(const pair<pair<double, double>, double>& x,
                  const pair<pair<double, double>, double>& y) {
  return fabs(x.first.first - y.first.first) < EPS &&
         fabs(x.first.second - y.first.second) < EPS &&
         fabs(x.second - y.second) < EPS;
}
inline pair<double, double> calc(pair<double, double> x,
                                 pair<double, double> y) {
  double a = x.first, b = x.second, c = y.first, d = y.second,
         t = 2.0 * (b * c - a * d);
  return make_pair(((c * c + d * d) * b - (a * a + b * b) * d) / t,
                   ((a * a + b * b) * c - (c * c + d * d) * a) / t);
}
inline bool ok(int a, int b, int c, pair<double, double>& center) {
  int A = sqrdis(p[b], p[c]), B = sqrdis(p[a], p[c]), C = sqrdis(p[a], p[b]);
  if (A + B <= C || A + C <= B || B + C <= A) return 0;
  center = calc(p[b] - p[a], p[c] - p[a]) + p[a];
  return 1;
}
inline double check(pair<double, double> center, double dis) {
  for (int i = 1; i <= n; ++i)
    if (sqrdis(p[i], center) + EPS < dis) return -1;
  return dis;
}
int main(int argc, char** argv) {
  pair<double, double> c;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%lf%lf", &p[i].first, &p[i].second);
  for (int i = 1; i <= n; ++i)
    for (int j = i + 1; j <= n; ++j)
      for (int k = j + 1; k <= n; ++k)
        if (ok(i, j, k, c)) cmax(ans, check(c, sqrdis(p[i], c)));
  for (int i = 1; i <= n; ++i)
    for (int j = i + 1; j <= n; ++j)
      q[++cnt] = make_pair(make_pair((p[i].first + p[j].first) / 2.0,
                                     (p[i].second + p[j].second) / 2.0),
                           sqrdis(p[i], p[j]) / 4.0);
  sort(q + 1, q + cnt + 1);
  for (int i = 1; i < cnt; ++i)
    if (equal(q[i], q[i + 1])) cmax(ans, check(q[i].first, q[i].second));
  if (ans < 0)
    puts("-1");
  else
    printf("%.10f\n", sqrt(ans));
  return 0;
}
