#include <bits/stdc++.h>
using namespace std;
long long i, j, k, l, n, m, res = ((long long)1e18 + 9ll), cnt0, cnt1;
long long num1[1009][1009], num0[1009][1009], cnt[1009], kilk[1009];
long long a[1009][1009];
vector<long long> ress;
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> m;
  memset(num1, -1, sizeof(num1));
  memset(num0, -1, sizeof(num0));
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      cin >> a[i][j];
      for (int b = 0; b < 10; b++) {
        if (a[i][j] & (1 << b)) {
          cnt1++;
          num1[i][b] = j;
        } else {
          cnt0++;
          num0[i][b] = j;
        }
      }
    }
    for (int b = 0; b < 10; b++)
      if (num0[i][b] == -1) {
        cnt[b]++;
        kilk[b]++;
      } else {
        if (num1[i][b] == -1) kilk[b]++;
      }
  }
  for (j = 0; j < 10; j++) {
    if (cnt[j] % 2 == 1) {
      for (i = 1; i <= n; i++) {
        if (num0[i][j] == -1) ress.push_back(num1[i][j]);
        if (num1[i][j] == -1) ress.push_back(num0[i][j]);
        if (num1[i][j] != -1 && num0[i][j] != -1) ress.push_back(num0[i][j]);
      }
      break;
    } else {
      if (kilk[j] == n) continue;
      long long cnt = 0;
      for (i = 1; i <= n; i++) {
        if (num0[i][j] == -1) ress.push_back(num1[i][j]);
        if (num1[i][j] == -1) ress.push_back(num0[i][j]);
        if (cnt == 1 && num1[i][j] != -1 && num0[i][j] != -1)
          ress.push_back(num0[i][j]);
        if (cnt == 0 && num1[i][j] != -1 && num0[i][j] != -1)
          ress.push_back(num1[i][j]), cnt++;
      }
      break;
    }
  }
  if (ress.size() == 0) return cout << "NIE" << '\n', 0;
  cout << "TAK" << '\n';
  for (auto to : ress) cout << to << ' ';
  cout << '\n';
  exit(0);
}
