#include <vector>
#include <iostream>
#include <unordered_map>
#include <unordered_set>
using namespace std;
void dfs(unordered_map<int, vector<int>> followMap, unordered_set<int>& visited, int follower) {
visited.insert(follower);
for (const auto& follow : followMap[follower]) {
if (visited.find(follow) == visited.end()) {
visited.insert(follow);
dfs(followMap, visited, follow);
}
}
}
int main() {
int total_mem = 0, mem, total_edge = 0, follower, following;
unordered_map<int, vector<int>> followMap, followerMap;
cin >> total_mem;
unordered_set<int> visited(total_mem);
for (int i = 0; i < total_mem; i++) cin >> mem;
cin >> total_edge;
for (int i = 0; i < total_edge; i++) {
cin >> follower >> following;
if (followMap.find(follower) == followMap.end())
followMap[follower] = vector<int>();
followMap[follower].push_back(following);
if (followerMap.find(following) == followerMap.end())
followerMap[following] = vector<int>();
followerMap[following].push_back(follower);
}
cin >> follower >> following;
dfs(followMap, visited, following);
for(const auto& x : visited)
cout<<x<<" ";
cout<<endl;
for(int i = 0;i < followerMap[follower].size();i++){
if(visited.find(followerMap[follower][i]) != visited.end())
cout<<followerMap[follower][i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGRmcyh1bm9yZGVyZWRfbWFwPGludCwgdmVjdG9yPGludD4+IGZvbGxvd01hcCwgdW5vcmRlcmVkX3NldDxpbnQ+JiB2aXNpdGVkLCBpbnQgZm9sbG93ZXIpIHsKCXZpc2l0ZWQuaW5zZXJ0KGZvbGxvd2VyKTsKCWZvciAoY29uc3QgYXV0byYgZm9sbG93IDogZm9sbG93TWFwW2ZvbGxvd2VyXSkgewoJCWlmICh2aXNpdGVkLmZpbmQoZm9sbG93KSA9PSB2aXNpdGVkLmVuZCgpKSB7CgkJCXZpc2l0ZWQuaW5zZXJ0KGZvbGxvdyk7CgkJCWRmcyhmb2xsb3dNYXAsIHZpc2l0ZWQsIGZvbGxvdyk7CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWludCB0b3RhbF9tZW0gPSAwLCBtZW0sIHRvdGFsX2VkZ2UgPSAwLCBmb2xsb3dlciwgZm9sbG93aW5nOwoJdW5vcmRlcmVkX21hcDxpbnQsIHZlY3RvcjxpbnQ+PiBmb2xsb3dNYXAsIGZvbGxvd2VyTWFwOwoJY2luID4+IHRvdGFsX21lbTsKCXVub3JkZXJlZF9zZXQ8aW50PiB2aXNpdGVkKHRvdGFsX21lbSk7Cglmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX21lbTsgaSsrKQljaW4gPj4gbWVtOwoJY2luID4+IHRvdGFsX2VkZ2U7Cglmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsX2VkZ2U7IGkrKykgewoJCWNpbiA+PiBmb2xsb3dlciA+PiBmb2xsb3dpbmc7CgkJaWYgKGZvbGxvd01hcC5maW5kKGZvbGxvd2VyKSA9PSBmb2xsb3dNYXAuZW5kKCkpCgkJCWZvbGxvd01hcFtmb2xsb3dlcl0gPSB2ZWN0b3I8aW50PigpOwoJCWZvbGxvd01hcFtmb2xsb3dlcl0ucHVzaF9iYWNrKGZvbGxvd2luZyk7CgkJaWYgKGZvbGxvd2VyTWFwLmZpbmQoZm9sbG93aW5nKSA9PSBmb2xsb3dlck1hcC5lbmQoKSkKCQkJZm9sbG93ZXJNYXBbZm9sbG93aW5nXSA9IHZlY3RvcjxpbnQ+KCk7CgkJZm9sbG93ZXJNYXBbZm9sbG93aW5nXS5wdXNoX2JhY2soZm9sbG93ZXIpOwoJfQoJY2luID4+IGZvbGxvd2VyID4+IGZvbGxvd2luZzsKCWRmcyhmb2xsb3dNYXAsIHZpc2l0ZWQsIGZvbGxvd2luZyk7Cglmb3IoY29uc3QgYXV0byYgeCA6IHZpc2l0ZWQpCgkJY291dDw8eDw8IiAiOwoJY291dDw8ZW5kbDsKCWZvcihpbnQgaSA9IDA7aSA8IGZvbGxvd2VyTWFwW2ZvbGxvd2VyXS5zaXplKCk7aSsrKXsKCQlpZih2aXNpdGVkLmZpbmQoZm9sbG93ZXJNYXBbZm9sbG93ZXJdW2ldKSAhPSB2aXNpdGVkLmVuZCgpKQoJCQljb3V0PDxmb2xsb3dlck1hcFtmb2xsb3dlcl1baV08PCIgIjsKCX0KCXJldHVybiAwOwp9