def binary_search(arr, low, high, x):
    """ Binary search from 
        https://www.geeksforgeeks.org/python-program-for-binary-search/ 
        Input:
            arr : list
                Array to analyze.
            low : int
                Represent from what position i am going to analyze.
            high : int
                Represent how far i am going to analyze.
            x : int
                It is the element that i am looking for.
        Output:
            index : int
                - 1 if i didn't get the element x"""
 
    # Check base case
    if high >= low:
 
        mid = (high + low) // 2
 
        # If element is present at the middle itself
        if arr[mid] == x:
            return mid
 
        # If element is smaller than mid, then it can only
        # be present in left subarray
        elif arr[mid] > x:
            return binary_search(arr, low, mid - 1, x)
 
        # Else the element can only be present in right subarray
        else:
            return binary_search(arr, mid + 1, high, x)
 
    else:
        # Element is not present in the array
        return -1