/*
* Problem :: 10989 / 수 정렬하기 3
*
* Kind :: Sorting
*
* Insight
* - 메모리 제한은 웬만하면 넉넉해서 잘 안보는 편인데
* 틀리고 나서야 8MB 임을 알았다
* + (int) A[10^7] = 4*10^7B = 4*10^4KB = 4*10MB
* 근데 주어지는 수가 모두 10,000 이하의 자연수이다
* # (int) A[10^4] = 4*10^4B = 4*10KB
* 이정도면 메모리 제한내에서 충분히 가능하다!
*
* Point
* - 비교를 해서 정렬할 경우 O(NlogN) 의 시간복잡도를 지니지만
* + 병합 정렬(Merge Sort), 힙 정렬(Heap sort), 퀵 정렬(Quick sort)
* 수를 세서 정렬할 경우 O(N) 의 시간복잡도를 지닌다
* + 계수 정렬(Counting Sort)
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
/* None */
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
int N; cin >> N;
int C[10000+1] = {0, };
// Process
for (int i=0; i<N; i++) {
int n; cin >> n;
C[n]++;
}
// Control : Output
for (int i=1; i<=10000; i++) {
for (int j=0; j<C[i]; j++) {
cout << i << endl;
}
}
}
// Helper Functions
/* None */