def binary_search(arr, low, high, x):
    """
    Find index of x in arr if present, else -1
    Thanks to https://www.geeksforgeeks.org/python-program-for-binary-search/
    :param arr: Ascending order sorted array to search
    :param low: Start index (inclusive)
    :param high: End index (inclusive)
    :param x: Element to find
    :return: index of x in arr if present, else -1
    """
    # 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