def find_First_Missing(array,start,end):
     
    if (start > end): 
        return end + 1
    if (start != array[start]): 
        return start; 
    mid = int((start + end) / 2) 
    if (array[mid] == mid): 
        return find_First_Missing(array,mid+1,end) 
    return find_First_Missing(array,start,mid) 
def find_First_Missing(array, start, end):
    if end < start:
        return end + 1
    if start != array[start]:
       
        return start
    mid = int((start + end) / 2)
    if array[mid] == mid:
        return find_First_Missing(array, mid + 1, end)
    return find_First_Missing(array, start, mid)