func_code_string: #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;   }   