import java.util.*;
public class Solution {
public int search(int[] nums, int target) {
int res = -1;
int low = 0, high = nums.length - 1;
while(true) {
int mid = midSearch(nums, low, high, target);
int start = mid;
while(true) {
int temp = midSearch(nums, low, mid - 1, target);
if(temp != -1) {
start = temp;
mid = temp;
} else break;
}
res = start;
break;
}
return res;
}
public int midSearch(int[] nums, int low, int high, int target) {
while(low <= high) {
int mid = (low + high) / 2;
if(nums[mid] > target) {
high = mid - 1;
} else if(nums[mid] < target) {
low = mid + 1;
} else return mid;
}
return - 1;
}
}