#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
vector<int> arr = {3,5,5,8,8,10,12};
int ub = 6;
int ans =0;
int st=0, end=arr.size()-1;
while( st<=end){
int m = st+ (end-st)/2;
if(arr[m]<=ub){
st=m+1;
}
else{
if(m==0){
ans=m;
break;
}
else if(arr[m-1]<ub){
ans = m;
break;
}
else{
end = m-1;
}
}
}
cout<< ans;
auto mg = upper_bound(arr.begin(), arr.end(), ub);
cout<< endl << *mg;
cout<< endl << *arr.begin();
cout << endl<< mg - arr.begin();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCgl2ZWN0b3I8aW50PiBhcnIgPSB7Myw1LDUsOCw4LDEwLDEyfTsKCQoJaW50IHViID0gNjsKCQoJaW50IGFucyA9MDsKCWludCBzdD0wLCBlbmQ9YXJyLnNpemUoKS0xOwoJCgl3aGlsZSggc3Q8PWVuZCl7CgkJCgkJaW50IG0gPSBzdCsgKGVuZC1zdCkvMjsKCQkKCQlpZihhcnJbbV08PXViKXsKCQkJc3Q9bSsxOwoJCX0KCQllbHNlewoJCQlpZihtPT0wKXsKCQkJCWFucz1tOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSBpZihhcnJbbS0xXTx1Yil7CgkJCQlhbnMgPSBtOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZXsKCQkJCWVuZCA9IG0tMTsKCQkJfQoJCX0KCX0KCQoJY291dDw8IGFuczsKCQoJYXV0byBtZyA9IHVwcGVyX2JvdW5kKGFyci5iZWdpbigpLCBhcnIuZW5kKCksIHViKTsKCWNvdXQ8PCBlbmRsIDw8ICptZzsKCWNvdXQ8PCBlbmRsIDw8ICphcnIuYmVnaW4oKTsKCWNvdXQgPDwgZW5kbDw8IG1nIC0gYXJyLmJlZ2luKCk7CgkKCXJldHVybiAwOwp9