#include <cstdio>
#ifdef DEBUG
#define D(X) X
#else
#define D(X)
#endif
#include <bits/stdc++.h>
#define F first
#define S second
#define ll long long
#define pi 3.14159265359
#define pub push_back
#define pob pop_back
//#include <fish.h>
using namespace std;
const int INF = 1000 * 1000 * 1000;
const int mod = 1000 * 1000 * 1000 + 7;
ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w)
{
ll cnt[n];
for(int i=0; i<n; i++) {
cnt[i] = 0;
}
for(int i=0; i<m; i++) {
cnt[x[i]] += w[i]; //cout<<cnt[x[i]]<<endl;
}
ll dp[n+1];
dp[n] = 0;
dp[n-1] = cnt[n-1];
for(int i=n-2; i>=0; i--) {
dp[i] = dp[i+2] + cnt[i];
dp[i] = max(dp[i], dp[i+1]);
for(int j=i+2; j<=min(n, i+5); j++) {
if(j>=n-1) {
dp[i] = max(dp[i], cnt[j-1]);
} else
{
dp[i] = max(dp[i], cnt[j-1] + dp[j+1]);
}
}
}
return dp[0];
}
struct testCase {
void solve() {
}
};
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
D(freopen("input.txt","r",stdin);)
//D(freopen("ouput.txt","w",stdout);)
int t = 1;
//cin >> t;
loop:
while(t--)
{
//testCase test;
//test.solve();
int n, m;
cin >> n >> m;
vector<int> x(m), y(m), w(m);
for(int i=0; i<m; i++) {
cin >> x[i] >> y[i] >> w[i];
}
int64_t res = max_weights(n, m, x, y, w);
cout << res;
}
return 0;
}
/*
7 2
*/
Compilation message
fish.cpp: In function 'int main()':
fish.cpp:63:5: warning: label 'loop' defined but not used [-Wunused-label]
63 | loop:
| ^~~~
/usr/bin/ld: /tmp/cctdhsqj.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccjg24Mj.o:fish.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status