#include <bits/stdc++.h>
using namespace std;
int upper_bound1(vector<int> &arr, int target){
int l = 0, r = arr.size() - 1;
int pos = -1;
while(l <= r){
int mid = (r+l)/2;
if(arr[mid] < target){
l = mid+1;
}
else if(arr[mid] > target){
pos = mid;
r = mid-1;
}
}
return pos;
}
int main() {
// your code goes here
vector<int> arr = {5, 8, 13, 15, 22, 29, 35, 38, 42};
int result = upper_bound1(arr, 25);
if(result != -1){
cout << arr[result];
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgdXBwZXJfYm91bmQxKHZlY3RvcjxpbnQ+ICZhcnIsIGludCB0YXJnZXQpewoJaW50IGwgPSAwLCByID0gYXJyLnNpemUoKSAtIDE7CglpbnQgcG9zID0gLTE7Cgl3aGlsZShsIDw9IHIpewoJCWludCBtaWQgPSAocitsKS8yOwoJCWlmKGFyclttaWRdIDwgdGFyZ2V0KXsKCQkJbCA9IG1pZCsxOwoJCX0KCQllbHNlIGlmKGFyclttaWRdID4gdGFyZ2V0KXsKCQkJcG9zID0gbWlkOwoJCQlyID0gbWlkLTE7CgkJfQoJfQoJCglyZXR1cm4gcG9zOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3RvcjxpbnQ+IGFyciA9IHs1LCA4LCAxMywgMTUsIDIyLCAyOSwgMzUsIDM4LCA0Mn07CglpbnQgcmVzdWx0ID0gdXBwZXJfYm91bmQxKGFyciwgMjUpOwoJaWYocmVzdWx0ICE9IC0xKXsKCQljb3V0IDw8IGFycltyZXN1bHRdOwoJfQoJcmV0dXJuIDA7Cn0=