#include <iostream>
#include <algorithm> // next_permutation
#include <iomanip>
#include <cmath>
#include <vector>
#include <sstream>
#include <string>
#include <cstdio>
#include <stack>
#include <queue>
#include <list>
#include <numeric> //accumulate
//#include <unordered_map> //???????????\??¢??°
#include <fstream> //ifstream, ofstream

#define NDEBUG //NDEBUG???#include <cassert>???????????????????????????????????´???assert?????????????????????????????????NDEBUG????????????????????¨
#include <cassert> //assert


using namespace std;

//???????????°??????TEST????????????????????¬???????????????????????????????????¢????????????
#define TEST //*******************************************************************************************************************************************
//?????????????????¨??§?????\????????????????????????????????°?????????????¨???????????????????dout???????????????????????§???????????¬??????????????????????????????????????????
//??????????????????????????????????????????????????????????§?CPU???????£??????????????????§???TLE?????????????????????????????????????????§????????¨???                           ????????????????????????cerr????????£????????????????????????????????????
#ifdef TEST
#define dout cout
#else
stringstream dummy; //???????????°??????dout?????????????????????????????????
#define dout dummy.str(""); dummy.clear(stringstream::goodbit); dummy //dummy?????????????????????????????????????????¨?????¢?????¢???????????????
//???????????¨??????????????????goodbit?????????????????????????????¨???????????´????????????????????????????????¨?????°?????????????????§???????????????????????????????????? http://d.hatena.ne.jp/linden/20060427/p1
#endif

//?¨??????????????????????????????????????????????????????´??????OUTPUT2TEXTFILE????????????????????¬???????????????????????????????????¢????????????
//#define OUTPUT2TEXTFILE //*******************************************************************************************************************************************
#ifdef OUTPUT2TEXTFILE
#define dout outputfile //??¨????????????TLE????????§?????????dout?????¨??¨??????????????¢????????????????????????????????????????????§????¨????????????´??????????????£??????????????????????¨?????????????????????????????????????????????§?????????????????????
//TEST??????????????????????????¨???outputfile??????????????????????????????
#define OUTPUTFILENAME "output.txt"
ofstream outputfile(OUTPUTFILENAME);
#define OutputFilePath "/Users/Nag/Documents/Prgm/Test/DerivedData/Test/Build/Products/Debug/output.txt"
#endif

#define disp(A) dout << #A << " = " << (A) << endl
#define disP(A) dout << setw(3) << (A) << " " // << setw(3) ??????????????\????????????
#define rep(i,a,n) for(int (i)=(a); (i)<(n); (i)++)

#define dispAll(A,n) dout << #A << " = "; rep(j, 0, (n)) {disP(A[j]);} dout << endl

typedef pair<int,int> pii;
typedef vector<int> vi;
typedef unsigned long long ll;

const int INF = 1e9+999;



int main(){
    const int a_max = 10000;
    
    int N;
    cin >> N;
    
    int a[N];
    rep(i,0,N) cin >> a[i];
    
    int c[a_max+1]; //a[]???????´???????????????°???????????????????????¨
    int output[N]; //a[]????????????????????????????????????????????????
    
    
    //counting sort
    
    rep(i,0,a_max+1) { //0??§???????????????????????????????????¨???????´???°?????§???????????§??????????????????????????????????????\??£??????????????????
        c[i] = 0;
    }
    
//    dispAll(c, a_max+1);
    
    rep(i,0,N) { //a[]??????????????°???c[]????????????c[i] = i???a[]??????????????????????????????
        c[ a[i] ] ++;
    }
    
//    dispAll(c, a_max+1);
    
    
    rep(i,1,a_max+1) { //?´?????????°????????????c[i] = i??\??????a[]??????????????????????????????
        c[i] += c[i-1];
    }
    
//    dispAll(c, a_max+1);
    
    for(int i=N-1; i>=0; i--) { //?´?????????°?????????????????????????????§???a[]?????????????????°???????????????
        output[ c[a[i]] - 1 ] = a[i]; //a[i]??\????????°??????c[a[i]]????????????????????§???b[]??? (c[a[i]]???1)???????????????????????°??????
        c[a[i]]--; //?¬????????????°?????????????????¨??????1????????????????????????????????????1?????????????????????????????°????????????????????§?????????????????¨??????
    }
    
//    dispAll(output, N);

    rep(i,0,N) {
        if(i==0) cout << output[i];
        else cout << " " << output[i];
    }
    cout << endl;
    
    
#ifdef OUTPUT2TEXTFILE
    outputfile.close();
    cout << "\"" << OutputFilePath << "\"" << endl;
#endif
    
    return 0;
}

Measured memory_bytes: 18748