#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int u[70001],v[70001],w[70001];
int dis[3001];
vector<int>a[3001];
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>u[i]>>v[i]>>w[i];
}
for(int i=1;i<=n;i++)
{
int num;
cin>>num;
for(int j=1;j<=num;j++)
{
int k;
cin>>k;
a[i].push_back(k);
}
}
for(int i=1;i<=n;i++)
{
dis[i]=1e14;
}
dis[1]=0;
for(int i=1;i<=n-1;i++)
{
for(int j=1;j<=m;j++)
{
dis[v[j]]=min(dis[v[j]],dis[u[j]]+w[j]);
}
}
for(int i=1;i<=n-1;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=0;k<a[j].size();k++)
{
dis[j]=max(dis[j],dis[a[j][k]]);
}
}
}
cout<<dis[n];
return 0;
}
用bellman-fold的思路,更新这个城市的时间只需遍历n-1次即可,但是交上去wa了,求调