#include <iostream>
#include <vector>
using namespace std;

void roundout(int m, int n, vector<vector<int>> mn){
    int left,right,top,bottom;
    left = 0;
    right = n-1;
    top = 0;
    bottom = m-1;
    
    int i,j;
    int num = 0;
    while(true){
        if(left>right) break;
        for(i=top,j=left;j<=right;j++) cout<<(num++==0?"":",")<<mn[i][j];
        top +=1;

        if(top>bottom) break;
        for(i=top,j=right;i<=bottom;i++) cout<<(num++==0?"":",")<<mn[i][j];
        right -=1;

        if(left>right) break;
        for(i=bottom,j=right;j>=left;j--) cout<<(num++==0?"":",")<<mn[i][j];
        bottom -=1;

        if(top>bottom) break;
        for(i=bottom,j=left;i>=top;i--) cout<<(num++==0?"":",")<<mn[i][j];
        left +=1;
    }
    cout<<endl;
}

int main() {
    int m, n;
    
    while(cin >> m >> n && m!=-1 && n!=-1){
        vector<vector<int>> mn(m,vector<int>(n,0));

        for(int i=0;i<m;i++){
            for (int j=0; j<n; j++) {
                int value;
                cin >> mn[i][j];
            }
        }
        
        roundout(m,n,mn);
    }
    
    
    
}
// 64 位输出请用 printf("%lld")

拆分问题,每个while循环负责打印一圈,一圈则分别是上,右,下,左边,每遍历一条边,更新遍历边界,任何一条边遍历前要检查边界合法性,这是退出条件;最后注意处理一下打印的逗号分隔