#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][V]!=0 && visited[i]==0){
            DFS(i,mat,visited,V);
        }
    }
}
int main(){
    int V,E,sour,u,v;
    scanf("%d%d",&V,&E);
    if(V<0 || E<0){
        printf("Invalid input");
        return 0;
    }
    int **mat=(int**)malloc((v+1)*sizeof(int*));
    for(int i=0;i<=V;i++){
        mat[i]=(int*)malloc((v+1)*sizeof(int*));
        for(int j=0;j<v;j++){
            mat[i][j]=0;
        }
    }
    for(int i=1;i<=E;i++){
        scanf("%d %d",&u,&v);
        if(u<0 || v<0){
            printf("Invalid input");
            return 0;
        }
        mat[u][v]=1;
        mat[u][v]=1;
    }
    scanf("%d",&sour);
    if(sour<0){
        printf("invalid input");
        return 0;
    }
    int *visited=(int *)malloc((v+1)sizeof(int*));
    for(int i=0;i<=v;i++){
        visited[i]=0;
    }
    DFS(sour,mat,visited,V);
    for(int i=0;i<=v;i++){
        free(mat[i]);
    }
    free(mat);
    free(visited);
    }
}