#include <iostream>
#include <fstream>
#include <vector>
#include <stdlib.h>
#include <stdio.h>
#include <queue>
#include <string>
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
#define fori(n) for (int i = 0; i < n; i++) 
#define forj(n) for (int j = 0; j < n; j++)

using namespace std;

struct person {
	bool cut;
	int friends[101];
	int num;
};

person* everyone;

void connect(int s, int e) {
	everyone[s].friends[everyone[s].num++] = e;
	everyone[e].friends[everyone[e].num++] = s;
}

void killFriends(int s, int depth) {
	if (depth >= 2) return;
		
	for (int i = 0; i < everyone[s].num; i++) {
		int j = everyone[s].friends[i];
		if (j == 1) continue;
		if (!everyone[j].cut) {
			everyone[j].cut = true;
			//cout << j << " is dead." << endl;
			killFriends(j,depth+1);
		}
	}
}

int main() {
	ifstream in ("DATA3.txt");	// IS THIS THE RIGHT NUMBER?
	ofstream out ("OUT3.txt");  // IS THIS THE RIGHT NUMBER?

	for (int Z = 0; Z < 5; Z++) {
		everyone = new person[101];
		for (int i = 1; i < 101; i++) {
			everyone[i].num = 0;
			everyone[i].cut = false;
		}
		
		int numRels;
		in >> numRels;
		
		for (int i = 0; i < numRels; i++) {
			int p1,p2;
			in >> p1 >> p2;
			connect(p1,p2);
		}
		
		everyone[2].cut = true;

		killFriends(2,0);

		bool first = true;
		bool any = false;
		
		for (int i = 0; i < everyone[1].num; i++) {
			int j = everyone[1].friends[i];
					
			if (!everyone[j].cut) {
				if (!first) {
					out << " ";
				}
				out << j;
				any = true;
				first = false;
			}
		}
		
		if (!any) out << "none";
		out << endl;
		
		delete [] everyone;
	}
	return 0;
}

