import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> list = new ArrayList<>();
int rowLen = matrix.length;
if (rowLen == 0){
return null;
}
int colLen = matrix[0].length;
for (int i = 0; i <= (rowLen-1)/2 && i <= (colLen - 1)/2; i++){
for (int j = i; j <= colLen - 1 -i; j++){
list.add(matrix[i][j]);
}
if (rowLen - 2*i - 1 >0){
for (int j = i + 1; j <= rowLen - 1 - i; j++){
list.add(matrix[j][colLen - 1 - i]);
}
if (colLen - 1 - 2*i > 0){
for (int j = colLen - 2 - i; j >= i; j--){
list.add(matrix[rowLen - i -1][j]);
}
if (rowLen - 2 - 2*i > 0){
for (int j = rowLen - 2 -i; j > i; j--){
list.add(matrix[j][i]);
}
}
}
}
}
return list;
}
}