#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
const int NUM=3; //位数
void input(vector<int>& v)
{
int data;
while(cin>>data)
{
v.push_back(data);
}
}
void print(vector<int>& v)
{
for(vector<int>::iterator iter=v.begin(); iter!=v.end(); iter++)
cout<<*iter<<" ";
cout<<endl;
}
void RadixSort(vector<int>& v)
{
int rate=1; //rate变化表示位数
int temp=0;
for(int i=1; i<=NUM; i++,rate*=10)
{
vector<int> res(v.size());
vector<int> count(10);
for(int j=0; j<v.size(); j++)
{
temp=(v[j]/rate)%10;
count[temp]++;
}
for(int j=1; j<10; j++) //注意j从1开始
count[j]+=count[j-1];
for(int j=v.size()-1; j>=0; j--)
{
temp=(v[j]/rate)%10;
res[count[temp]-1]=v[j];
count[temp]--;
}
for (int j=0; j<v.size(); j++)
v[j]=res[j];
}
}
int main(int argc, char *argv[])
{
vector<int> v;
input(v);
RadixSort(v);
print(v);
system("PAUSE");
return EXIT_SUCCESS;
}