#include using lint=long long; using real=long double; void cmn(lint&x,lint y){if(x>y)x=y;} int main(){ std::cin.tie(nullptr);std::ios_base::sync_with_stdio(false); std::cout.setf(std::ios_base::fixed);std::cout.precision(15); lint n,m,p,q,T;std::cin>>n>>m>>p>>q>>T;p--,q--; lint inf=std::numeric_limits::max(); std::vector>table(n,std::vector(n,inf)); auto dist=[&](lint i,lint j)->lint&{return table.at(i).at(j);}; for(lint i=0;i>a>>b>>c;a--,b--; dist(a,b)=c; dist(b,a)=c; } for(lint i=0;i