#include <stdio.h>

int main() {
    int i, j, n, v[1000], x = 0, t;
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        scanf("%d", &v[i]); //输入数字个数
    }
    for (i = 0; i < n; i++) {
        for (j = i + 1; j < n; j++) {
            if (v[i] == v[j])
            {
                x++;
                v[i] = 0;
            }
            else
                ;

        }

    }//判断重复数字,统计重复数字个数,并将重复的数字放到数组最前端
    //printf("%d ", x);
    //上式子用来测试统计是否正确
    for (i = 0; i < n; i++)//不包括因重复而被赋值为0的数
    {
        for (j =0; j < n - i - 1; j++) //同理
        {
            if (v[j] > v[j + 1]) {
                t = v[j];
                v[j] = v[j + 1];
                v[j + 1] = t;
            }
        }
    }//将除去重复数字后的数组内数组冒泡排序

    for (i = x; i < n; i++) {
        printf("%d ", v[i]);
    }
    return 0;
}