/*#include<stdio.h>
char str[31][31]={};
int dx[5]={0, 1, 0, -1};
int dy[5]={-1, 0, 1, 0};
int direction(int x, int y)
{
int i;
for(i=0; i<4; i++){
if(str[x+dx[i]][y+dy[i]]=='1'){
return i;
}
}
}
void dfs(int x, int y, int d)
{
int i, c=0;
for(i=0; i<4; i++){
if(i==d||i==d+2){
continue;
}
if(str[x+dx[i]][y+dy[i]]=='1'){
c++;
}
}
if(c==0){
str[x][y]='0';
}
if(str[x+dx[d]][y+dy[d]]=='1'){
dfs(x+dx[d], y+dy[d], d);
}
}
int main()
{
int x, y, i, j, cnt=0;
char o;
scanf("%d%d", &x, &y);
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
scanf("%c", &str[i][j]);
}
scanf("%c", &o);
}
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
if(str[i][j]=='1'){
dfs(i, j, direction(i, j));
cnt++;
}
}
}
printf("%d", cnt);
}
*/
#include<stdio.h>
//int pivot=0, left=1, right=2;
int n;
int arr[100]={};
void f(int pivot, int right, int left)
{
int temp;
right++;
if(arr[right]<pivot){
temp=arr[left];
arr[left]=arr[right];
arr[right]=temp;
left++;
}
if(left>right){
pivot=right;
left++;
right=left+1;
}
f(pivot);
}
int main()
{
int n, i, j;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
f(arr[0], 2, 1);
for(i=0; i<n; i++){
printf("%d", arr[i]);
}
return 0;
}
#include<stdio.h>
int n;
int arr[100];
void quicksort(int left, int right)
{
if(left>=right){
return;
}
int temp;
int pivot=arr[right];
int i=left-1;
for(int j=left; j<right; j++){
if(arr[j]<pivot){
i++;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
temp=arr[i+1];
arr[i+1]=arr[right];
arr[right]=temp;
quicksort(left, i);
quicksort(i+2, right);
}
int main()
{
int i;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
quicksort(0, n-1);
for(i=0; i<n; i++){
printf("%d ", arr[i]);
}
return 0;
}