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