#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-8;
inline double dist3d(double x, double y, double z) {
  return sqrt((double)x * x + (double)y * y + (double)z * z);
}
int main() {
  istream &fin = cin;
  ostream &fout = cout;
  FILE *fpin = stdin;
  FILE *fpout = stdout;
  int n;
  fscanf(fpin, "%d", &n);
  vector<int> x(n + 1), y(n + 1), z(n + 1);
  for (int i = 0; i < n + 1; i++) {
    fscanf(fpin, "%d%d%d", &x[i], &y[i], &z[i]);
  }
  int vp, vs;
  fscanf(fpin, "%d%d", &vp, &vs);
  int px, py, pz;
  fscanf(fpin, "%d%d%d", &px, &py, &pz);
  double time = 0;
  for (int i = 1; i <= n; i++) {
    double ntime =
        time + dist3d(x[i] - x[i - 1], y[i] - y[i - 1], z[i] - z[i - 1]) / vs;
    double htime = dist3d(px - x[i], py - y[i], pz - z[i]) / vp;
    if (htime <= ntime + EPS) {
      double lo = time, hi = ntime, mid;
      double cx = (x[i] - x[i - 1]) / (ntime - time),
             cy = (y[i] - y[i - 1]) / (ntime - time),
             cz = (z[i] - z[i - 1]) / (ntime - time);
      for (int lp = 0; lp < 100; lp++) {
        mid = (hi + lo) / 2;
        double ttime = mid - time;
        double tx = x[i - 1] + cx * ttime, ty = y[i - 1] + cy * ttime,
               tz = z[i - 1] + cz * ttime;
        double httime = dist3d(px - tx, py - ty, pz - tz) / vp;
        if (httime <= mid)
          hi = mid;
        else
          lo = mid;
      }
      fout << "YES" << endl;
      fout << fixed << setprecision(15);
      fout << mid << endl;
      double ttime = mid - time;
      double tx = x[i - 1] + cx * ttime, ty = y[i - 1] + cy * ttime,
             tz = z[i - 1] + cz * ttime;
      fout << tx << " " << ty << " " << tz << endl;
      return 0;
    }
    time = ntime;
  }
  fout << "NO" << endl;
}
