WA on #9
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z,qz[105][105],rd[105],ans[105],dp[105],a[105],b[105];
void tp(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(!rd[j]){
ans[++ans[0]]=j;
rd[j]=-1;
for(int k=1;k<=n;k++)if(qz[j][k])rd[k]--;
break;
}
}
}
}
void dfs(int x){
for(int i=1;i<x;i++)if(qz[ans[i]][ans[x]] && dp[ans[x]]==dp[ans[i]]+qz[ans[i]][ans[x]])dfs(i);
a[++a[0]]=x;
}
int main(){
cin>>n>>m;
n++;
for(int i=1;i<=m;i++){
cin>>x>>y>>z;
qz[x][y]=z;
rd[y]++;
}
tp();
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++)if(qz[ans[j]][ans[i]])dp[ans[i]]=max(dp[ans[i]],dp[ans[j]]+qz[ans[j]][ans[i]]);
}
cout<<dp[ans[n]]<<endl;
dfs(n);
for(int i=1;i<=a[0];i++)b[a[i]]++;
for(int i=1;i<=n;i++)if(b[i])cout<<i<<" ";
return 0;
}