#include <bits/stdc++.h>
int n, points[10010][3];
double vp, vs, px, py, pz;
int eqv(double x, double y) {
  if (x - y < 0.0000001 && y - x < 0.0000001) return 1;
  return 0;
}
double solve_eq(double a, double b, double c, double ts, double te) {
  double t, det, t1, t2;
  if (eqv(a, 0) && eqv(b, 0)) {
    if (eqv(c, 0)) return ts;
    return -1;
  }
  if (eqv(a, 0)) {
    t = -c / b;
    if (ts - t <= 0.0000001 && t - te <= 0.0000001) return t;
    return -1;
  }
  det = b * b - 4. * a * c;
  if (det < -0.0000001) return -1;
  if (det < 0) det = 0;
  t1 = (-b + sqrt(det)) / (a + a);
  t2 = (-b - sqrt(det)) / (a + a);
  if (t1 > t2) {
    t = t1;
    t1 = t2;
    t2 = t;
  }
  if (ts - t1 <= 0.0000001 && t1 - te <= 0.0000001) return t1;
  if (ts - t2 <= 0.0000001 && t2 - te <= 0.0000001) return t2;
  return -1;
}
void process() {
  int i;
  double a, b, c, ax, bx, ay, by, az, bz, d, dx, dy, dz,
      ans = -1, ansx, ansy, ansz, t, x1, y1, z1, x2, y2, z2, ts, te;
  ts = 0;
  for (i = 0; i < n; i++) {
    x1 = points[i][0];
    y1 = points[i][1];
    z1 = points[i][2];
    x2 = points[i + 1][0];
    y2 = points[i + 1][1];
    z2 = points[i + 1][2];
    dx = x2 - x1;
    dy = y2 - y1;
    dz = z2 - z1;
    d = sqrt(dx * dx + dy * dy + dz * dz);
    te = ts + d / vs;
    ax = dx / (ts - te);
    bx = (ts * x2 - te * x1) / (te - ts) + px;
    ay = dy / (ts - te);
    by = (ts * y2 - te * y1) / (te - ts) + py;
    az = dz / (ts - te);
    bz = (ts * z2 - te * z1) / (te - ts) + pz;
    a = ax * ax + ay * ay + az * az - vp * vp;
    b = 2. * ax * bx + 2. * ay * by + 2. * az * bz;
    c = bx * bx + by * by + bz * bz;
    t = solve_eq(a, b, c, ts, te);
    if (!eqv(t, -1)) {
      ans = t;
      ansx = dx / (te - ts) * t + (te * x1 - ts * x2) / (te - ts);
      ansy = dy / (te - ts) * t + (te * y1 - ts * y2) / (te - ts);
      ansz = dz / (te - ts) * t + (te * z1 - ts * z2) / (te - ts);
      break;
    }
    ts = te;
  }
  if (eqv(ans, -1)) {
    printf("NO\n");
  } else {
    printf("YES\n%.10lf\n%.10lf %.10lf %.10lf\n", ans, ansx, ansy, ansz);
  }
}
int main() {
  int i;
  scanf("%d", &n);
  for (i = 0; i <= n; i++)
    scanf("%d%d%d", &points[i][0], &points[i][1], &points[i][2]);
  int x, y, z;
  scanf("%d%d", &x, &y);
  vp = x;
  vs = y;
  scanf("%d%d%d", &x, &y, &z);
  px = x;
  py = y;
  pz = z;
  process();
  return 0;
}
