package com.bluecup.org;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;
public class CutPoint {
/**
* @param args
*/
static int n;
static TreeSet<Integer>[] sets = new TreeSet[20];
static boolean used[] = new boolean[20];
static int low[] = new int[20];
static int dfn[] = new int[20];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
for (int i = 1; i <= n; i++) {
sets[i] = new TreeSet<Integer>();
}
int i;
do {
i = scan.nextInt();
int j = scan.nextInt();
if (i > 0) {
sets[i].add(j);
sets[j].add(i);
}
} while (i != 0);
dfn(1);
int value=0;
for(int ii=1;ii<=n;ii++)
{
if(flag[ii]==1)
{
value++;
System.out.println(ii);
}
}
}
static int times;
static int flag[]=new int[20];
private static void dfn(int v) {
// TODO Auto-generated method stub
times++;
dfn[v] = low[v] = times;
int count=0;
//System.out.println(sets[v].size());
used[v] = true;
int size = sets[v].size();
Iterator<Integer> it=sets[v].iterator();
for (int i = 0; i < size; i++) {
int w = it.next();
if (used[w] == false) {
count++;
dfn(w);
low[v]=Math.min(low[v],low[w]);
if(v==1&&count>=2)
{
flag[v]=1;
}
if(v!=1&&low[w]>=dfn[v])
flag[v]=1;
}
else if(w!=v)
{
low[v]=Math.min(low[v], dfn[w]);
}
}
}
}