#include <iostream>
using namespace std;
#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000
//是每5 bit是一组。
//while (scanf("%d", &i) != EOF)
//set(i);
//根据输入的i ,放入指定位置。
//作者的想法是,按照输入的数据,放入该数据的位置上。
//比如你输入,4,2,3,1
//那么第一个4就是
//0000000000010000
//而输入2的时候
//0000000000010100
//输入3时候
//0000000000011100
//输入1的时候
//0000000000011110
int a[1 + N/BITSPERWORD];
//a[i >> SHIET]表示:a[i>>SHIFT]是第i位应该在第几个int上
//1<<(i&MASK) 表示: 第i位在该int上的第几个bit
//i&0x1F是i/32的余数
//1<<(i&MASK)表示:第i位为1,其他为为0
void set(int i) { a[i >> SHIFT] |= (1 << (i & MASK)); }
//~1<<(i & MASK) 表示:第i位为0,其他为1
void clr(int i) { a[i >> SHIFT] &= ~(1 << (i & MASK)); }
//1<<(i&MASK)表示:第i位为0,其他位为1,然后&上之前的第i位的数字,判断之前是不是为1
int test(int i) { return a[i >> SHIFT] & (1 << (i & MASK)); }
int main_test(){
int i;
for(i=0; i<N; i++)
clr(i);
while(cin >> i, !cin.eof())
set(i);
for(i=0; i<N; i++) {
if(test(i)) cout << i << endl;
}
}
using namespace std;
#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000
//是每5 bit是一组。
//while (scanf("%d", &i) != EOF)
//set(i);
//根据输入的i ,放入指定位置。
//作者的想法是,按照输入的数据,放入该数据的位置上。
//比如你输入,4,2,3,1
//那么第一个4就是
//0000000000010000
//而输入2的时候
//0000000000010100
//输入3时候
//0000000000011100
//输入1的时候
//0000000000011110
int a[1 + N/BITSPERWORD];
//a[i >> SHIET]表示:a[i>>SHIFT]是第i位应该在第几个int上
//1<<(i&MASK) 表示: 第i位在该int上的第几个bit
//i&0x1F是i/32的余数
//1<<(i&MASK)表示:第i位为1,其他为为0
void set(int i) { a[i >> SHIFT] |= (1 << (i & MASK)); }
//~1<<(i & MASK) 表示:第i位为0,其他为1
void clr(int i) { a[i >> SHIFT] &= ~(1 << (i & MASK)); }
//1<<(i&MASK)表示:第i位为0,其他位为1,然后&上之前的第i位的数字,判断之前是不是为1
int test(int i) { return a[i >> SHIFT] & (1 << (i & MASK)); }
int main_test(){
int i;
for(i=0; i<N; i++)
clr(i);
while(cin >> i, !cin.eof())
set(i);
for(i=0; i<N; i++) {
if(test(i)) cout << i << endl;
}
}