#include <bits/stdc++.h>
using namespace std;
const int SIZE = 101;
string A[SIZE];
int I[SIZE], S[SIZE], N;
vector<int> F;
int comprueba() {
  for (int i = 1; i <= N; i++)
    if (I[i] == S[i]) return i;
  return 0;
}
void bfs() {
  queue<int> Q;
  Q.push(comprueba());
  while (!Q.empty()) {
    int e = Q.front();
    Q.pop();
    if (e == 0) break;
    F.push_back(e);
    for (int i = 0; i < N; i++)
      if (A[e][i] == '1') S[i + 1]++;
    Q.push(comprueba());
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> N;
  for (int i = 1; i <= N; i++) cin >> A[i];
  for (int i = 1; i <= N; i++) cin >> I[i];
  bfs();
  sort(F.begin(), F.end());
  cout << F.size() << '\n';
  if (F.size()) cout << F[0];
  for (int i = 1; i < F.size(); i++) cout << ' ' << F[i];
  return 0;
}
