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 ;
}