#include <bits/stdc++.h>
using namespace std;
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
vector<long long> val(N+1);
vector<vector<long long>> dp(N+1, vector<long long>(2));
for (int i = 0; i < M; i++) {
val[X[i] + 1] = W[i];
}
for (int i = 2; i <= N; i++) {
dp[i][0] = max(dp[i-1][0], dp[i-1][1] + val[i]);
dp[i][1] = max(dp[i-1][1], max(dp[i-2][0], dp[i-2][1]) + val[i-1]);
}
return max(dp[N][0], dp[N][1]);
}
// int main() {
// int n = 5;
// vector<int> X{0, 1, 2, 3, 4};
// vector<int> Y{0, 0, 0, 0, 0};
// vector<int> W{5, 100, 1, 3, 100};
// int m = X.size();
// cout << max_weights(n, m, X, Y, W);
// for (int i = 0; i < m; i++)
// cout << "\n" << X[i] << " " << Y[i] << " " << W[i];
// }