#include <bits/stdc++.h>
using namespace std;
int n;
double X[10001], Y[10001], Z[10001];
bool les(double a, double b) { return ((b - a) > (1E-9)); }
bool mor(double a, double b) { return ((a - b) > (1E-9)); }
double vp, vs, x, y, z;
double dist(double x, double y, double z) {
  return sqrt((x * x) + (y * y) + (z * z));
}
int main() {
  cin >> n;
  for (int i = 0; i < n + 1; i++) cin >> X[i] >> Y[i] >> Z[i];
  cin >> vp >> vs >> x >> y >> z;
  double time = 0;
  for (int i = 0; i < n; i++) {
    int dx, dy, dz;
    dx = X[i + 1] - X[i];
    dy = Y[i + 1] - Y[i];
    dz = Z[i + 1] - Z[i];
    if (!les(
            time + dist(X[i] - X[i + 1], Y[i] - Y[i + 1], Z[i] - Z[i + 1]) / vs,
            dist(X[i + 1] - x, Y[i + 1] - y, Z[i + 1] - z) / vp)) {
      double l = 0, r = 1;
      double tx, ty, tz, e, dd;
      for (int j = 0; j < 200; j++) {
        e = (l + r) / 2;
        tx = dx * e;
        ty = dy * e;
        tz = dz * e;
        double d = dist(tx, ty, tz);
        double dp = time * vp;
        double t = d / vs;
        dp += t * vp;
        dd = sqrt((tx + X[i] - x) * (tx + X[i] - x) +
                  (ty + Y[i] - y) * (ty + Y[i] - y) +
                  (tz + Z[i] - z) * (tz + Z[i] - z));
        if (!les(dp, dd))
          r = e;
        else
          l = e;
      }
      cout << "YES" << endl;
      printf("%0.10f\n", dd / vp);
      printf("%0.10f %0.10f %0.10f\n", X[i] + tx, Y[i] + ty, Z[i] + tz);
      cin >> n;
      return 0;
    }
    double d = sqrt((X[i] - X[i + 1]) * (X[i] - X[i + 1]) +
                    (Y[i] - Y[i + 1]) * (Y[i] - Y[i + 1]) +
                    (Z[i] - Z[i + 1]) * (Z[i] - Z[i + 1]));
    time += d / vs;
  }
  cout << "NO" << endl;
  cin >> n;
  return 0;
}
