#include <bits/stdc++.h>

using namespace std;
typedef long long int ll;

int m = 2e5+10;
int k =  ceil(log2(m)) + 1;
int sk = (1 << k);
vector<ll> seg(sk);

void update(int s, int e, int at, int l, int r, int p){
	if(l<=s && e<=r) seg[at]+=p;
	else {
		int q = (s+e)>>1;
		if(r<=q) update(s,q,at*2+1,l,r,p);
		else if(l>q) update(q+1,e,at*2+2,l,r,p);
		else {
			update(s,q,at*2+1,l,q,p);
			update(q+1,e,at*2+2,q+1,r,p);
		}
	}
}

ll get(int s, int e, int at, int id) {
	if(s>=e) return seg[at];
	int q = (s + e) >> 1;
	if(id<=q) return seg[at]+get(s,q,at*2+1,id);
	return seg[at]+get(q+1,e,at*2+2,id);
}

void solve() {
    int n, w;
    cin >> n >> w;
    vector<int> a(n), b(n), p(n);
    for(int i = 0; i < n; i++) cin >> a[i] >> b[i] >> p[i];
    for(int i = 0; i < n; i++) {
    	update(0,m-1,0,a[i],b[i]-1,p[i]);
    }
    bool f=true;
    for(int i = 0; i < m; i++) {
    	ll r = get(0,m-1,0,i);
    	if(r>w) {
    		f = false;
    		break;
    	}
    }

    if(f) cout << "Yes" << endl;
    else cout << "No" << endl;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int t = 1;
    // cin>>t;
    while(t--){
        solve();
    }
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
using ll = long long;
using P = pair<int, int>;

ll n, w, s, t, p;

int main() {
  cin >> n >> w;
  vector<ll> c(200001, 0);
  rep (i, n) {
    cin >> s >> t >> p;
    c[s] -= p;
    c[t] += p;
  }
  ll d = w;
  string ans = "Yes";
  rep (i, 200001) {
    d += c[i];
    if (d < 0) {
      ans = "No";
    }
  }
  cout << ans << endl;
  return 0;
}
