// editor2
#include<stdio.h>
#include<stdlib.h>

  void dfs(int sour,int **mat,int *visited,int V)
  {
    printf("%d",sour);
    visited[sour]=1;
    for( int i=0;i<V;i++)
    {
       if(mat[sour][i] != 0 && visited[i] == 0) 
        dfs(i,mat,visited,V);
    }
  }
    int main()
    {
        int V,E,r,c,itr,u,v,w,sour;
        scanf("%d",&V);
        if(V<0)
        {
            printf("Invalid input");
             return 0;
        }
        scanf("%d",&E);
        int **mat;
        int *visited;
        mat = (int**)malloc(sizeof(int**));
         for(r=0;r<V;r++)
        mat [r]=(int*) malloc(sizeof(int));
         for(itr=1;itr<=E;itr++)
         scanf("%d%d%d",&u,&v,&w);
         mat[u][v]=w;
    }
    scanf("%d",sour);
    visited = (int*) malloc(sizeof(int));
    printf("DFS Traversal starting from vertex :");
    dfs(sour,mat,visited,V);
    return 0;
}