Given an array of intervals where intervals[i] = [start, end], merge all overlapping intervals.
Example 1:
Input: 1 3 2 6 8 10 15 18 Output: 1 6 8 10 15 18
Example 2:
Input: 1 4 4 5 Output: 1 5
Constraints:
- 1 ≤ intervals.length ≤ 10⁴
- intervals[i].length == 2
- 0 ≤ start ≤ end ≤ 10⁴
Input format: First line: number of intervals. Then each interval on its own line as "start end".
Output format: Merged intervals, one per line.