#include <bits/stdc++.h>
using namespace std;
char adj[101][101];
int a[101];
int b[101];
bool invite[101];
int calc(int n) {
  for (int i = 0; i < (int)(n); i++) b[i] = 0;
  for (int i = 0; i < (int)(n); i++) {
    if (invite[i]) {
      for (int j = 0; j < (int)(n); j++) b[j] += adj[i][j];
    }
  }
  for (int i = 0; i < (int)(n); i++)
    if (a[i] == b[i]) return true;
  return false;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < (int)(n); i++) scanf("%s", adj[i]);
  for (int i = 0; i < (int)(n); i++)
    for (int j = 0; j < (int)(n); j++) adj[i][j] -= '0';
  for (int i = 0; i < (int)(n); i++) scanf("%d", &a[i]);
  for (int i = 0; i < (int)(n); i++) {
    invite[i] = true;
  }
  while (calc(n)) {
    for (int j = 0; j < (int)(n); j++)
      if (a[j] == b[j]) {
        invite[j] = false;
        break;
      }
  }
  vector<int> res;
  for (int i = 0; i < (int)(n); i++)
    if (invite[i]) res.push_back(i);
  printf("%u\n", res.size());
  for (int i = 0; i < (int)(res.size()); i++) printf("%d ", res[i] + 1);
  puts("");
  return 0;
}
