#include <bits/stdc++.h>
using namespace std;
int f[20][20], K, ans;
string s;
void solve(int x, string s) {
  for (int i = 0; i < K; ++i)
    if (!(x >> i & 1)) {
      int flag = 0;
      string t;
      int y = x | (1 << i);
      for (char j : s)
        if (i != j) {
          if (!t.empty() && !f[t.back()][j]) {
            flag = 1;
            break;
          }
          t += j;
        }
      if (flag) continue;
      ans = min(ans, (int)t.length());
      solve(y, t);
      break;
    }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> ans >> K >> s;
  for (auto& i : s) i -= 'a';
  for (int i = 0; i < K; ++i)
    for (int j = 0; j < K; ++j) cin >> f[i][j];
  solve(0, s);
  cout << ans << '\n';
  return 0;
}
