#include #include #include using namespace std; int main() { int q; cin >> q; string sign = "(|)"; int id[2 * q + 1] = {0}; vector mi, sum; mi.push_back(0); sum.push_back(0); int len = 0, dep = q; string s; int bq = q; while (q--) { int t; cin >> t; if (t == 1) { char c; cin >> c; if (c == '(') { ++dep; int tmp = sum.back() + 1; if (id[dep] != 0) tmp = -1; ++id[dep]; sum.push_back(tmp); } else if (c == '|') { int tmp = sum.back(); if (id[dep] != 1) tmp = -1; ++id[dep]; sum.push_back(tmp); } else if (c == ')') { int tmp = sum.back() - 1; if (id[dep] != 2) tmp = -1; id[dep] -= 2; --dep; sum.push_back(tmp); } s.push_back(c); ++len; mi.push_back(min(mi.back(), sum.back())); } else if (t == 2) { char c = s.back(); if (c == '(') { --id[dep]; --dep; } else if (c == '|') { --id[dep]; } else if (c == ')') { ++dep; id[dep] += 2; } --len; s.pop_back(); sum.pop_back(); mi.pop_back(); } cout << (len % 3 == 0 && dep == bq && sum.back() == 0 && mi.back() == 0 ? "Yes" : "No") << endl; } }