#include<stdio.h>
#define max 10

int graph[max][max];
int visited[max];
int n;
void dfs(int v){
    visited[v]=1;
    printf("%d ", v)
    
    for(int i=0;i<n;i++){
        if(graph[v][i]!=0 && !visited[i[]){
            dfs(i);
        }
    }
}
 int main(){
     scanf("%d", &n);
     if(n<0){
         printf("Invalid input");
         return 0;
     }
     int m;
     scanf("%d",&m);
     
     for(int i=0; i<n; i++){
         visited[i]=0;
         for(int j=0;j<n;j++){
             graph[i][j]=0;
         }
     }
     int v,e,w;
     for(int i=0; i<n; i++){
         scanf("%d %d %d", &v, &e, &w);
         graph[v][e]=w;
     }
     int start;
     scanf("%d", &start);
     printf("DFS Traversal starting from vertex %d: ",start);
     dfs(start);
 }