def merge_intervals(intervals):
if not intervals:
return []
sorted_intervals = sorted(intervals, key=lambda x: (x[0], x[1]))
result = [list(sorted_intervals[0])]
for start, end in sorted_intervals[1:]:
last = result[-1]
if start <= last[1]:
if end > last[1]:
last[1] = end
else:
result.append([start, end])
return result