#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
const int DIM = 11 * 1000;
double p[DIM][3];
double g[3];
double vp, vs;
double pp[3];
int n;
double sqr(double q) { return q * q; }
void solve() {
  double dt = 0.0;
  for (int i = (0); i < (n); i++) {
    double l = 0.0, r = 1.0, s;
    for (int it = (0); it < (200); it++) {
      s = (l + r) / 2;
      for (int j = (0); j < (3); j++)
        pp[j] = p[i][j] + (p[i + 1][j] - p[i][j]) * s;
      double t1 = dt + sqrt(sqr(pp[0] - p[i][0]) + sqr(pp[1] - p[i][1]) +
                            sqr(pp[2] - p[i][2])) /
                           vs;
      double t2 =
          sqrt(sqr(pp[0] - g[0]) + sqr(pp[1] - g[1]) + sqr(pp[2] - g[2])) / vp;
      if (t1 > t2 - 1e-11)
        r = s;
      else
        l = s;
    }
    if (r < 1.0) {
      printf("YES\n");
      for (int j = (0); j < (3); j++)
        pp[j] = p[i][j] + (p[i + 1][j] - p[i][j]) * r;
      double t2 =
          sqrt(sqr(pp[0] - g[0]) + sqr(pp[1] - g[1]) + sqr(pp[2] - g[2])) / vp;
      printf("%.10lf\n", t2);
      for (int j = (0); j < (3); j++) printf(" %.10lf" + !j, pp[j]);
      printf("\n");
      return;
    }
    dt += sqrt(sqr(p[i + 1][0] - p[i][0]) + sqr(p[i + 1][1] - p[i][1]) +
               sqr(p[i + 1][2] - p[i][2])) /
          vs;
  }
  printf("NO\n");
}
int main() {
  scanf("%d", &n);
  for (int i = (0); i < (n + 1); i++) {
    for (int j = (0); j < (3); j++) scanf("%lf", &p[i][j]);
  }
  scanf("%lf%lf", &vp, &vs);
  for (int i = (0); i < (3); i++) scanf("%lf", &g[i]);
  solve();
  return 0;
}
