/*
#include <iostream>
using namespace std;
int size, i=0;
int partition(int a[], int begin, int end)
{
int pivot, temp, L, R, t;
L=begin;
R=end;
pivot=(int)((begin+end)/2.0);
while(L<R)
{
while((a[L] < a[pivot]) && (L<R)) L++;
while((a[R] >= a[pivot]) && (L<R)) R--;
if(L<R)
{
temp = a[L];
a[L] = a[R];
a[R] = temp;
if(L == pivot)
pivot = R;
}
}
temp =a[pivot];
a[pivot] = a[R];
a[R] = temp;
for(t=0; t<size; t++)
{
cout<<' '<<a[t];
}
cout<<'\n';
return R;
}
void quickSort(int a[], int begin, int end)
{
int p;
if(begin<end)
{
p=partition(a,begin,end);
quickSort(a,begin,p-1);
quickSort(a,p+1,end);
}
}
int main()
{
int list[8]={69,10,30,2,16,8,31,22};
size=8;
quickSort(list,0,size-1);
}
*/
/*
#include <iostream>
using namespace std;
int partition(int arr[],int low,int high)
{
int pivot = low;//
int L = low+1;
int R = high;
while(L < R)
{
while(arr[pivot] > arr[L] && L<R) L++;
while(arr[pivot] <= arr[R] && L<R) R--;
if(L < R)
{
int temp = arr[L];
arr[L] = arr[R];
arr[R] = temp;
}
}
if(arr[pivot] > arr[R]) {//
int temp = arr[R];
arr[R] = arr[pivot];
arr[pivot] = temp;
}
return R;
}
void quickSort(int arr[],int begin,int end)
{
if(begin < end)
{
int pivot=partition(arr,begin, end);
quickSort(arr, begin, pivot-1);
quickSort(arr, pivot, end);//
}
}
int main()
{
int n,arr[100001];
cin>>n;
for(int i=0; i<n; i++)
{
cin>>arr[i];
}
quickSort(arr, 0, n-1);
for(int i=0; i<n; i++)
{
cout<<arr[i]<<'\n';
}
}
*/
/*
#include <iostream>
using namespace std;
int main()
{
int n,a,arr[100001]= {};
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a;
arr[a]++;
}
for(int i=0; i<=100000; i++)
{
if(arr[i])
for(int j=0; j<arr[i]; j++)
cout<<i<<' ';
}
}
*/
/*
#include <iostream>
using namespace std;
int partition(int arr[],int low, int high)
{
int pivot=low;
int L=low+1;
int R=high;
while(L < R)
{
while(arr[pivot] > arr[L] && L<R) L++;
while(arr[pivot] <= arr[R] && L<R) R--;
if(L < R)
{
int temp = arr[L];
arr[L] = arr[R];
arr[R] = temp;
}
}
if(arr[pivot] > arr[R])
{
int temp = arr[pivot];
arr[pivot] = arr[R];
arr[R] = temp;
}
return R;
}
void quickSort(int arr[],int left,int right)
{
if(left<right)
{
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot-1);
quickSort(arr, pivot, right);
}
}
int main()
{
int n,min,max,flag;
cin>>n;
int arr1[n+1]={0},arr2[n+1]={0};
for(int i=0; i<n; i++)
{
cin>>arr1[i];
arr2[i]=arr1[i];
}
quickSort(arr2, 0, n-1);
for(int i=0; i<n; i++)
{
min=0;
max=n;
flag=(min+max)/2;
for(;;){
if(arr1[i] == arr2[flag])
{
cout<<flag<<' ';
break;
}
else if(arr1[i] > arr2[flag])
{
min=flag+1;
flag=(max+min)/2;
}
else
{
max=flag;
flag=(max+min)/2;
}
}
}
}
*/
#include <iostream>
using namespace std;
int main()
{
int arr[100001]= {0}, i, j, n, b;
cin>>n;
for(i=0; i<n; i++)
{
cin>>b;
arr[b]++;
}
for(i=0; i<=100000; i++)
{
if(arr[i] != 0)
{
for(j=0; j<arr[i]; j++)
{
cout<<i<<' ';
}
}
}
return 0;
}