#3点の座標を入力して外心の座標を出力する

Point = Struct.new(:x, :y)

def get_circulm_center(a, b, c)
  aa = (b.x - c.x) ** 2 + (b.y - c.y) ** 2
  bb = (a.x - c.x) ** 2 + (a.y - c.y) ** 2
  cc = (b.x - a.x) ** 2 + (b.y - a.y) ** 2

  u1 = aa * (bb + cc - aa)
  u2 = bb * (cc + aa - bb)
  u3 = cc * (aa + bb - cc)
  deno = u1 + u2 + u3

  return false if deno == 0
  
  x = ((u1 * a.x) + (u2 * b.x) + (u3 * c.x)) / deno
  y = ((u1 * a.y) + (u2 * b.y) + (u3 * c.y)) / deno

  Point.new(x, y)
end

def dis(a, b)
  square = (a.x - b.x) ** 2 + (a.y - b.y) ** 2
  Math.sqrt(square)
end

def isAllIncluded(r, c, points)
  flag = true
  points.each do |p|
    d = dis(c, p)
    if d > r
      flag = false
      break
    end
  end

  flag
end

def main
  n = gets.chomp.to_i
  points = []
  min = -1

  n.times do |i|
    input = gets.chomp.split.map(&:to_f)
    points.push(Point.new(input[0], input[1]))
  end

  n.times do |i|
    n.times do |j|
      next if i == j
      n.times do |k|
        next if j == k || i == k
        c = get_circulm_center(points[i], points[j], points[k])
        next if c == false
        r = dis(points[i], c)        

        #rが大きい場合は飛ばす
        next if min != -1 && min < r
        #距離r内に全ての点が含まれているか確認
        next if !isAllIncluded(r, c, points)
        min = r 
      end
    end
  end

  puts min
end

main