#include <bits/stdc++.h>
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
using namespace std;
int Ax, Ay, Az, vx, vy, vz, R;
double cal(long long x, long long y, long long z, long long C) {
  long long X = Ax - x, Y = Ay - y, Z = Az - z;
  long long a = vx * vx + vy * vy + vz * vz;
  long long b = 2 * (vx * X + vy * Y + vz * Z);
  long long c = X * X + Y * Y + Z * Z - C * C;
  if (b * b - 4 * a * c < 0) return 1e100;
  double delta = sqrt(b * b - 4 * a * c);
  double t1 = (-b - delta) / (a * 2);
  double t2 = (-b + delta) / (a * 2);
  assert(t2 >= t1);
  if (t1 >= 0) return t1;
  if (t2 >= 0) return t2;
  return 1e100;
}
int main() {
  scanf("%d%d%d%d%d%d%d", &Ax, &Ay, &Az, &vx, &vy, &vz, &R);
  int n;
  scanf("%d", &n);
  double ans = 1e100;
  for (int i = 1; i <= n; i++) {
    int ox, oy, oz, r;
    scanf("%d%d%d%d", &ox, &oy, &oz, &r);
    chmin(ans, cal(ox, oy, oz, r + R));
    int m;
    scanf("%d", &m);
    while (m--) {
      int px, py, pz;
      scanf("%d%d%d", &px, &py, &pz);
      chmin(ans, cal(ox + px, oy + py, oz + pz, R));
    }
  }
  if (ans > 1e99)
    puts("-1");
  else
    printf("%.10f\n", ans);
  return 0;
}
