#include <bits/stdc++.h>
using namespace std;
int n;
double V1;
double V2[100005];
double L[100005];
double D[100005];
double X[100005];
bool check(double T) {
  bool ok1 = false;
  bool ok1b = false;
  bool ok2 = false;
  bool ok2b = false;
  double l = 0;
  double r = 1000000;
  vector<pair<double, double> > V;
  V.clear();
  for (int i = 1; i <= n; i++) {
    if (D[i] == 1 && !ok1) {
      if (L[i] <= V2[i] * T) {
        ok1 = true;
      } else {
        double TS = T - L[i] / (V1 + V2[i]);
        double MS = 1 / (V1 - V2[i]) - V2[i] / (V1 * V1 - V2[i] * V2[i]);
        if (TS < 0) continue;
        ok1b = true;
        double x;
        if (TS > MS * 10000000)
          x = 1000000;
        else
          x = TS / MS;
        if (x < 1) x = 0;
        if (X[i] > l) l = X[i];
        if (X[i] + x < r) r = X[i] + x;
        V.push_back(make_pair(X[i], X[i] + x));
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    if (D[i] == 2 && !ok2) {
      if (L[i] <= V2[i] * T) {
        ok2 = true;
      } else {
        double TS = T - L[i] / (V1 + V2[i]);
        double MS = 1 / (V1 - V2[i]) - V2[i] / (V1 * V1 - V2[i] * V2[i]);
        if (TS < 0) continue;
        ok2b = true;
        double x;
        if (TS > MS * 10000000)
          x = 1000000;
        else
          x = TS / MS;
        if (x < 1) x = 0;
        if (X[i] - x > l) l = X[i] - x;
        if (X[i] < r) r = X[i];
        for (int j = 0; j < V.size(); j++)
          if ((V[j].first <= X[i] && X[i] <= V[j].second) ||
              (V[j].first <= (X[i] - x) && (X[i] - x) <= V[j].second)) {
            return true;
          }
      }
    }
  }
  return ((ok1 && ok2b) || (ok2 && ok1b) || (ok1 && ok2));
}
int main() {
  cin >> n >> V1;
  for (int i = 1; i <= n; i++) {
    cin >> X[i] >> V2[i] >> D[i];
    if (D[i] == 1)
      L[i] = X[i];
    else
      L[i] = 1000000 - X[i];
  }
  double l = 0;
  double r = 10000000;
  while (0.0000001 <= r - l) {
    double m = (l + r) / 2;
    if (check(m))
      r = m - 0.00000001;
    else
      l = m + 0.00000001;
  }
  printf("%0.8f\n", r);
  return 0;
}
