/*
#include <stdio.h>
typedef struct{
int name;
int math;
int inform;
}score;
score sarr[1001];
int n;
void view()
{
for(int i=1;i<=n;i++){
printf("%d %d %d\n",sarr[i].name,sarr[i].math,sarr[i].inform);
}
printf("\n");
}
int main()
{
score temp;
int i,j,m,t=1,x;
char tem;
scanf("%d",&n);
for(i=1;i<=n;i++){
sarr[i].name=i;
scanf("%d %d",&sarr[i].math,&sarr[i].inform);
}
for(i=1; i<n; i++)
{
for(j=1;j<=n-i;j++)
{
if (sarr[j].math < sarr[j+1].math)
{
temp = sarr[j];
sarr[j] = sarr[j+1];
sarr[j+1] = temp;
x++;
}
else if(sarr[j].math == sarr[j+1].math)
{
if(sarr[j].inform < sarr[j+1].inform)
{
temp = sarr[j];
sarr[j] = sarr[j+1];
sarr[j+1] = temp;
x++;
}
else if(sarr[j].inform == sarr[j+1].inform)
{
if(sarr[j].name>sarr[j+1].name)
{
temp = sarr[j];
sarr[j] = sarr[j+1];
sarr[j+1] = temp;
x++;
}
}
}
}
}
for(i=1;i<=n;i++){
printf("%d %d %d\n",sarr[i].name,sarr[i].math,sarr[i].inform);
}
return 0;
}
memo[i] : i가 입력된 횟수
memo[0] memo[1] ... memo[10만]
0 0 0
*/
#include <stdio.h>
int memo[100001]={};
int n, i, j, temp, key,m;
int main() {
scanf("%d", &n);
for (i = 0; i <= n-1; i++){
scanf("%d",&m);
memo[m]++;
}
for (i=0; i<=100001; i++){
if(memo[i]>=1){
for(j=1;j<=memo[i];j++){
printf("%d ",i);
}
}
}
return 0;
}