#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int v, w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int INF = INT_MAX / 4; int main() { int N, L; cin >> N >> L; L *= 60; vector a(N); for (int i = 0; i < N; i++) { int MM, SS; scanf("%d:%d", &MM, &SS); a[i] = MM * 60 + SS; } double e = 0; for (int i = 0; i < N; i++) { vector dp(L); dp[0] = 1; for (int j = 0; j < N; j++) { if (j == i) continue; vector _dp(L); for (int k = 0; k < L; k++) { _dp[k] += dp[k] / 2; if (k + a[j] < L) _dp[k + a[j]] += dp[k] / 2; } dp = _dp; } double sum = 0; for (int k = 0; k < L; k++) sum += dp[k]; e += sum; } printf("%.10f\n", e); }