#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-11;
static const double PI = acos(-1.0);
struct Point {
  double x, y;
  void input() { cin >> x >> y; }
} a, b, c;
bool inter(Point o1, double r1, Point o2, double r2, double &p1, double &p2) {
  double d = sqrt((o1.x - o2.x) * (o1.x - o2.x) +
                  (o1.y - o2.y) * (o1.y - o2.y)),
         t = r1 + r2 - d;
  if (t < -EPS) return 0;
  if (fabs(t) < EPS) {
    p1 = p2 = atan2(o2.y - o1.y, o2.x - o1.x);
    return 1;
  }
  t = fabs(r1 - r2) - d;
  if (t > EPS) {
    if (r1 - r2 > EPS)
      return 0;
    else {
      p1 = -PI;
      p2 = PI;
      return 1;
    }
  }
  if (fabs(t) < EPS) {
    if (r1 - r2 > EPS)
      p1 = p2 = atan2(o2.y - o1.y, o2.x - o1.x);
    else {
      p1 = -PI;
      p2 = PI;
    }
    return 1;
  }
  double da = fabs(acos((r1 * r1 + d * d - r2 * r2) / 2. / r1 / d));
  p1 = atan2(o2.y - o1.y, o2.x - o1.x) - da,
  p2 = atan2(o2.y - o1.y, o2.x - o1.x) + da;
  return 1;
}
bool check(Point a, double ra, Point b, double rb, Point c, double rc) {
  double l1, r1, l2, r2;
  return inter(a, ra, b, rb, l1, r1) && inter(a, ra, c, rc, l2, r2) &&
             l2 - r1 < EPS && l1 - r2 < EPS ||
         inter(b, rb, a, ra, l1, r1) && inter(b, rb, c, rc, l2, r2) &&
             l2 - r1 < EPS && l1 - r2 < EPS ||
         inter(c, rc, a, ra, l1, r1) && inter(c, rc, b, rb, l2, r2) &&
             l2 - r1 < EPS && l1 - r2 < EPS;
}
int main() {
  double t1, t2;
  cin >> t1 >> t2;
  a.input(), c.input(), b.input();
  double ab = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
  double ac = sqrt((a.x - c.x) * (a.x - c.x) + (a.y - c.y) * (a.y - c.y));
  double bc = sqrt((b.x - c.x) * (b.x - c.x) + (b.y - c.y) * (b.y - c.y));
  t1 += ab + bc;
  t2 += ac;
  if (t2 - (ab + bc) > -EPS)
    cout << fixed << setprecision(8) << min(t1, t2) << endl;
  else {
    double l = 0, r = min(t1 - bc, t2);
    while (r - l > EPS) {
      double mid = (l + r) / 2;
      if (check(a, mid, b, t1 - bc - mid, c, t2 - mid))
        l = mid;
      else
        r = mid;
    }
    cout << fixed << setprecision(8) << l << endl;
  }
  return 0;
}
