>>503
int rev_bit(int n,int l,int u) {
for (--l,--u;l<u; ++l,--u)if(((n&(1<<l))>>l)^((n&(1<<u))>>u))n^=(1<<l)|(1<<u);
return n;
}