#include <bits/stdc++.h>
using namespace std;
template <class T>
void pv(vector<T> &vec) {
  for (int i = 0; i < (int)(vec).size(); i++)
    cout << vec[i] << (i == (int)(vec).size() - 1 ? '\n' : ' ');
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  unordered_set<char> s, ts;
  for (char i = 'a'; i <= 'z'; i++) s.insert(i);
  char action;
  string w;
  int n, ans = 0;
  cin >> n;
  for (int q = 0; q < n; q++) {
    cin >> action >> w;
    if (action == '?') {
      if (q != n - 1 && (int)(s).size() == 1) ans++;
      s.erase(w[0]);
    } else if (action == '.') {
      for (int i = 0; i < (int)(w).size(); i++) s.erase(w[i]);
    } else {
      if ((int)(s).size() == 1) ans++;
      (ts).clear();
      for (int i = 0; i < (int)(w).size(); i++) ts.insert(w[i]);
      for (char i = 'a'; i <= 'z'; i++) {
        if (s.find(i) != s.end() && ts.find(i) == s.end()) s.erase(i);
      }
    }
  }
  cout << ans << '\n';
  return 0;
}
