#include<bits/stdc++.h>
#define N 201
#define ll long long
using namespace std;
int n,m,head[N],tot,cnt[N][N];
ll dis[N][N];
struct edge{int to,nxt,w;}e[N*(N+1)];
inline void add(int u,int v,int w){
e[++tot].to=v;
e[tot].w=w;
e[tot].nxt=head[u];
head[u]=tot;
}
bitset<N>mn[N][N];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
dis[i][j]=dis[j][i]=1e18;
for(int i=1;i<=m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
dis[u][v]=dis[v][u]=w;
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(i==j)continue;
else if(i==k)continue;
else if(j==k)continue;
if(dis[i][j]-dis[k][j]>dis[i][k]){
dis[i][j]=dis[i][k]+dis[k][j];
mn[i][j].reset();
mn[i][j]=mn[i][k]|mn[k][j];
mn[i][j][k]=true;
cnt[i][j]=1;
}else if(dis[i][j]-dis[i][k]==dis[k][j]&&k!=j&&k!=i)cnt[i][j]++;
}
int ans=0;
bool flag=false;
for(int i=1;i<=n;i++){
bool bz=false;
for(int j=1;j<=n&&!bz;j++)
if(j!=i)
for(int k=1;k<=n;k++)
if(k!=i&&k!=j&&cnt[j][k]==1)
if(mn[j][k][i]){ans++,bz=true,printf("%d ",i),flag=true;break;}
}
if(!flag)puts("No important cities.");
return 0;
}