#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> q; set> st; stack,pair,pair>> sta; int si=0; while(q--){ int t; cin >> t; if(t == 1){ char c; cin >> c; if(c == '('){ st.insert({si,c}); } else if(c == '|'){ st.insert({si,c}); } else{ if(st.size()>=2){ auto itl=prev(prev(st.end())); auto itc=prev(st.end()); if(itl->second == '(' && itc->second == '|'){ sta.push({*itl,*itc,{si,c}}); st.erase(prev(st.end())); st.erase(prev(st.end())); } else{ st.insert({si,')'}); } } else st.insert({si,')'}); } si++; } else{ si--; if(!sta.empty()){ auto [le,ce,ri]=sta.top(); if(ri.first == si){ sta.pop(); st.insert(le); st.insert(ce); } else{ auto it=prev(st.end()); st.erase(it); } } else{ auto it=prev(st.end()); st.erase(it); } } if(st.size() == 0){ cout << "Yes" << "\n"; } else{ cout << "No" << "\n"; } } return; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int T=1; // cin >> T; while(T--) solve(); }