int binary_search(const unsigned *a, int n, unsigned x) {
unsigned int l = 0, r = n - 1;
unsigned int mid;
while (l <= r) {
cout << l << " " << r << endl;
mid = (l + r) >> 1;
if (a[mid] == x) break;
if (a[mid] > x) r = mid - 1;
if (a[mid] < x) l = mid + 1;
}
return mid + 1;
}