def select_intervals(intervals):
    ordered = sorted(enumerate(intervals), key=lambda item:
                     (item[1][1], item[1][0], item[0]))
    selected, last_end = [], None
    for _, (start, end) in ordered:
        if last_end is None or start >= last_end:
            selected.append((start, end))
            last_end = end
    return selected
