#include <bits/stdc++.h>
using namespace std;
double dp[(50 + 10)][(5000 + 100)], p[(50 + 10)];
int n, r, s[(50 + 10)], f[(50 + 10)], top = 0;
bool check(double t) {
  for (int i = 0; i <= r; i++) dp[n][i] = 0;
  for (int i = r + 1; i <= top; i++) dp[n][i] = t;
  for (int i = n - 1; i >= 0; i--)
    for (int j = 0; j <= top; j++)
      dp[i][j] = p[i] * min(t + f[i], dp[i + 1][j + f[i]] + f[i]) +
                 (1 - p[i]) * min(t + s[i], dp[i + 1][j + s[i]] + s[i]);
  return dp[0][0] > t;
}
double findAns() {
  double l = 0, r = (1000000000), ans;
  for (int i = 0; i < 100; i++) {
    long double mid = (l + r) / 2.0;
    if (check(mid))
      ans = mid, l = mid;
    else
      r = mid;
  }
  return ans;
}
void init() {
  scanf("%d%d", &n, &r);
  for (int i = 0; i < n; i++) {
    scanf("%d%d%lf", &f[i], &s[i], &p[i]);
    p[i] /= 100.0;
    top += s[i];
  }
}
int main() {
  init();
  return printf("%.10lf", findAns()), 0;
  return 0;
}
