#include <bits/stdc++.h>
using namespace std;
bool fun(int mid, vector<int>v, int k){
    int i=mid;
    while(i<v.size()-1 && v[i]==v[i+1]){
        i++;
    }
    
   if((i+1)%(k)==0){
       //mid=i+k-1;
       return true;
   }
  // mid=i;
   return false;
}
int main()
{
    vector<int>v={
10, 10, 20, 20, 20, 30, 30, 30
};
    int n=v.size();
    int k=3;
    int l=0;
    int h=n-1;
    int ans=0;
   
    while(l<=h){
        int mid=(l+h)/2;
       //cout<<l<<" "<<h<<" "<<mid<<endl;
        if(fun(mid,v, k)==true){
            l=mid+1;
        }
        else{
       
          h=mid-1;
          ans=v[mid];
        }
        
    }
    cout<<" ans "<<ans<<endl;

}
