#include <bits/stdc++.h>
using namespace std;
struct point {
double x, y;
point(double A, double B) {
x = A, y = B;
}
point() = default;
};
struct line {
point point_A, point_B;
line(point A, point B) {
point_A = A, point_B = B;
}
line() = default;
};
double getDistance(point P, line L) {
// TODO: 计算点P到直线L的距离
double a = P.x;
double b = P.y;
double x1 = L.point_A.x;
double y1 = L.point_A.y;
double x2 = L.point_B.x;
double y2 = L.point_B.y;
double S = fabs((a-x2)*(b-y1)-(a-x1)*(b-y2));
double h = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
return fabs(S/h);
}
//这里用的是向量叉积,以知两个在线上的点P(a,b),和线外的点A(x1,y1),B(x2,y2)
//我们可以算出向量PA和PB,然后做PA和·PB的叉积
//注:(a,b)叉乘法(c,d)= a*d-b*c;
//这个运算的几何意义为两个线段构成的对应的平行四边形,而其1/2就为三角形PAB的面积S
//这时候用两点之间的坐标公式,计算出AB的距离,最后就可以算出高度h(S = (1/2)*a*b);
//h就是距离
int main() {
int a, b, sx, sy, tx, ty;
cin >> a >> b >> sx >> sy >> tx >> ty;
point A(sx, sy), B(tx, ty), C(a, b);
line L(A, B);
printf("%.2lf", getDistance(C, L));
return 0;
}