#include <iostream>
#include <vector>
#include <string>
using namespace std;
int binSerach(const std::vector<int>& nums, int target)
{
int low = 0;
int high = nums.size() - 1;
int mid;
while (low <= high)
{
mid = (low + high)/2;
if(nums[mid] == target)
{
while(mid != 0 and nums[mid-1] == nums[mid])
{
mid--;
}
return mid;
}
else if(nums[mid] > target)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
int main()
{
vector<int> vec = {1,2,2,3,4};
cout <<binSerach(vec,2)<<endl;
getchar();
return 0;
}