#include <stdio.h>
#include <stdlib.h>

#define MAX_VERTICES 10

int graph[MAX_VERTICES][MAX_VERTICES]={0};
    bool visited[MAX_VERTICES]={false};
int n, m;

void dfs(int vertex) {
    visited[vertex] = 1;
    printf("%d ", vertex);

    for (int i = 1; i <= n; i++) {  // vertices are 1-based
        if (graph[vertex][i] && !visited[i]) {
            dfs(i);
        }
    }
}

int main() {
    int u, v, start;

    if (scanf("%d %d", &n, &m) != 2 || n < 0 || m < 0 || n > MAX || m > MAX) {
        printf("Invalid input\n");
        return 0;
    }

    
    // for (int i = 1; i <= n; i++) {
    //     visited[i] = 0;
    //     for (int j = 1; j <= n; j++)
    //         graph[i][j] = 0;
    // }

    
    for (int i = 0; i < m; i++) {
        scanf("%d %d",&u,&v);
        
        graph[u][v] = 1;
        //graph[v][u] = 1;  // undirected graph
    }

    
    scanf("%d", &start) ;
    

    dfs(graph,visitedstart);

    return 0;
}