#include <vector>
#include <iostream>
using namespace std;
	
	int cnt;	// одоо явж байгаа замын урт
	int n, m;	// орой болон ирмэгийн тоо
	int x, y;	// хүсэлтийн 2 орой
	int s[20];	// явсан замыг хамдгалах массив
	bool vis[20];	// замд орсон ороогүйг хадгалах массив
	vector<int> adj[20];	// графын мэдээллийг хадгалах вектор

void dfs(int u) {
	if( u == y ) {
		// одоо ирсэн орой нь бидний очих ёстой оройтой ижил бол
		// бид нэг зам олж чадсан тул үүнийгээ хэвлэнэ
		for(int i = 1; i <= cnt; i++) cout << s[i] << " ";
		cout << y << endl;	// сүүлийн оройг хэвлэнэ
							// учир нь бид нэмээгүй байгаа
		return;
	}

	// одоо бид u гэсэн орой дээр ирж байгаа тул
	vis[u] = true;	// замд орсон гэж тэмдэглэнэ
	cnt++;	// замын урт нэгээр нэмэгдэнэ
	s[cnt] = u;	// cnt-р орой гэдэг бол u гэсэн орой байх юм.

	for(int v:adj[u]) {
		if( !vis[v] ) {
			// v гэсэн орой нь энэ замд ордоггүй бол энэ оройгоос
			// цааш явж болох зам байгаа
			dfs(v);
		}
	}
	vis[u] = 0;	// энэ оройг ирээгүй болгож тэмдэглэнэ
	cnt--;	// замын урт хасагдана
}

int main() {
	cin >> n >> m; 
	while( m-- ) {
		int u, v;	// u, v 2 орой хоорондоо шууд ирмэгээр 
					// холбогддог гэсэн үг
		cin >> u >> v;
		adj[u].push_back( v );
		adj[v].push_back( u );
	}

	cin >> x >> y;
	dfs( x );

	return 0;
}