#include using namespace std; #ifdef tabr #include "library/debug.cpp" #else #define debug(...) #endif int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector a(n), b(n), p(n); for (int i = 0; i < n; i++) { cin >> a[i] >> b[i] >> p[i]; } vector> dp(m + 1, vector(1 << n)); for (int mask = (1 << n) - 1; mask >= 0; mask--) { for (int j = 0; j < n; j++) { if (mask & (1 << j)) { continue; } dp[m][mask] += 1.0 / a[j]; } } for (int i = m - 1; i >= 0; i--) { dp[i] = dp[i + 1]; for (int mask = (1 << n) - 1; mask >= 0; mask--) { for (int j = 0; j < n; j++) { if (mask & (1 << j)) { continue; } dp[i][mask] = max(dp[i][mask], (dp[i][mask ^ (1 << j)] + 1.0 / b[j]) / p[j] + (dp[i + 1][mask]) * (p[j] - 1) / p[j]); } } } cout << fixed << setprecision(12); cout << *max_element(dp[0].begin(), dp[0].end()) << '\n'; return 0; }