#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4")
void sort(unsigned *a,int n){
const int S=257;
int c0[S],c1[S],c2[S],c3[S];
unsigned b[100000005];
for (register int i=0;i<n;++i){
++c0[a[i]&255];
++c1[a[i]>>8&255];
++c2[a[i]>>16&255];
++c3[a[i]>>24];
}
for (register int i=1;i<256;++i)
c0[i]+=c0[i-1],c1[i]+=c1[i-1],c2[i]+=c2[i-1],c3[i]+=c3[i-1];
for (register int i=n-1;~i;--i)
b[--c0[a[i]&255]]=a[i];
for (register int i=n-1;~i;--i)
a[--c1[b[i]>>8&255]]=b[i];
for (register int i=n-1;~i;--i)
b[--c2[a[i]>>16&255]]=a[i];
for (register int i=n-1;~i;--i)
a[--c3[b[i]>>24]]=b[i];
}