fork(1) download
#include <iostream>
#include <algorithm>

using namespace std;

int main() {

	int n,m;
	cin >> n >> m;
	int grid[n][m];
	
	for(int i=0; i<n; i++)
		for(int j=0; j<m; j++)
			cin >> grid[i][j];

	if(n > m){
		
		for(int i=0; i<m; i++){
			
			int mini = 1000;
			for(int j = 0; j <n; j++)
				mini = min(mini,grid[j][i]);
			
			if(mini){
				for(int j = 0; j <n; j++)
					grid[j][i]-=mini;
				
				cout << "mini     " << mini << " -  - - - - -- - -" << endl;
				while(mini--)
					cout << "col " << i << endl;
			}
		}
		
		
		for(int i=0; i <n; i++){
			
			int mini = 1000;
			for(int j=0; j<m; j++)
				mini = min(mini,grid[i][j]);
			if(mini){
				for(int j=0; j <m; j++)
					grid[i][j];
					
		cout << "mini     " << mini << " -  - - - - -- - -" << endl;				
				while(mini--)
					cout << "row " << i << endl;
			}
		}
		
	
		
	}
	
	
	
	else{
		
		for(int i=0; i <n; i++){
			
			int mini = 1000;
			for(int j=0; j<m; j++)
				mini = min(mini,grid[i][j]);
			if(mini){
				for(int j=0; j <m; j++)
					grid[i][j];
			
				cout << "mini     " << mini << " -  - - - - -- - -" << endl;
				
				while(mini--)
					cout << "row " << i << endl;
			}
		}
		
			for(int i=0; i<m; i++){
			
			int mini = 1000;
			for(int j = 0; j <n; j++)
				mini = min(mini,grid[j][i]);
			
			if(mini){
				for(int j = 0; j <n; j++)
					grid[j][i]-=mini;
				
					cout << "mini     " << mini << " -  - - - - -- - -" << endl;
					
				while(mini--)
					cout << "col " << i << endl;
			}
		}
		
		
	}

	return 0;
}
Success #stdin #stdout 0s 15240KB
stdin
3 5
2 2 2 3 2
0 0 0 1 0
1 1 1 2 1
stdout
mini     2 -  - - - - -- - -
row 0
row 0
mini     1 -  - - - - -- - -
row 2
mini     1 -  - - - - -- - -
col 3