// get the greatest power of two that is a divisor of n:
	return n&-n;
	
	
// swap two integers a and b:
	a^=b^=a^=b;
	a^=b, b^=a, a^=b;
	
// check whether a (nature number > 1) is a power of two or not:
	return ( ! ( x & (x-1)));
	return (x&-x) == x;
	
// count number of bits set in v:
	for( int i=0; v; i++)
		v &= v - 1;
	
	

// copy two char array
	while(*s++ = *t++);
	
// binary search
	int left = 0, right = N;
	for( int mid=(left+right)>>1; right-left>1; mid = left + (right-left)>>1)
		(arr[mid] > x ? left : right ) = mid;
	return right;