import math
from math import fsum

points = [
    tuple(map(int, input().split())) for _ in range(3)
]

def orthogonal(v1):
    return v1[1], -v1[0]

def norm(v):
    return math.sqrt(v[0] * v[0] + v[1] * v[1])

def normalize(v):
    c = norm(v)
    return v[0] /c, v[1]/c

def scalar(v1, v2):
    return sum(a * b for a,b  in zip(v1, v2))

def add(v1, v2):
    return v1[0] + v2[0], v1[1] + v2[1]

def minus(o1, o2):
    return o1[0] - o2[0], o1[1] - o2[1]

def scale(v, c):
    return v[0] * c, v[1] * c

def solve(p, a, b):
    # subsolve 1
    dist1 = abs(norm(minus(scale(add(a, b), 0.5), p)) - norm(scale(minus(a, b), 0.5)))

    dist2 = norm(minus(b, a)) * abs(((p[1] - b[1]) * (a[1] - b[1]) + (p[0] - b[0]) * (a[0] - b[0])) / ((a[1] - b[1]) ** 2 + (a[0] - b[0]) ** 2))

    return min(dist1, dist2)

minimum = 10**9
for i, point in enumerate(points):
    o1, o2 = points[(i + 1) % 3], points[(i + 2) % 3]

    minimum = min(minimum, solve(point, o1, o2))

    # direction = minus(o1, o2)
    #
    # orto = normalize(orthogonal(direction))
    #
    # for p in [o1, o2]:
    #     ap = minus(p, point)
    #     dist = norm(minus(ap, scale( orto, scalar(ap , orto))))
    #
    #     print(point, p, dist)
    #     minimum = min(minimum, dist)
    #
    # print(minus(point, (o1[0] , o2[1])), minus(point, (o1[1] , o2[0])))
    # print(norm(minus(point, (o1[0] , o2[1]))), norm(minus(point, (o1[1] , o2[0]))))
    #
    # minimum = min(minimum, norm(minus(point, (o1[0] , o2[1]))))
    # minimum = min(minimum, norm(minus(point, (o1[1] , o2[0]))))

print(minimum)