#include #include #include using namespace std; vector dict; string tiles; int main (){ int n; while (cin >> n){ if (n == 0) break; dict.clear(); dict.resize(n); for (int i = 0; i < n; i++) cin >> dict[i]; cin >> tiles; int ct = 0; for (int i = 0; i < n; i++){ vector used (tiles.size(), 0); bool bad = false; for (int j = 0; !bad && j < dict[i].length(); j++){ bool found = false; for (int k = 0; !found && k < tiles.size(); k++) if (!used[k]){ if (tiles[k] == dict[i][j]){ used[k] = true; found = true; } } for (int k = 0; !found && k < tiles.size(); k++) if (!used[k]){ if (tiles[k] == '_'){ used[k] = true; found = true; } } if (!found) bad = true; } if (!bad) ct++; } cout << ct << endl; } }