You will be given a set of intervals in the form of a 2-D array `arr`, write a program to merge all the overlapping intervals, and return a 2-D array.

Problem Note:

• You will be given a 2-D array `intervals` consisting of `r` rows and 2 columns.
• Each row has an interval starting from the value at the first column and ending at a value in the second column.
• Two intervals t1 and t2 are said to be overlapping if and only if t1.start <= t2.start <= t1.end
• Even if t1 entirely engulfs t2 completely, it's said to be overlapping.

Example 1

``````Input: [[1, 5], [2, 3], [4, 8], [9, 10]]
Output: [[1, 8], [9, 10]]
Explanation: In the above example, [[1, 5], [2, 3], [4, 8]] will be merged in the interval [1, 8], while [9, 10] is a separte interval. Thus we get [[1, 8], [9, 10]] as output. ``````

Example 2

``````Input: [[1, 4], [5, 8], [8, 10], [12, 15]]
Output: [[1, 4], [5, 10], [12, 15]]
Explanation: In the above example, [1, 4] is a separte interval, [[5, 8], [8, 10]] will be merged in the interval [5, 10], and [12, 15] is a separate interval. Thus we get [[1, 4], [5, 10], [12, 15]] as output.``````

Example 3

``````Input: [[3, 8], [4, 6], [6, 10]]
Output: [[3, 10]]
Explanation: In the above example, [[3, 8], [4, 6], [6, 10]] will be merged in a single interval [3, 10]. Thus we get [[3, 10]] as output.``````