#include <bits/stdc++.h>
using namespace std;
inline double sq(double a) { return a * a; }
int a, b;
int n;
complex<double> p1[1024], p2[1024];
double d[1024][1024];
int vis[1024];
double distanceSP(const complex<double>& s0, const complex<double>& s1,
                  const complex<double>& p) {
  if (s0.real() <= p.real() && p.real() <= s1.real()) {
    return sq(p.imag() - s0.imag());
  }
  if (s0.imag() <= p.imag() && p.imag() <= s1.imag()) {
    return sq(p.real() - s0.real());
  }
  return min(norm(s0 - p), norm(s1 - p));
}
double distanceSS(const complex<double>& s0, const complex<double>& s1,
                  const complex<double>& t0, const complex<double>& t1) {
  return min(min(distanceSP(s0, s1, t0), distanceSP(s0, s1, t1)),
             min(distanceSP(t0, t1, s0), distanceSP(t0, t1, s1)));
}
double solve() {
  for (int i = 0; i < (int)(n); i++)
    for (int j = 0; j < (int)(i); j++) {
      d[i][j] = d[j][i] = distanceSS(p1[i], p2[i], p1[j], p2[j]);
    }
  queue<pair<double, int> > q;
  q.push(make_pair(0.0, 0));
  vis[0] = 1;
  double ans = -1;
  while (!q.empty()) {
    const pair<double, int> vv(q.front());
    q.pop();
    const double t = -vv.first;
    const int at = vv.second;
    if (ans >= 0 && t >= ans) break;
    for (int i = 0; i < (int)(n); i++)
      if (vis[i] == 0 && d[at][i] <= a * a) {
        if (i == 1) {
          const double nt = t + sqrt(d[at][i]);
          if (ans == -1 || ans > nt) ans = nt;
        } else {
          vis[i] = 1;
          q.push(make_pair(-t - a - b, i));
        }
      }
  }
  return ans;
}
int main() {
  scanf("%d%d", &a, &b);
  for (int i = 0; i < (int)(2); i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    p1[i] = p2[i] = complex<double>(x, y);
  }
  scanf("%d", &n);
  for (int i = 0; i < (int)(n); i++) {
    int x1, y1, x2, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    if (x1 > x2) swap(x1, x2);
    if (y1 > y2) swap(y1, y2);
    p1[i + 2] = complex<double>(x1, y1);
    p2[i + 2] = complex<double>(x2, y2);
  }
  n += 2;
  const double ans = solve();
  if (ans < 0)
    printf("%d\n", -1);
  else
    printf("%.9f\n", ans);
  return 0;
}
