#include
#include
#include
#include
#include
using namespace std;
int n, m;
vector > graph[300005];
int dp[300005];
int rec(int node) {
if(dp[node] != -1) {
return dp[node];
}
int result = 0;
for(int i = 0; i < (int) graph[node].size(); i++) {
int neigh = graph[node][i].first;
int weight = graph[node][i].second;
result = max(result, rec(neigh) + weight);
}
return dp[node] = result;
}
int main()
{
cin >> n >> m;
for(int i = 0; i < m; i++) {
int a, b, c;
cin >> a >> b >> c;
a--; b--;
graph[a].push_back({b, c});
}
memset(dp, -1, sizeof dp);
cout << rec(0) << endl;
return 0;
}