#include #define rep(i,n) for(int i=0;i P; const int INF = 1e9; const int MOD = 1000000007; int n = 40005; vector> graph(n,vector()); vector visited(n,-1); void dfs(int i){ if(graph[i].size() == 0) visited[i] = 1; else{ visited[i] = 0; for(int p:graph[i]){ dfs(p); } } } int main(){ int n; cin >> n; map mp1; map mp2; int id = 0; rep(i,n){ string a,b; cin >> a >> b; if(mp2.count(a) == 0){ mp2[a] = id; mp1[id++] = a; } if(mp2.count(b) ==0){ mp2[b] = id; mp1[id++] = b; } graph[mp2[a]].push_back(mp2[b]); } rep(i,id){ if(visited[i] != -1) continue; dfs(i); } rep(i,id){ if(visited[i] == 1){ cout << mp1[i] << endl; } } return 0; }