#include<vector>
using std::vector;
void sort(unsigned *a, int n)
{
vector<signed>v[65537];
for(register signed i=0;i<n;i++)v[a[i]&65535].push_back(a[i]);
for(register signed i=0,p=0;i<65536;i++){for(auto x:v[i])a[++p]=x;v[i].clear();}
for(register signed i=0;i<n;i++)v[(a[i]>>16)&65535].push_back(a[i]);
for(register signed i=0,p=0;i<65536;i++){for(auto x:v[i])a[++p]=x;}
}