#include <bits/stdc++.h>
using namespace std;
#define int long long
const long long INF = 4e18;
const int N = 300000 + 5;
struct Edge{
int to,w,id;
};
int n,m,k;
vector<Edge> adj[N];
long long dista[N];
bool vis[N];
vector<int> ans;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n>>m>>k;
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
adj[u].push_back({v,w,i});
adj[v].push_back({u,w,i});
}
for(int i=1;i<=n;i++) dista[i]=INF;
priority_queue<pair<long long,int>,vector<pair<long long,int>>,greater<pair<long long,int>>> pq;
dista[1]=0;
pq.push({0,1});
while(!pq.empty()){
auto [d,u]=pq.top();
pq.pop();
if(d!=dista[u]) continue;
for(auto e:adj[u]){
if(dista[e.to]>d+e.w){
dista[e.to]=d+e.w;
pq.push({dista[e.to],e.to});
}
}
}
queue<int> q;
q.push(1);
vis[1]=1;
while(!q.empty() && (int)ans.size()<k){
int u=q.front();
q.pop();
for(auto e:adj[u]){
int v=e.to;
if(!vis[v] && dista[u]+e.w==dista[v]){
vis[v]=1;
ans.push_back(e.id);
q.push(v);
if((int)ans.size()==k) break;
}
}
}
cout<<ans.size()<<"\n";
for(int x:ans) cout<<x<<" ";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKCmNvbnN0IGxvbmcgbG9uZyBJTkYgPSA0ZTE4Owpjb25zdCBpbnQgTiA9IDMwMDAwMCArIDU7CgpzdHJ1Y3QgRWRnZXsKICAgIGludCB0byx3LGlkOwp9OwoKaW50IG4sbSxrOwp2ZWN0b3I8RWRnZT4gYWRqW05dOwpsb25nIGxvbmcgZGlzdGFbTl07CmJvb2wgdmlzW05dOwoKdmVjdG9yPGludD4gYW5zOwoKc2lnbmVkIG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgY2luPj5uPj5tPj5rOwoKICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKXsKICAgICAgICBpbnQgdSx2LHc7CiAgICAgICAgY2luPj51Pj52Pj53OwogICAgICAgIGFkalt1XS5wdXNoX2JhY2soe3YsdyxpfSk7CiAgICAgICAgYWRqW3ZdLnB1c2hfYmFjayh7dSx3LGl9KTsKICAgIH0KCiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykgZGlzdGFbaV09SU5GOwoKICAgIHByaW9yaXR5X3F1ZXVlPHBhaXI8bG9uZyBsb25nLGludD4sdmVjdG9yPHBhaXI8bG9uZyBsb25nLGludD4+LGdyZWF0ZXI8cGFpcjxsb25nIGxvbmcsaW50Pj4+IHBxOwogICAgZGlzdGFbMV09MDsKICAgIHBxLnB1c2goezAsMX0pOwoKICAgIHdoaWxlKCFwcS5lbXB0eSgpKXsKICAgICAgICBhdXRvIFtkLHVdPXBxLnRvcCgpOwogICAgICAgIHBxLnBvcCgpOwogICAgICAgIGlmKGQhPWRpc3RhW3VdKSBjb250aW51ZTsKICAgICAgICBmb3IoYXV0byBlOmFkalt1XSl7CiAgICAgICAgICAgIGlmKGRpc3RhW2UudG9dPmQrZS53KXsKICAgICAgICAgICAgICAgIGRpc3RhW2UudG9dPWQrZS53OwogICAgICAgICAgICAgICAgcHEucHVzaCh7ZGlzdGFbZS50b10sZS50b30pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHF1ZXVlPGludD4gcTsKICAgIHEucHVzaCgxKTsKICAgIHZpc1sxXT0xOwoKICAgIHdoaWxlKCFxLmVtcHR5KCkgJiYgKGludClhbnMuc2l6ZSgpPGspewogICAgICAgIGludCB1PXEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwoKICAgICAgICBmb3IoYXV0byBlOmFkalt1XSl7CiAgICAgICAgICAgIGludCB2PWUudG87CiAgICAgICAgICAgIGlmKCF2aXNbdl0gJiYgZGlzdGFbdV0rZS53PT1kaXN0YVt2XSl7CiAgICAgICAgICAgICAgICB2aXNbdl09MTsKICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2soZS5pZCk7CiAgICAgICAgICAgICAgICBxLnB1c2godik7CiAgICAgICAgICAgICAgICBpZigoaW50KWFucy5zaXplKCk9PWspIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQ8PGFucy5zaXplKCk8PCJcbiI7CiAgICBmb3IoaW50IHg6YW5zKSBjb3V0PDx4PDwiICI7Cn0=