#include <stdio.h>
//常规采用冒泡排序法,采用冒泡排序的时候就顺手将去重做了,变为0移到最后去
int main() {

    int cmp_swap(int *a,int *b);
    int N = 1000;
    int data[1000]={0};
    scanf("%d\n",&N);
    for (int i=0; i<N; i++) 
    {
        scanf("%d",&data[i]);
    }
    int flg = 0;
    int idx=0;
    for ( int i=0; i<N-1; i++) 
    {
        flg = 0;
        for ( int j=0; j<N-1-i; j++) 
        {
            flg += cmp_swap(&data[j],&data[j+1]);
        }
        if ( flg==0) 
        {
        break;
        }
    }
    for (int i=0; i<N; i++) 
    {
        if(data[i]!=0)
        {
            printf("%d\n",data[i]);
        }
    }
    return 0;
}
int cmp_swap(int *a,int *b)
{
    int outValue = 0;
    int tmp;
    if ((*a==0)||(*a)>(*b)) 
    {
        tmp = *a;
        *a = *b;
        *b = tmp;
        outValue = 1;
    }
    else if(*a==*b)
    {
        *b=0;
        outValue = 1;
    }
    else 
    {
        outValue = 0;
    }
    return  outValue;
}