#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

const unsigned int RESULTING_SEQUENCE_SIZE = 10;

int main() {
	double currentMember;
	vector <double> inputSequence;
    double resultingSequence[RESULTING_SEQUENCE_SIZE]{0};
    // Adds a new element to the vector to the end of the input stream
    while (cin >> currentMember) {
    	inputSequence.push_back(currentMember);
    } 
    sort(inputSequence.begin(), inputSequence.end()); // Sort ascending initial sequence
    for (int i = 0; i < RESULTING_SEQUENCE_SIZE; i++) {
    	// Accumulate the sum of suitable elements to the corresponding member of the result sequence
    	for (auto currentMember : inputSequence) {
    		resultingSequence[i] += (i < currentMember && currentMember <= i + 1 ? currentMember : 0);
    	}
    }
    // Output the sequence
    for (auto currentMember : resultingSequence) {
    	cout << currentMember << " ";
    } 
	return 0;
}