class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        int top=0;
        int left=0;
        int right=matrix[0].size()-1;
        int buttom=matrix.size()-1;
        vector<int> m;
        while(left<=right&&top<=buttom)
        {
            for(int i=left;i<=right;i++)
            {
                m.push_back(matrix[top][i]);
            }
            top++;
            if(top>buttom)
            {
                break;
            }
            for(int i=top;i<=buttom;i++)
            {
                m.push_back(matrix[i][right]);

            }
            right--;
            if(right<left)
            {
                break;
            }
            for(int i = right;i>=left;i--)
            {
                m.push_back(matrix[buttom][i]);
            }
            buttom--;
            if(buttom<top)
            {
                break;
            }
            for(int i=buttom;i>=top;i--)
            {
                m.push_back(matrix[i][left]);
            }
            left++;
            if(left>right)
            {
                break;
            }
        }
        return m;
    }
};