#include #include #include #include #include using namespace std; int main() { ifstream cin("almost.in"); for (int n,m,k;cin>>n>>m>>k,!(n==0&&m==0&&k==0);){ static bool fst=true; if (fst) fst=false; else cout< > > g(n),h(n); vector,int> > edge(m); for (int i=0;i>f>>t>>c; f--,t--; g[f].push_back(make_pair(c,t)); h[t].push_back(make_pair(c,f)); edge[i]=make_pair(make_pair(f,t),c); } int st=0,ed=n-1; vector cost1(g.size(),-1); vector cost2(g.size(),-1); { multimap mm; mm.insert(make_pair(0,st)); while(!mm.empty()){ int c=mm.begin()->first; int ix=mm.begin()->second; mm.erase(mm.begin()); if (cost1[ix]>=0) continue; cost1[ix]=c; for (int i=0;i=0) continue; mm.insert(make_pair(nc,nx)); } } } { multimap mm; mm.insert(make_pair(0,ed)); while(!mm.empty()){ int c=mm.begin()->first; int ix=mm.begin()->second; mm.erase(mm.begin()); if (cost2[ix]>=0) continue; cost2[ix]=c; for (int i=0;i=0) continue; mm.insert(make_pair(nc,nx)); } } } int sc=cost1[ed]; set ans; for (int i=0;i::iterator p=ans.begin(); p!=ans.end();p++){ cout<<(*p)+1<