#include <bits/stdc++.h>
using namespace std;
struct mat {
  double a[3][3];
  mat() {
    for (int i = (int)(0); i <= (int)(2); ++i)
      for (int j = (int)(0); j <= (int)(2); ++j) a[i][j] = 0;
  }
  mat operator*(const mat &b) const {
    mat c;
    for (int i = (int)(0); i <= (int)(2); ++i)
      for (int j = (int)(0); j <= (int)(2); ++j)
        for (int k = (int)(0); k <= (int)(2); ++k)
          c.a[i][j] += a[i][k] * b.a[k][j];
    return c;
  }
};
struct node {
  int id;
  long long las;
  mat pre;
};
vector<node> S;
mat bas[100005], f[40], org;
pair<double, double> p[100005];
int n;
long long m;
double b;
int main() {
  scanf("%d%lld", &n, &m);
  for (int i = (int)(1); i <= (int)(n); ++i) {
    double x, y, v;
    scanf("%lf%lf%lf", &x, &y, &v);
    b = max(b, y * v);
    p[i] = pair<double, double>(x * v, v);
  }
  sort(p + 1, p + n + 1, greater<pair<double, double> >());
  org.a[2][0] = 1;
  for (int i = (int)(1); i <= (int)(n); ++i) {
    bas[i].a[1][1] = 1;
    bas[i].a[2][2] = 1;
    bas[i].a[0][0] = 1 - p[i].second;
    bas[i].a[0][1] = p[i].second;
    bas[i].a[0][2] = p[i].first;
    bas[i].a[1][2] = b;
  }
  S.push_back((node){1, m, org});
  for (int i = (int)(2); i <= (int)(n); ++i) {
    for (;;)
      if ((bas[i] * S.back().pre).a[0][0] >
          (bas[S.back().id] * S.back().pre).a[0][0])
        S.pop_back();
      else
        break;
    if (!S.back().las) continue;
    node tmp = S.back();
    f[0] = bas[tmp.id];
    for (int j = (int)(1); j <= (int)(35); ++j) f[j] = f[j - 1] * f[j - 1];
    for (int j = (int)(35); j >= (int)(0); --j)
      if (tmp.las - (1ll << j) >= 1)
        if ((bas[i] * f[j] * tmp.pre).a[0][0] <=
            (bas[tmp.id] * f[j] * tmp.pre).a[0][0]) {
          tmp.pre = f[j] * tmp.pre;
          tmp.las -= (1ll << j);
        }
    tmp.pre = f[0] * tmp.pre;
    --tmp.las;
    if (tmp.las) tmp.id = i;
    S.push_back(tmp);
  }
  int id = S.back().id;
  long long las = S.back().las;
  mat ans = S.back().pre, x = bas[id];
  for (; las; las /= 2, x = x * x)
    if (las & 1) ans = x * ans;
  printf("%.15lf\n", ans.a[0][0]);
}
