#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4")
void sort(unsigned *a,int n){
int c0[65537],c1[65537];
unsigned b[100000005];
for (register int i=0;i<n;++i)
c0[a[i]&65535]++,c1[a[i]>>16]++;
for (register int i=1;i<65536;++i)
c0[i]+=c0[i-1],c1[i]+=c1[i-1];
for (register int i=n-1;~i;--i)
b[--c0[a[i]&65535]]=a[i];
for (register int i=n-1;~i;--i)
a[--c1[b[i]>>16]]=b[i];
}