public void cal(int x, int y, int m, int n, int[][] matrix) {
        if (n <= 0 || m <= 0) return;
        for (int i = 0; i < n; i++)
            res.add(matrix[x][i + y]);
        for (int i = 1; i < m; i++)
            res.add(matrix[x + i][y + n - 1]);
        for (int i = 1; i < n; i++)
            if (x + m - 1 > x)
                res.add(matrix[x + m - 1][y + n - 1 - i]);
        for (int i = 1; i < m - 1; i++)
            if (x + m - 1 - i > 0 && n != 1)
                res.add(matrix[x + m - 1 - i][y]);

        cal(x + 1, y + 1, m - 2, n - 2, matrix);
    }