#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> 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->first,itc->first,si}); st.erase(prev(st.end())); st.erase(prev(st.end())); } } } si++; } else{ si--; auto [le,ce,ri]=sta.top(); if(ri == si){ sta.pop(); st.insert({le,ce}); } else{ auto it=prev(st.end()); if(it->first == si){ 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(); }