#include using namespace std; unordered_map bit; void add(int64_t k, int v) { for (k++; k < 1e12; k += k & -k) bit[k] += v; } int sum(int64_t k) { int res = 0; for (k++; k > 0; k &= k - 1) res += bit[k]; return res; } int main() { int n, T; cin >> n; vector L(n); for (int i = 0; i < n; i++) scanf("%d", &L[i]); cin >> T; unordered_map> score; bit.reserve(40 * T); score.reserve(T); vector cnt(n); for (int ii = T - 1; ii >= 0; ii--) { string name, prob; cin >> name >> prob; int s, t; tie(s, t) = score[name]; if (prob[0] == '?') { printf("%d\n", score.size() - sum(s * T + t - 1)); } else { int id = prob[0] - 'A'; cnt[id]++; int ss = s + 50 * L[id] + 500 * L[id] / (8 + 2 * cnt[id]); if (s > 0) add(1LL * s * T + t, -1); add(ss * T + ii, 1); score[name] = { ss, ii }; } } }