#include<bits/stdc++.h>
using namespace std;
long long dp[31][31] = {};
long long acolyte(int a, int b)
{
  long long cost = 0;
  if(dp[a][b])
  {return dp[a][b];}
  if(a + b <= 1)
  {return 1;}
  if(a)
  {cost += acolyte(a - 1, b);}
  if(b)
  {cost += acolyte(a, b - 1);}
  dp[a][b] = cost;
  return cost;
}
void solution()
{
  long long a, b, k;
  cin >> a >> b >> k;
  int sum = a + b;
  string output = "";
  while((b && a >= 0) || (a && b >= 0))
  {
    long long cost = 0;
    if(a)
    {
      long long cost = 0;
      if((cost = acolyte(a - 1, b)) < k)
      {output += 'b'; b--; k -= cost;}
      else
      {output += 'a'; a--;}
    }
    else
    {output += 'b'; b--;}
  }
  cout << output << endl;
  return;
}
int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int count, counter = 0;
  count = 1;
  while(counter++ < count)
  {solution();}
  return 0;
}

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

#ifdef LOCAL
#include "debug.h"
#endif

#ifdef LOCAL
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define debug(...) 42
#endif

typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef std::vector<vector<int> > vvi;
typedef pair<int, int> pi;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pi> vpi;
typedef vector<pll> vpll;
typedef vector<vll> vvll;
typedef vector<vi> vvi;
typedef vector<double> vd;
typedef vector<vector<double>> vvd;
typedef vector<ld> vld;
typedef vector<vld> vvld;
typedef vector<bool> vb;
typedef vector<vb> vvb;


#define rep(i, a, b) for (int i = (int)a; i < (int)b; i++)
#define repi(i, a, b) for (int i = (int)a; i >= (int)b; i--)
#define pb push_back
#define fi first
#define se second
#define all(a) a.begin(), a.end()
#define sz(a) (int)(a.size())
#define umin(a, x) a = min(a, x)
#define umax(a, x) a = max(a, x)

ll nxt() {
	ll x; cin >> x; return x;
}

void setIO(string s) {
	#ifndef LOCAL
	ios_base::sync_with_stdio(0); cin.tie(0); 
	freopen((s+".in").c_str(),"r",stdin);
	freopen((s+".out").c_str(),"w",stdout);
	#endif
}



void solve() {
	ll n, w; cin >> n >> w;

	const int maxt = 2e5 + 5;
	vll a(maxt);

	rep(i, 0, n) {
		ll s, t, p; cin >> s >> t >> p;
		a[s] += p; a[t] -= p;
	}

	rep(i, 1, n) a[i] = a[i - 1] + a[i];
	cout << ((*max_element(all(a)) > w) ? "No" : "Yes") << endl;
}
	
int32_t main(){
	// setIO("trapped");
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	cout << fixed << setprecision(10);

	int T = 1;
	// cin >> T;

	for (int tc = 1; tc <= T; tc++) {
		// cout << "Case #" << tc << ": ";
		solve();
	}
}
