def Peak_Element(nums):
    n = len(nums)  

    if n == 1:
        return 0
    if nums[0] > nums[1]:
        return 0
    if nums[n - 1] > nums[n - 2]:
        return n - 1

    low = 1
    high = n - 2
    while low <= high:
        mid = (low + high) // 2

        # If arr[mid] is the peak
        if nums[mid - 1] < nums[mid] and nums[mid] > nums[mid + 1]:
            return mid

        # If we are in the left
        if nums[mid] > nums[mid - 1]:
            low = mid + 1

        # If we are in the right
        else:
            high = mid - 1

    
#nums = [1,2,3,1]
#nums = [1,2,1,3,5,6,4]
#nums= [9,8,7,6,5,4,3,1]
#nums=[5]
nums=[1,2,3,4,5,6,7,8,9]
print(Peak_Element(nums))

