def merge_interval(intervals):
    answer = []

    for interval in sorted(intervals):
        if answer and answer[-1][1] >= interval[0]:
            popped = answer.pop()
            interval = [popped[0], max(popped[1], interval[1])]

        answer.append(interval)

    return answer
def pr(ok): print("Ok" if ok else "Error")

pr(merge_interval([[1, 3], [2, 6], [8, 10], [15, 18]])
   == [[1, 6], [8, 10], [15, 18]])
pr(merge_interval([[1, 4], [4, 5]])
   == [[1, 5]])