int Fun(int x){
int res=0;
while (x) res+=x&1,x>>=1;
return res;
}
int Mycmp(const void* a,const void* b){
return (Fun(*(int*)a) - Fun(*(int*)b))? Fun(*(int*)a) - Fun(*(int*)b):*(int*)a - *(int*)b;
}
int* sortByBits(int* arr, int arrSize, int* returnSize){
qsort(arr,arrSize,sizeof(int),Mycmp);
*returnSize = arrSize;
return arr;
}