#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int n, m, ans1, ans2;
int a[N][N], rowsum[N], colsum[N];
int ansr[N], ansc[N];
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) cin >> a[i][j];
  }
  while (true) {
    int r = 0, c = 0;
    memset(rowsum, 0, sizeof rowsum);
    memset(colsum, 0, sizeof colsum);
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) rowsum[i] += a[i][j];
      if (rowsum[i] < 0) {
        r = i;
        break;
      }
    }
    for (int i = 1; i <= m; i++) {
      for (int j = 1; j <= n; j++) colsum[i] += a[j][i];
      if (colsum[i] < 0) {
        c = i;
        break;
      }
    }
    if (r == 0 && c == 0) break;
    if (r != 0) {
      for (int i = 1; i <= m; i++) a[r][i] = -a[r][i];
      ansr[r]++;
      continue;
    }
    if (c != 0) {
      for (int i = 1; i <= n; i++) a[i][c] = -a[i][c];
      ansc[c]++;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (ansr[i] % 2 == 1) ans1++;
  }
  cout << ans1 << " ";
  for (int i = 1; i <= n; i++) {
    if (ansr[i] % 2 == 1) {
      cout << i << " ";
    }
  }
  cout << "\n";
  for (int i = 1; i <= m; i++) {
    if (ansc[i] % 2 == 1) ans2++;
  }
  cout << ans2 << " ";
  for (int i = 1; i <= m; i++) {
    if (ansc[i] % 2 == 1) {
      cout << i << " ";
    }
  }
  cout << "\n";
}
