def binary_search_recursive(array, left, right, key):
    """
    Funkce rekurzivne ve vzestupne usporadanem poli 'array' vyhleda klic
    'key'. Hleda se pouze v rozsahu od indexu 'left' do indexu 'right'.
    Funkce vraci index nalezeneho prvku, pokud prvek v posloupnosti
    neni, vraci -1.
    """
    if left == right:
        return left if array[left] == key else -1

    mid = (left + right) // 2

    if key < array[mid]:
        return binary_search_recursive(array, left, mid - 1, key)

    if key > array[mid]:
        return binary_search_recursive(array, mid + 1, right, key)

    return mid