#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<vector<int>> mt(n, vector<int>(m));
  vector<int> rmin(n);
  vector<int> rmax(n);
  vector<int> cmin(m);
  vector<int> cmax(m);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cin >> mt[i][j];
    }
  }
  vector<vector<int>> mf(n, vector<int>(m, 0));
  vector<string> ans;
  int d = 0;
  for (int i = 0; i < n; i++) {
    int mi = 501, ma = -1;
    for (int j = 0; j < m; j++) {
      if (mt[i][j] < mi) {
        mi = min(mt[i][j], mi);
        ma = max(mt[i][j], mi);
      }
    }
    rmin[i] = mi;
    rmax[i] = ma;
  }
  for (int j = 0; j < m; j++) {
    int mi = 501, ma = -1;
    for (int i = 0; i < n; i++) {
      if (mt[i][j] < mi) {
        mi = min(mt[i][j], mi);
        ma = max(mt[i][j], mi);
      }
    }
    cmin[j] = mi;
    cmax[j] = ma;
  }
  if (m >= n) {
    for (int i = 0; i < n; i++) {
      int t = rmin[i];
      if (t > 0) {
        for (int xx = 0; xx < t; xx++) ans.push_back("row " + to_string(i + 1));
        for (int k = 0; k < m; k++) {
          mf[i][k] += t;
        }
      }
    }
    for (int j = 0; j < m; j++) {
      int t = cmin[j];
      if (t > 0) {
        int mit = 501;
        for (int k = 0; k < n; k++) {
          mit = min(mit, mf[k][j]);
        }
        if ((t > mit)) {
          for (int xx = 0; xx < t - mit; xx++)
            ans.push_back("col " + to_string(j + 1));
          for (int k = 0; k < n; k++) {
            mf[k][j] += t - mit;
          }
        }
      }
    }
    if (mf != mt) {
      cout << -1 << "\n";
      ;
      return 0;
    }
  } else {
    for (int j = 0; j < m; j++) {
      int t = cmin[j];
      if (t > 0) {
        for (int xx = 0; xx < t; xx++) ans.push_back("col " + to_string(j + 1));
        for (int k = 0; k < n; k++) {
          mf[k][j] += t;
        }
      }
    }
    for (int i = 0; i < n; i++) {
      int t = rmin[i];
      if (t > 0) {
        int mit = 501;
        for (int k = 0; k < m; k++) {
          mit = min(mit, mf[i][k]);
        }
        if ((t > mit)) {
          for (int xx = 0; xx < t - mit; xx++)
            ans.push_back("row " + to_string(i + 1));
          for (int k = 0; k < m; k++) {
            mf[i][k] += t - mit;
          }
        }
      }
    }
    if (mf != mt) {
      cout << -1 << "\n";
      ;
      return 0;
    }
  }
  cout << ans.size() << "\n";
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i] << "\n";
  }
}
