/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
*/
const search = (nums, target) => {
  let l = 0, r = nums.length - 1;

  while (l <= r) {
    let m = Math.ceil((l + r) / 2);

    if (target == nums[m]) {
      console.log("Returning " + m)
      return m;
    }

    // chunk checking
    if (nums[l] <= nums[m]) {
      if (target > nums[m] || target < nums[l]) {
        l = m + 1;
      } else {
        r = m - 1;
      }
    } else {
      if (target < nums[m] || target > nums[r]) {
        r = m - 1;
      } else {
        l = m;
      }
    }

    // if (nums[l] == nums[r]) return -1;

  }

  console.log("NOt found")
  return -1;
};



search([4, 5, 6, 7, 0, 1, 2], 0)
// search([3, 1], 3)
// search([3, 1], 0)
search([1, 3, 5], 5)