#include <bits/stdc++.h>
using namespace std;

const int INF = 1<<28;

int main() {
  for(int n, d; cin >> n >> d && (n|d);) {
    vector<vector<int> > c(n);
    for(int i = 0; i < n; ++i) {
      int m; cin >> m;
      c[i].resize(m);
      for(int j = 0; j < m; ++j) cin >> c[i][j];
    }
    vector<int> sum(n);
    for(int i = 0; i < n; ++i) {
      sum[i] = accumulate(c[i].begin(), c[i].end(), 0);
    }
    while(1) {
      bool update = false;
      for(int i = 0; i < n; ++i) {
        if(c[i].empty()) continue;
        sum[i] -= c[i].back();
        if(*max_element(sum.begin(), sum.end())
           - *min_element(sum.begin(), sum.end()) <= d) {
          c[i].pop_back();
          update = true;
        } else {
          sum[i] += c[i].back();
        }
      }
      if(!update) break;
    }
    if(accumulate(sum.begin(), sum.end(), 0)) {
      cout << "No" << endl;
    } else {
      cout << "Yes" << endl;
    }
  }
  return 0;
}