#include int a[16], b[16], c[16]; int dp[8128][1301]; int main() { int n, d; scanf("%d %d", &n, &d); int i, j, k; for (i = 0; i < n; i++) scanf("%d %d %d", &a[i], &b[i], &c[i]); int val1, val2; for (i = 0; i < (1 << n); i++) for (j = 0; j < 1301; j++) dp[i][j] = 1e9; dp[0][0] = 0; for (i = 0; i < (1 << n); i++) { for (j = 0; j < n; j++) { if (((i >> j) & 1) > 0) continue; for (k = 0; k < 1301; k++) { val1 = k; val2 = dp[i][k]; val1 -= a[j]; if (val1 < 0) val1 = 0; val1 += b[j]; val2 -= a[j]; if (val2 > val1) val2 += c[j]; else val2 = val1 + c[j]; if (dp[i | (1 << j)][val1] > val2) dp[i | (1 << j)][val1] = val2; } } } int s = 0; for (i = 0; i < n; i++) s += a[i]; for (k = 0, i = (1 << n) - 1, j = 0; j < 1301; j++) if (s + dp[i][j] <= d) k++; if (k > 0) printf("Yes\n"); else printf("No\n"); return 0; }