#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define sz size() #define pb push_back #define mp make_pair #define fi first #define se second #define all(c) (c).begin(), (c).end() #define rep(i,a,b) for(ll i=(a);i<(b);++i) #define per(i,a,b) for(ll i=b-1LL;i>=(a);--i) #define clr(a, b) memset((a), (b) ,sizeof(a)) #define ctos(c) string(1,c) #define print(x) cout<<#x<<" = "< &v, vector > &vp, ll p){ ll sum = 0; ll flag = 1; vector > vp2; ll index = 0; rep(i,0,vp.sz){ if(index>=p){ rep(j,i,vp.sz){ vp2.pb(mp(vp[i].se,vp[i].fi)); } break; } if(v[index]vp2[i].fi){ sum += v[index]; index++; } else{ return -1; } } return sum; } int main(){ ll n,m; cin>>n>>m; vector v; vector > vp; rep(i,0,n){ ll a,b,c; cin>>a>>b>>c; if(a>c)swap(a,c); v.pb(b); vp.pb(mp(a,c)); } sort(all(v)); sort(all(vp)); ll ans = -1; rep(i,0,n+1){ ans = max(ans,f(v,vp,i)); } if(ans==-1){ cout << "NO" << endl; } else{ cout << "YES" << endl; if(ans