#include <bits/stdc++.h>
using namespace std;
//计算点到直线的距离

struct point{
    double x,y;
    //结构体中可以有构造函数,与c的区别,c只能有变量
    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的距离
    //指定点的坐标为 P.x P.y ,直线方程为 y - y2 = (y2 - y1 / x2 - x1)*(x - x2);
    //x1,y1,x2,y2分别为 L.point_A.x  L.point_A.y L.point_B.x L.point_B.y
    double result,a,b,c;
    if(L.point_A.x == L.point_B.x ) result = abs(P.x - L.point_A.x );
    else if(L.point_A.y == L.point_B.y ) {
             result = abs(P. y- L.point_A.y );
    }
    else{
            a = (L.point_B.y - L.point_A.y) / ( L.point_B.x -  L.point_A.x);
    b = -1;
    c = (-1*(L.point_B.y - L.point_A.y)*L.point_B.x ) / ( L.point_B.x -  L.point_A.x) +  L.point_B.y;
    result = abs((a*P.x + b*P.y + c)/sqrt(a * a + b * b));
    }
    return result;
};

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;
}