#define b 256u
unsigned t[100000000],c[256];
void sort(unsigned*a,int n)
{
for(register int i=0;i<n;i++)++c[a[i]&b];
for(register int i=1;i<b;++i)c[i]+=c[i-1];
for(register int i=0;i<n;++i)t[--c[a[i]&b]]=a[i];
for(register int i=0;i<b;++i)c[i]=0;
for(register int i=n;i--;)++c[a[i]>>8&b];
for(register int i=1;i<b;++i)c[i]+=c[i-1];
for(register int i=n;i--;)a[--c[t[i]>>8&b]]=t[i];
for(register int i=0;i<b;++i)c[i]=0;
for(register int i=n;i--;)++c[a[i]>>16&b];
for(register int i=1;i<b;++i)c[i]+=c[i-1];
for(register int i=n;i--;)a[--c[t[i]>>16&b]]=t[i];
for(register int i=0;i<b;++i)c[i]=0;
for(register int i=n;i--;)++c[a[i]>>24&b];
for(register int i=1;i<b;++i)c[i]+=c[i-1];
for(register int i=n;i--;)a[--c[t[i]>>24&b]]=t[i];
}