//#include <atcoder/all>
//using namespace atcoder;
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define REP(i, n) for(int i=0; i<n; i++)
#define REPR(i, n) for(int i=n-1; i>=0; i--)
#define FOR(i, m, n) for(int i=m; i<n; i++)
#define ALL(v) v.begin(), v.end()
#define SIZE(x) int(x.size()) 
#define bit(n) (1LL<<(n))
#define FIX(d) fixed << setprecision(d)
using P = pair<int, int>;
using vvi = vector<vector<int>>;
using vvl = vector<vector<ll>>;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
const int INF = 2e9;
const ll LINF = (1LL<<60);

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n,w; cin >> n >> w;
  vector<int> s(n), t(n), p(n);
  REP(i,n) cin >> s[i] >> t[i] >> p[i];

  vector<ll> sums(2e5+1, 0);
  REP(i,n){
    sums[s[i]] += p[i];
    sums[t[i]] -= p[i];
  }
  REP(i,2e5) sums[i+1] += sums[i];
  
  REP(i,2e5){
    if(sums[i]>w){
      cout << "No\n";
      return 0;
    }
  }
  cout << "Yes\n";
  return 0;
}

#include<bits/stdc++.h>

using namespace std;
using ll = long long;
const int MT = 200010;

int main()
{
	int N; cin >> N; ll W; cin >> W;
	vector<ll> imos(MT + 1);
	for(int i = 0; i < N; i++) {
		ll s, t, p; cin >> s >> t >> p;
		imos[s] += p;
		imos[t] -= p;
	}
	for(int i = 0; i < MT; i++)imos[i + 1] += imos[i];
	cout << (*max_element(imos.begin(), imos.end()) <= W ? "Yes" : "No") << endl;
}