#include <bits/stdc++.h>
using namespace std;
char a[55];
char s[1005][55];
bool can[1005];
int have[30];
int tmp[30];
int pos[55], tot;
int len, n, ans, rest;
set<char> se;
int main() {
  scanf("%d", &len);
  scanf("%s", a + 1);
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%s", s[i] + 1);
  for (int i = 1; i <= len; i++)
    if (a[i] != '*') se.insert(a[i]);
  for (int i = 1; i <= len; i++)
    if (a[i] == '*') pos[++tot] = i;
  for (int i = 1; i <= n; i++) {
    can[i] = 1;
    for (int j = 1; j <= tot; j++)
      if (se.find(s[i][pos[j]]) != se.end()) {
        can[i] = 0;
        break;
      }
    for (int j = 1; j <= len; j++)
      if (a[j] != '*' && a[j] != s[i][j]) {
        can[i] = 0;
        break;
      }
    if (can[i]) rest++;
  }
  for (int i = 1; i <= 26; i++)
    if (se.find('a' + i - 1) == se.end()) {
      for (int j = 1; j <= n; j++)
        if (can[j])
          for (int k = 1; k <= tot; k++)
            if (s[j][pos[k]] == 'a' + i - 1) {
              have[i]++;
              break;
            }
    }
  for (int i = 1; i <= 26; i++)
    if (se.find('a' + i - 1) == se.end() && have[i] == rest) ans++;
  printf("%d", ans);
  return 0;
}
