//考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");
    }
}