#include "bits/stdc++.h"
using namespace std;
#define OO 0x3f3f3f3f
inline int SD(){int i ;scanf("%d", &i);return i;}
inline char SC(){char i;scanf(" %c", &i);return i;}
const int AKA = 1e6 + 6 , N = 1e3+4;
int adjmat[N][N] , n , m , k;
void init()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
adjmat[i][j] = OO;
adjmat[i][i] = 0;
}
}
int main()
{
n = SD() , m = SD() , k = SD();
init();
for(int i = 1;i <= m;i++)
{
int a = SD() , b = SD() , v = SD();
adjmat[a][b] = adjmat[b][a] = v;
}
for(int k = 1;k <= n;k++)
for(int i=1;i<= n;i++)
for(int j=1;j<= n;j++)
adjmat[i][j]=min(adjmat[i][j],adjmat[i][k]+adjmat[k][j]);
vector<int> ans;
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
{
if(adjmat[i][j] != OO && adjmat[i][j])
//printf("APSP(%d, %d) = %d\n", i , j , adjmat[i][j]);
ans.push_back(adjmat[i][j]);
}
sort(ans.begin() , ans.end());
for(int i = 0 ; i < ans.size() ; ++i)
printf("%d " , ans[i]);
}
I2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgT08gMHgzZjNmM2YzZgppbmxpbmUgaW50IFNEKCl7aW50IGkgO3NjYW5mKCIlZCIsICZpKTtyZXR1cm4gaTt9CmlubGluZSBjaGFyIFNDKCl7Y2hhciBpO3NjYW5mKCIgJWMiLCAmaSk7cmV0dXJuIGk7fQpjb25zdCBpbnQgQUtBID0gMWU2ICsgNiAsIE4gPSAxZTMrNDsKaW50IGFkam1hdFtOXVtOXSAsIG4gLCBtICwgazsKdm9pZCBpbml0KCkKewogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG47IGorKykKICAgICAgICAgICAgYWRqbWF0W2ldW2pdID0gT087CiAgICAgICAgYWRqbWF0W2ldW2ldID0gMDsKICAgIH0KfQppbnQgbWFpbigpCnsKICAgIG4gPSBTRCgpICwgbSA9IFNEKCkgLCBrID0gU0QoKTsKICAgIGluaXQoKTsKCWZvcihpbnQgaSA9IDE7aSA8PSBtO2krKykKICAgIHsKICAgICAgICBpbnQgYSA9IFNEKCkgLCBiID0gU0QoKSAsIHYgPSBTRCgpOwoJCWFkam1hdFthXVtiXSA9IGFkam1hdFtiXVthXSA9IHY7Cgl9CgoJZm9yKGludCBrID0gMTtrIDw9IG47aysrKQoJCWZvcihpbnQgaT0xO2k8PSBuO2krKykKCQkJZm9yKGludCBqPTE7ajw9IG47aisrKQoJCQkJYWRqbWF0W2ldW2pdPW1pbihhZGptYXRbaV1bal0sYWRqbWF0W2ldW2tdK2Fkam1hdFtrXVtqXSk7CiAgICB2ZWN0b3I8aW50PiBhbnM7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDw9IG47IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFkam1hdFtpXVtqXSAhPSBPTyAgJiYgYWRqbWF0W2ldW2pdKQogICAgICAgICAgICAgICAgLy9wcmludGYoIkFQU1AoJWQsICVkKSA9ICVkXG4iLCBpICwgaiAsIGFkam1hdFtpXVtqXSk7CiAgICAgICAgICAgICAgICBhbnMucHVzaF9iYWNrKGFkam1hdFtpXVtqXSk7CiAgICAgICAgfQogICAgc29ydChhbnMuYmVnaW4oKSAsIGFucy5lbmQoKSk7CiAgICBmb3IoaW50IGkgPSAwIDsgaSA8IGFucy5zaXplKCkgOyArK2kpCiAgICAgICAgcHJpbnRmKCIlZCAiICwgYW5zW2ldKTsKCn0K