/*
#include <stdio.h> //3011 : 거품 정렬(Bubble Sort)
int main()
{
int a[1001]={};
int n,k,i,j,f=0;
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d",&a[i]);
}
for(i=0; i<n-1; i++){
for(j=0; j<n-1-i; j++){//이 줄에서 n-1-i를 써, 굳이 끝까지 확인할 필요없어짐.
if(a[j]>a[j+1] && j+1<=n){
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
f++;
}
}
if(f==0) break;
f=0;
}
printf("%d",i);
return 0;
}
*/
/*
#include <stdio.h> //1441 : 버블 정렬
int a[10001];
int n, i, j, temp;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1; j<=n-i; j++)
{
if (a[j] > a[j+1])//여기만 내가 푸는 문제
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
/*
#include <stdio.h>//1709 : 내림차순 정렬
int main()
{
int a[101]={};
int n,i,j,t,f;
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d",&a[i]);
}
for(i=0; i<n; i++){
for(j=0; j<=n-i; j++){
if(a[j]<a[j+1] && j+1<=n){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
f++;
}
}
if(f==0) break;
f=0;
}
for(i=0; i<n; i++){
printf("%d ",a[i]);
}
return 0;
}
*/
/*
#include <stdio.h>// 1442 : 선택 정렬
int a[10001];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++) {
if(a[j]<a[min]){//여기 부분만
min=j; //내가
} //작성함
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
/*
#include <stdio.h>
int a[101]={};
int n,t,min,i,j;
int main()
{
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d",&a[i]);
}
for(i=0; i<n; i++){
min=i;
for(j=i+1; j<n; j++){
if(a[j]>a[min]){
min=j;
}
}
t=a[i];
a[i]=a[min];
a[min]=t;
}
for(i=0; i<n; i++){
printf("%d ",a[i]);
}
return 0;
}
*/
#include <stdio.h>//1443 : 삽입 정렬
int a[10001];
int n, i, j, temp, key;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=2; i<=n; i++)
{
key=a[i];
for(j=i-1; j>=1 && a[j];j--)//이어서 내림차까지 풀어오기
{
a[j+1]=a[j];
}
a[j+1]=key;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}