#include <bits/stdc++.h>
using namespace std;
typedef priority_queue<pair<long long, long long>,
                       vector<pair<long long, long long> >,
                       greater<pair<long long, long long> > >
    minheap;
void input(long long *arr, long long n) {
  for (int i = 0; i < n; ++i) cin >> arr[i];
}
void swap(long long &x, long long &y) { x = x ^ y ^ (y = x ^ y ^ y); }
long long gcd(long long a, long long b) {
  if (!a) return b;
  return gcd(b % a, a);
}
long long power(long long x, long long k) {
  long long ans = 1;
  while (k) {
    if (k % 2) ans = (ans * x) % 1000000007;
    k /= 2;
    x = (x * x) % 1000000007;
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long t = 0, n, m, k, l, i, j = -1, ans = 0, cnt = 0, tmp = 0, sum = 0,
            diff = 0, size, mx = -1, mn = INT_MAX;
  long long q, x, y, mh = 0, mw = 0, sh = 0, sw = 0;
  pair<long long, long long> nd;
  char ch;
  long double alpha, theta;
  vector<long long> a, b;
  map<char, long long> mp, mpx;
  string s, in, tm;
  cin >> n;
  while (n--) {
    cin >> ch >> x >> y;
    if (x > y) swap(x, y);
    if (ch == '+') {
      mh = max(mh, x);
      mw = max(mw, y);
    } else {
      if (x >= mh && y >= mw)
        cout << "YES", cout << '\n';
      else
        cout << "NO", cout << '\n';
    }
  }
  return 0;
}
