Given an `m x n` matrix, return all elements of the matrix in spiral order. Carefully handle the boundaries (top, bottom, left, right) as you traverse inward in layers.
2D list of ints.
List of ints in spiral order.
Example 1:
Input:
matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output:
[1,2,3,6,9,8,7,4,5]
Explanation:
Spiral order of the matrix.