#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
const long long int inf = 1e9 + 7;
const long long int mod = 998244353;
map<long long int, long long int>::iterator it;
long long int read() {
  long long int x;
  scanf("%lld", &x);
  return x;
}
string c2s(char c) {
  string re = "0";
  re[0] = c;
  return re;
}
long long int printv(vector<long long int> V) {
  cout << V.size() << ": ";
  for (long long int i = 0; i < V.size(); i++) cout << V[i] << " ";
  puts("");
}
long long int gcd(long long int x, long long int y) {
  while (x % y) {
    long long int t = x % y;
    x = y;
    y = t;
  }
  return y;
}
long long int readv(vector<long long int>& V) {
  for (long long int i = 0; i < ((long long int)V.size()); i++) V[i] = read();
}
bool isprime(long long int x) {
  for (long long int i = 2; i * i <= x; i++)
    if (x % i == 0) return false;
  return true;
}
void yn(bool x) {
  if (x)
    puts("YES");
  else
    puts("NO");
}
long long int fpow(long long int a, long long int n) {
  long long int re = 1;
  while (n) {
    if (n & 1) re = re * a % mod;
    a = a * a % mod;
    n /= 2;
  }
  return re;
}
const long long int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
const long long int dir2[8][2] = {{1, 1},  {1, 0},  {1, -1}, {0, 1},
                                  {0, -1}, {-1, 1}, {-1, 0}, {-1, -1}};
set<long long int> S[100005];
set<long long int> A, B, C, D;
long long int place[100005];
int main() {
  long long int n = read();
  for (long long int i = 0; i < 100000; i++) S[0].insert(i + 1);
  for (long long int i = 0; i < n; i++) {
    long long int x = read();
    long long int pre = place[x];
    S[pre].erase(x);
    S[pre + 1].insert(x);
    if (pre + 1 == 2) A.insert(x);
    if (pre + 1 == 4) B.insert(x);
    if (pre + 1 == 6) C.insert(x);
    if (pre + 1 == 8) D.insert(x);
    place[x] = pre + 1;
  }
  long long int op = read();
  for (long long int i = 0; i < op; i++) {
    char o;
    long long int x;
    cin >> o >> x;
    long long int pre = place[x];
    S[pre].erase(x);
    if (o == '+') {
      S[pre + 1].insert(x);
      if (pre + 1 == 2) A.insert(x);
      if (pre + 1 == 4) B.insert(x);
      if (pre + 1 == 6) C.insert(x);
      if (pre + 1 == 8) D.insert(x);
      place[x] = pre + 1;
    } else {
      S[pre - 1].insert(x);
      if (pre == 2) A.erase(x);
      if (pre == 4) B.erase(x);
      if (pre == 6) C.erase(x);
      if (pre == 8) D.erase(x);
      place[x] = pre - 1;
    }
    if (A.size() >= 3 && B.size() >= 1)
      puts("YES");
    else if (B.size() >= 2)
      puts("YES");
    else if (C.size() >= 1 && A.size() >= 2)
      puts("YES");
    else if (D.size())
      puts("YES");
    else
      puts("NO");
  }
}
