#include <stdio.h>
#include <stdlib.h>

#define max 20

typedef struct{
    int to;
    int weight;
    
}Edge;

Edge graph[max][max];
int edge_count[max];
int path [max], path_index;
int v, dest;

void dfs(int u, int total_weight){
    path[path_index++]=u;
    
    if(u==dest){
        printf("Path:");
        for(int i=0; i<path_index; i++)
            printf("Total Weight: %d\n", total_weight);
    }else{
        for(int i=0; i<edge_count[u]; i++){
            int next = graph[u][i].to;
            int weight = graph[u][i].weight;
            dfe(next, total_weight + weight);
        }
    }
    path_index--;
}

int main(){
    int e, u,w, source;
    
    scanf("%d", &v);
    if(v<0){
        printf("Invalid input\n");
        return 0;
    }
    
    scanf("%d", &e);
    for(int i=0;i<e;i++){
        scanf("%d %d %d", &u, &w, &graph[u][edge_count[u]].weight);
        graph[u][edge_count[u]].to = w;
        edge_count[u]++;
    }
    scanf("%d %d", &source, &dest);
    dfs(source, 0);
    
    return 0;
}