#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
template <class T, class U>
inline void Max(T &a, U b) {
  if (a < b) a = b;
}
template <class T, class U>
inline void Min(T &a, U b) {
  if (a > b) a = b;
}
inline void add(int &a, int b) {
  a += b;
  while (a >= 1000000007) a -= 1000000007;
}
int pow(int a, int b) {
  int ans = 1;
  while (b) {
    if (b & 1) ans = ans * (long long)a % 1000000007;
    a = (long long)a * a % 1000000007;
    b >>= 1;
  }
  return ans;
}
double dp[51][5005];
int a[51], b[51], sb[51];
double p[51];
int main() {
  cout << setprecision(9) << fixed;
  int T, j, i, k, ca = 0, n, m, K;
  scanf("%d%d", &n, &K);
  for (int i = 0; i < n; i++)
    scanf("%d%d%d", &a[i], &b[i], &k), p[i] = 1. * k / 100,
                                       sb[i + 1] = sb[i] + b[i];
  double l = 0, r = 1e18;
  const double eps = 1e-10;
  for (int it = 0; it < 120; it++) {
    double t = (l + r) / 2;
    for (int i = 0; i < sb[n] + 1; i++) dp[n][i] = i <= K ? 0 : t;
    for (int i = n - 1; i >= 0; i--) {
      for (int j = 0; j < sb[i] + 1; j++) {
        double first = p[i] * (a[i] + dp[i + 1][j + a[i]]) +
                       (1 - p[i]) * (b[i] + dp[i + 1][j + b[i]]);
        dp[i][j] = first;
        if (i && first > t) dp[i][j] = t;
      }
    }
    if (dp[0][0] <= t)
      r = t;
    else
      l = t;
  }
  l = (l + r) / 2;
  cout << l << "\n";
  return 0;
}
