// http://l...content-available-to-author-only...u.tw/homework/q762.htm

#include <cstdio>

// queue
int idque[26*26] = {0};
int first = 0;
int last = 0;

int qempty(){
	return first == last;
}

int qget(){
	if(qempty()){
		return -1;
	}
	int i = idque[first];
	first = first%(26*26) + 1;
	return i;
}

int qput(int i){
	idque[last] = i;
	last = last%(26*26) + 1;
}

int qinit(){
	first = 0;
	last = 0;
}

// traceback
int traceback[26*26] = {0};

// city name -> id
int getid(char* city){
	return (city[0] - 65)*26 + city[1] - 65;
}

// id -> city name
int getname(int id, char* s){
	s[0] = id/26 + 65;
	s[1] = id%26 + 65;
	s[3] = 0;
}

int main(){
	// this subject take multi data
	int data = 0;
	int n;
	while(1){
		// EOF
		if(scanf(" %d", &n) == EOF)
			break;
			
		// blank line between multidata
		if(data > 0)
			printf("\n");
		data++;
		
		// there are bridges between cities
		char bridge[26*26][26*26] = {0};
		char city1[3];
		char city2[3];	
		for(int i=0; i<n; i++){
			scanf(" %s %s", city1, city2);
			int id1 = getid(city1);
			int id2 = getid(city2);
			bridge[id1][id2] = 1;
			bridge[id2][id1] = 1;
		}
		
		// get target
		char target1[3];
		char target2[3];
		scanf(" %s %s", target1, target2);
		int tid1 = getid(target1);
		int tid2 = getid(target2);
		
		// put first item into que. the map m note which id was searched.
		qinit();
		char m[26*26] = {0};
		m[tid1] = 1;
		qput(tid1);
		
		// start BFS
		char foundedflag = 0;
		while(!qempty()){
			int id = qget();
			
			// target match
			if(id == tid2){
				foundedflag = 1;
				break;
			}
			
			// search bridges
			for(int i=0; i<26*26; i++){
				// don't put searched item into que
				if(bridge[id][i] && !m[i]){
					m[i] = 1;
					qput(i);
					traceback[i] = id;
				}
			}
		}
		
		// founded match, start traceback
		if(foundedflag){
			int cities[26*26] = {0};
			int len = 0;
			int id = tid2;
			while(1){
				cities[len] = id;
				len++;
				if(tid1 == id)
					break;
				id = traceback[id];
			}
			char s1[3] = {0};
			char s2[3] = {0};
			for(int i=len-1; i>0; i--){
				getname(cities[i], s1);
				getname(cities[i-1], s2);
				printf("%s %s\n", s1, s2);
			}
		}else{
			printf("No route\n");
		}
	}
	return 0;
}
