#include <bits/stdc++.h>
#define foo(i, a, b) for (int i = a; i <= b; i++)
#define joo(i, a, b) for (int i = a; i >= b; i--)
#define mabs(a) ((a) < 0 ? (-(a)) : (a))
#define mceil(a, b) ((a - 1) / (b) + 1)
#define QwQ 0
typedef long long ll;
typedef double dob;
const int MAXN = 3e6 + 17; // 这里应该开3n还是2n??
//const int MAXM = ;
using namespace std;
int n, m, f[MAXN], q[MAXN];
int main() {
cin >> n >> m;
foo (i, 1, m) {
int x, y, z, ty = 0; cin >> x >> y >> z;
if (x <= y) {
f[x] += z; f[y] -= z; ty = y;
}else {
f[x] += z; f[y + n] -= z; ty = y + n;
}
f[x + n] += z; f[ty + n] -= z;
}
foo (i, 1, 3 * n) {
q[i] = q[i - 1] + f[i];
}
int maxx = -1;
foo (i, 1, 3 * n) {
maxx = max(maxx, q[i]);
}
cout << mceil(maxx, 36);
return QwQ;
}
画圆为线的下表最大值应该是 2n + p吧,开2n居然过了