Given a matrix of `m x n` elements, where `m` is the number of rows and `n` is the number of columns. Write a program to return all elements of the matrix in spiral order.

Example 1

``````Input:
[
[1, 2],
[3, 4]
]
Output: [1, 2, 4, 3]
Explanation: In the above example, the elements of first row i.e., [1, 2] are taken first in the output, then in continuity the 2nd column remaining element is taken i.e. , and then in continuity the 2nd row remaining element is taken i.e., . Thus, we get [1, 2, 4, 3] as output.``````

Example 2

``````Input:
[
[5, 8, 3],
[3, 8, 6],
[4, 7, 3]
]
Output: [5, 8, 3, 6, 3, 7, 4, 3, 8]
Explanation: In the above example, the elements of first row i.e., [5, 8, 3] are taken first in the output, then in continuity the 3rd column remaining elements are taken i.e. [6, 3], then in continuity the 3rd row elements are taken i.e., [7, 4], and at last in continuity the remaining elements of the 2nd row are taken i.e., [3, 8]. Thus, we get [5, 8, 3, 6, 3, 7, 4, 3, 8] as output.``````