//考408的友友应该对这道题很眼熟,有年数据结构的大题就是这个,先快排在筛出重复的13分,暴力10分
//用空间换时间得15分。不过理论归理论,这道题测试用例number不够多用空间换时间由于需要对Judge数组遍历,
//有多个for循环,所以时间也不咋快,但数多了后空间换时间就显出来了,毕竟O(N)。
#include "stdio.h"
#include "climits"
using namespace std;
int n;int array[1010];
bool Judge[100000];
int main(){
int max = INT_MIN;
while (scanf("%d",&n)!=EOF){
for (int i = 1; i <= n; ++i) {
scanf("%d",array+i);
if(array[i] > max)
max = array[i];
}
for (int i = 1; i <= max; ++i) {
Judge[i] = false;
}
for (int i = 1; i <= n; ++i) {
Judge[array[i]] = true;
}
for (int i = 1; i <= max; ++i) {
if(Judge[i] == true)
printf("%d ",i);
}
printf("\n");
}
}