#include<bits/stdc++.h>
using namespace std;
int mindis(vector<int>&dist,vector<bool>&vis,int n){
    int min=INT_MAX;
    int ind=-1;
    for(int v=0;v<n;v++){
        if(!vis[v] && dist[v]<min){
            min=dist[v];
            ind=v;
        }
    }
    return ind;
}
void solve( vector<vector<int>>&g,vector<int>&dist,vector<int>&parent,int src,int n){
    dist[src]=0;
    vector<bool>vis(n,false);
    for(int c=0;c<n;c++){
        int u=mindis(dist,vis,n);
        vis[u]=true;
        if(u==-1){
            break;
        }
        for(int v=0;v<n;v++){
            if(!vis[v] && dist[u]+g[u][v]<dis[v]){
                dist[v]=dist[u]+g[u][v];
                parent[v]=u;
            }
        }
    }
}
int main(){
    int n,m;
    cin>>n>>m;
    vector<vector<int>>g(n,vector<int>(n,0));
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            int s,d,w;
            cin>>s>>d>>w;
            g[s][d]=w;
            g[d][s]=w;
        }
    }
    int src,dest;
    cin>>src>>dest;
    vector<int>dist(n,INT_MAX);
    vector<int>parent(n,-1);
    solve(g,dist,parent,src,n)
}