#include <bits/stdc++.h>
using namespace std;
long double epsilon = 1e-9;
bool isEq(pair<long double, pair<long double, long double> > x,
          pair<long double, pair<long double, long double> > y) {
  long double x1, x2, y1, y2, z1, z2;
  x1 = x.first;
  x2 = y.first;
  y1 = x.second.first;
  y2 = y.second.first;
  z1 = x.second.second;
  z2 = y.second.second;
  long double temp1 = fabs(x2 - x1);
  long double temp2 = fabs(y2 - y1);
  long double temp3 = fabs(z2 - z1);
  if (temp1 < epsilon && temp2 < epsilon && temp3 < epsilon) return true;
  return false;
}
long double dist(pair<long double, pair<long double, long double> > x,
                 pair<long double, pair<long double, long double> > y) {
  long double dsx = x.first - y.first;
  long double dsy = x.second.first - y.second.first;
  long double dsz = x.second.second - y.second.second;
  long double ds = sqrt(dsx * dsx + dsy * dsy + dsz * dsz);
  return ds;
}
bool check(pair<long double, pair<long double, long double> > x,
           pair<long double, pair<long double, long double> > y,
           pair<long double, pair<long double, long double> > z, int v, int u,
           long double t) {
  long double ds = dist(x, y);
  long double dp = dist(x, z);
  long double ts = ds / v;
  long double tp = dp / u;
  if (tp <= ts + t) return true;
  return false;
}
pair<long double, pair<long double, long double> > bs(
    pair<int, pair<int, int> > x, pair<int, pair<int, int> > y,
    pair<int, pair<int, int> > z, int v, int u, long double t) {
  pair<long double, pair<long double, long double> > st, ed;
  pair<long double, pair<long double, long double> > mid;
  st = x;
  ed = y;
  mid.first = ((ed.first - st.first) / ((long double)2)) + st.first;
  mid.second.first = ((ed.second.first - st.second.first) / ((long double)2)) +
                     st.second.first;
  mid.second.second =
      ((ed.second.second - st.second.second) / ((long double)2)) +
      st.second.second;
  while (!isEq(st, ed)) {
    if (check(mid, x, z, v, u, t)) {
      ed = mid;
    } else
      st = mid;
    mid.first = ((ed.first - st.first) / ((long double)2)) + st.first;
    mid.second.first =
        ((ed.second.first - st.second.first) / ((long double)2)) +
        st.second.first;
    mid.second.second =
        ((ed.second.second - st.second.second) / ((long double)2)) +
        st.second.second;
  }
  return mid;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    int n;
    cin >> n;
    pair<int, pair<int, int> > a[n + 2];
    for (int i = 0; i <= n; i++) {
      cin >> a[i].first >> a[i].second.first >> a[i].second.second;
    }
    int vp, vs;
    cin >> vp >> vs;
    pair<int, pair<int, int> > p;
    cin >> p.first >> p.second.first >> p.second.second;
    long double time = 0;
    pair<long double, pair<long double, long double> > ans;
    bool chk = 0;
    for (int i = 0; i < n; i++) {
      if (check(a[i + 1], a[i], p, vs, vp, time)) {
        ans = bs(a[i], a[i + 1], p, vs, vp, time);
        chk = true;
        break;
      }
      time += (dist(a[i + 1], a[i]) / vs);
    }
    if (!chk) {
      cout << "NO" << '\n';
    } else {
      cout << "YES" << '\n';
      cout << setprecision(10) << fixed << (dist(ans, p) / vp) << '\n';
      cout << setprecision(10) << fixed << ans.first << " " << ans.second.first
           << " " << ans.second.second << '\n';
    }
  }
  return 0;
}
