#include <iostream>

using namespace std;

int dane[] = {1, 4, 3, 2, 2, 1};
int liczbaElementow = 6;
int elementNajwiekszy = 4;
int main()
{
    int temp[liczbaElementow] = {};
    int tablicaZliczen[elementNajwiekszy+1] = {};

    for (int i = 0; i < liczbaElementow ; i++) {
        int odczytanaWartosc = dane[i];
        tablicaZliczen[odczytanaWartosc]++;
    }

    for (int i = 1; i < liczbaElementow-1; i++) {
        tablicaZliczen[i] = tablicaZliczen[i] + tablicaZliczen[i-1];
    }

    for (int i = liczbaElementow-1; i >= 0 ; i--) {
        int element = dane[i];
        int indeksWTablicyWynikowej = tablicaZliczen[element] - 1;
        temp[indeksWTablicyWynikowej] = dane[i];
        tablicaZliczen[element]--;
    }

    for (int i = 0; i < liczbaElementow; i++) {
        dane[i] = temp[i];
    }

    for(int i = 0; i < liczbaElementow; i++) {
        cout << dane[i] << " ";
    }
}
