#include using namespace std; using pii = pair; using ll = long long; const int N = 2000010, MOD = 998244353, INF = 0x3f3f3f3f; int n, m, w[N]; char s[10]; int a[N], b[N]; void solve() { scanf("%d", &n); vector stk; vector g; for (int i = 1; i < n + 1; i++) { int op; scanf("%d%s", &op, s); if (op == 1) { stk.push_back({s[0], i}); g.push_back(i); if (stk.back().first == ')' && stk[stk.size() - 2].first == '|' && stk[stk.size() - 3].first == '(') { a[stk.back().second] = stk[stk.size() - 3].second, b[stk.back().second] = stk[stk.size() - 2].second; stk.pop_back(), stk.pop_back(), stk.pop_back(); } } else { assert(g.size()); if (!stk.size() || g.back() != stk.back().second) { stk.push_back({'(', a[g.back()]}), stk.push_back({'|', b[g.back()]}); g.pop_back(); } else stk.pop_back(), g.pop_back(); } puts(stk.size() ? "NO" : "YES"); } } int main() { int T = 1; // cin >> T; while (T--) solve(); return 0; }