#include<bits/stdc++.h>
using namespace std;
int v,n,t,x,y,z;
int f[200+10];
struct node{
int c,w;
};
vector<node> a[11];
int main(){
cin>>v>>n>>t;
for(int i=1;i<=n;i++){
cin>>x>>y>>z;
a[z].push_back({x,y});
}
for(int i=1;i<=t;i++){
for(int j=v;j>=0;j--){
for(int k=0;k<a[i].size();k++){
if(a[i][k].c<=j) f[j]=max(f[j],f[j-a[i][k].c]+a[i][k].w);
}
}
}
cout<<f[v];
return 0;
}