#include <bits/stdc++.h>
#include <cmath>
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的距离
if(L.point_A.x==L.point_B.x){
double vec=fabs(L.point_A.x-P.x);
return vec;
}
//特殊判例其实是直线垂直于x轴时的情况,此时k无穷大(或者说k不存在),所以输出的值是nan
//以上的if判断了垂直情况,随后对距离进行计算
//以下是一般情况,点到直线距离公式:|Ax0+By0+C|/√A平方+B平方
double k=(L.point_A.y-L.point_B.y)/(L.point_A.x-L.point_B.x);//计算k值,即公式中的A
double sq=sqrt(k*k+1);//公式中的分母
double ret=(fabs(-k*P.x+P.y+L.point_A.x*k-L.point_A.y))/sq;//套公式
return ret;
}
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;
}