#include<bits/stdc++.h>
using namespace std;
int dp[20][201],n,t,v;
struct ac{
int w,c;
};
vector<ac>ve[20];
int main(){
cin>>v>>n>>t;
for(int i=0;i<n;i++){
int w,c,p;
cin>>w>>c>>p;
ve[p].push_back({w,c});
}
for(int i=1;i<=t;i++){
for(int j=0;j<=v;j++){
dp[i][j]=dp[i-1][j];
for(int k=0;k<ve[i].size();k++){
if(j>=ve[i][k].w)
dp[i][j]=max(dp[i][j],dp[i-1][j-ve[i][k].w]+ve[i][k].c);
}
}
}
cout<<dp[t][v];
return 0;
}