#include<stdio.h>


int main(int argc, char** argv){

    int  L[100], C[50];
    int  i, j, n, max, pos;
    char line[50];


    	//  Read in list L

    printf("Number of elements?\n");
    gets(line);
    sscanf(line, "%d", &n);

    printf("Enter list:\n");
    for (i = 1; i <= n; i++) {
        gets(line);
        sscanf(line, "%d", &L[i]);
    }
        
    	// Find maximum value in list L

    max = 0;
    for (i = 1; i <= n; i = i + 1) {
        if (L[i] > max) {
    	    max = L[i];
        }
    }

    	// Count-sort algorithm

    for (i = 1; i <= max; i = i + 1) {
        C[i] = 0;
    }
    for (i = 1; i <= n; i = i + 1) {
        C[L[i]] = C[L[i]] + 1;
    }
    pos = 1;
    for (i = 1; i <= max; i = i + 1) {
        for (j = 1; j <= C[i]; j = j + 1) {
    	    L[pos] = i;
    	    pos = pos + 1;
        }
    }
       
    	// Print out sorted version of list L

    printf("Sorted list:\n");
    for (i = 1; i <= n; i = i + 1) {
        printf("%d\n", L[i]);
    }

}  // End of main method
