#include <bits/stdc++.h>
using namespace std;
const int N = 1000010, P = 1e9 + 7;
inline char nc() {
  static char buf[100000], *p1 = buf, *p2 = buf;
  return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2)
             ? EOF
             : *p1++;
}
inline void rea(int &x) {
  char c = nc(), f = 1;
  x = 0;
  for (; c > '9' || c < '0'; f = c == '-' ? -f : f, c = nc())
    ;
  for (; c >= '0' && c <= '9'; x = x * 10 + f * (c - '0'), c = nc())
    ;
}
int n, s, m;
int a[N], b[N];
int v[N], x[N], T[N];
inline bool check(double t) {
  for (int i = 1; i <= m; i++) a[i] = b[i] = 0;
  for (int i = 1; i <= n; i++)
    if (T[i] == 1) {
      if (t * (s + v[i]) < x[i]) continue;
      if (t * v[i] >= x[i]) {
        a[1]++;
        a[m + 1]--;
        continue;
      }
      a[x[i]]++;
      int l = x[i], r = m, mid, p = x[i];
      while (l <= r) {
        mid = l + r >> 1;
        double t1 = (mid - x[i]) / (double)(s - v[i]);
        double t2 = (x[i] - t1 * v[i]) / (double)(s + v[i]);
        if (t1 + t2 <= t)
          l = (p = mid) + 1;
        else
          r = mid - 1;
      }
      a[p + 1]--;
    } else {
      if (t * (s + v[i]) < (m - x[i])) continue;
      if (t * v[i] >= (m - x[i])) {
        b[m]++;
        b[0]--;
        continue;
      }
      b[x[i]]++;
      int l = 0, r = x[i], mid, p = x[i];
      while (l <= r) {
        mid = l + r >> 1;
        double t1 = (x[i] - mid) / (double)(s - v[i]);
        double t2 = ((m - x[i]) - t1 * v[i]) / (double)(s + v[i]);
        if (t1 + t2 <= t)
          r = (p = mid) - 1;
        else
          l = mid + 1;
      }
      if (p - 1 >= 0) b[p - 1]--;
    }
  for (int i = 1; i <= m; i++) a[i] += a[i - 1];
  for (int i = m; i; i--) b[i] += b[i + 1];
  for (int i = 1; i <= m; i++)
    if (a[i] && b[i]) return true;
  return false;
}
int main() {
  rea(n);
  rea(s);
  m = 1e6;
  for (int i = 1; i <= n; i++) rea(x[i]), rea(v[i]), rea(T[i]);
  double l = 0, r = 1e6, mid, ans;
  while (r - l >= 1e-8) check(mid = (l + r) / 2) ? r = ans = mid : l = mid;
  printf("%.9lf\n", ans);
  return 0;
}
