#include <bits/stdc++.h>
#define int long long
#define N 101
using namespace std;
const int INF = 1LL<<55;
int n,d;
vector<int> A[N];
int Sum[N];

int getMax(){return *max_element(Sum,Sum+n);}
int getMin(){return *min_element(Sum,Sum+n);}

int getIdx(){
  int sa = INF;
  int res  = -1;
  for(int i=0;i<n;i++){
    if(A[i].empty()) continue;
    int sum = Sum[i] + A[i].back();
    Sum[i]+=A[i].back();
    int mn = getMin();
    Sum[i]-=A[i].back();
    if(sum - mn > d)continue;
    if(sum - mn < sa) sa = sum - mn, res = i;
  }
  return res;
}

bool clear(){
  for(int i=0;i<n;i++) if(A[i].size())return 0;
  return 1;
}

bool solve(){
  memset(Sum,0,sizeof(Sum));
  while(!clear()){
    int idx = getIdx();
    if(idx == -1) return 0;
    Sum[idx] += A[idx].back(); A[idx].pop_back();
  }
  return 1;
}

signed main(){
  while(1){
    cin>>n>>d;
    if(!n && !d) break;

    for(int i=0;i<n;i++){
      int k;
      cin>>k;
      A[i].resize(k);
      for(int j=0;j<k;j++)cin>>A[i][j];
      reverse(A[i].begin(),A[i].end());
    }
    cout<<(solve()?"Yes":"No")<<endl;
  }

  return 0;
}