#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<pair<int, int>> p[52];
int len[52], maxx, maxxx;
bool b[52];
void dfs(int x) {
for (int i = 0; i < p[x].size(); i++) {
if (b[p[x][i].first])
continue;
b[p[x][i].first] = 1;
len[p[x][i].first] = len[x] + p[x][i].second;
if (len[p[x][i].first] > len[maxx])
maxx = p[x][i].first;
dfs(p[x][i].first);
b[p[x][i].first] = 0;
}
}
int main() {
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int u, v, w;
cin >> u >> v >> w;
p[u].push_back({v, w});
p[v].push_back({u, w});
}
for (int i = 1; i <= n; i++) {
len[i] = 0;
b[i] = 1;
dfs(i);
maxxx = max(len[maxx], maxxx);
}
cout << maxxx << '\n';
return 0;
}