#include<bits/stdc++.h>
using namespace std;
int n,m;
struct walk{
int end[50]={0},size[50]={0},child=0;
}sidewalk[100];
int ma=0;
bool a[30];
void dfs(int u,int sum){
ma=max(ma,sum);
for (int i=0;i<sidewalk[u].child;i++){
if (!a[sidewalk[u].end[i]]){
break;
}
a[u]=false;
dfs(sidewalk[u].end[i],sum+sidewalk[u].size[i]);
a[u]=true;
}
return;
}
int main() {
cin >> n >> m;
for (int i=0;i<n;i++){
a[i]=true;
}
for (int i=0;i<m;i++){
int x,y,l;
cin >> x >> y >> l;
sidewalk[x].end[sidewalk[x].child++]=y;
sidewalk[x].size[sidewalk[x].child++]=l;
sidewalk[y].end[sidewalk[y].child++]=x;
sidewalk[y].size[sidewalk[y].child++]=l;
}
for (int i=1;i<=n;i++){
dfs(i,0);
}
cout << ma << endl;
return 0;
}