#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
void input(vector<int>& v)
{
int data;
while(cin>>data)
{
v.push_back(data);
}
}
void print(const vector<int>& v)
{
for(vector<int>::const_iterator iter=v.begin(); iter!=v.end(); iter++)
cout<<*iter<<" ";
cout<<endl;
}
void countSort(vector<int> &v)
{
int k=20; //假设输入数的范围在0到20之间
vector<int> res(v.size());
vector<int> vc(k+1);
for(vector<int>::iterator it=v.begin(); it!=v.end(); it++)
{
vc[*it]++;
}
for(int j=1; j<=k; j++)
{
vc[j]+=vc[j-1];
}
for(int j=v.size()-1; j>=0; j--)
{
res[vc[v[j]]-1]=v[j]; //注意理解这一句.从最后一个元素开始,依次放入它所该在的位置
vc[v[j]]--;
}
print(res);
}
int main(int argc, char *argv[])
{
vector<int> v;
input(v);
countSort(v);
system("PAUSE");
return EXIT_SUCCESS;
}