void Swap(int * a,int * b){
int t;
t = *a;
*a = *b;
*b = t;
}
int main()
{
int number;
scanf("%d",&number);
int a[number];
int i,j;
for (i = 0;i < number;i ++){
scanf("%d",&a[i]);
}
for(i = 0;i < number;i++){
for(j = number - 1;j > i;j --){
if(a[j]<a[i]) Swap(&a[j], &a[i]);
}
}
for(i = 0;i < number;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
int partition(int * a,int low,int high){
int privot = a[low];
while(low < high){
while(low < high && a[high] >= privot) high--;
Swap(&a[low], &a[high]);
while(low < high && a[low] <= privot) low++;
Swap(&a[low], &a[high]);
}
return low;
}
void QuickSort(int * a,int low,int high){
if(low < high){
int mid = partition(a, low, high);
QuickSort(a, low, mid - 1);
QuickSort(a, mid + 1, high);
}
}
int main(){
int number;
while(scanf("%d",&number) != EOF){
int a[number];
int i;
for (i = 0;i < number;i ++){
scanf("%d",&a[i]);
}
QuickSort(a, 0, number-1);
for(int i = 0;i < number;i ++){
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}