#include <bits/stdc++.h>
using namespace std;
const int block_size = 320;
const long long mod = 1e9 + 7;
const long long inf = 1e9 + 7;
const long double eps = 1e-9;
const double PI = atan(1) * 4;
template <typename T, typename S>
inline bool upmin(T& a, const S& b) {
  return a > b ? a = b, 1 : 0;
}
template <typename T, typename S>
inline bool upmax(T& a, const S& b) {
  return a < b ? a = b, 1 : 0;
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
namespace SOLVE {
void main() {
  int n, m, temp;
  int first, different = -1, di, dj;
  int x = 0;
  cin >> n >> m;
  for (long long i = 1; i < n + 1; i++) {
    for (long long j = 1; j < m + 1; j++) {
      cin >> temp;
      if (j == 1) {
        first = temp;
      } else {
        if (different == -1 && temp != first) {
          different = temp;
          di = i;
          dj = j;
        }
      }
    }
    if (x == 0) {
      x = first;
    } else {
      x ^= first;
    }
  }
  if (x != 0) {
    cout << "TAK" << endl;
    for (long long i = 1; i < n + 1; i++) {
      cout << "1 ";
    }
    return;
  }
  if (different == -1) {
    cout << "NIE";
    return;
  }
  cout << "TAK" << endl;
  for (long long i = 1; i < n + 1; i++) {
    if (i != di) {
      cout << "1 ";
    } else {
      cout << dj << " ";
    }
  }
  return;
}
}  // namespace SOLVE
signed main() {
  int t;
  t = 1;
  while (t--) {
    SOLVE::main();
  }
  return 0;
}
