class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
vector<int> list;
int up = 0;
int down = matrix.size()-1;
int left = 0;
int right = matrix[0].size()-1;
while(true) {
for(int i=left;i<=right;i++)
list.push_back(matrix[up][i]);
up++;
if(up>down)
break;
for(int i=up;i<=down;i++)
list.push_back(matrix[i][right]);
right--;
if(left>right)
break;
for(int i=right;i>=left;i--)
list.push_back(matrix[down][i]);
down--;
if(up>down)
break;
for(int i=down;i>=up;i--)
list.push_back(matrix[i][left]);
left++;
if(left>right)
break;
}
return list;
}
};