import sys input = sys.stdin.readline q = int(input()) # stack node: (state, next_node) # state 0 = saw '(' but not '|' # state 1 = saw '(' and then '|', waiting for ')' state = [-1] nxt = [0] def make_node(v, to): state.append(v) nxt.append(to) return len(state) - 1 top_at_len = [0] * (q + 1) ok_at_len = [True] * (q + 1) cur_len = 0 out = [] for _ in range(q): line = input().split() if line[0] == "1": ch = line[1] prev_len = cur_len cur_len += 1 if not ok_at_len[prev_len]: ok_at_len[cur_len] = False top_at_len[cur_len] = 0 else: top = top_at_len[prev_len] if ch == "(": ok_at_len[cur_len] = True top_at_len[cur_len] = make_node(0, top) elif ch == "|": if top != 0 and state[top] == 0: ok_at_len[cur_len] = True top_at_len[cur_len] = make_node(1, nxt[top]) else: ok_at_len[cur_len] = False top_at_len[cur_len] = 0 else: # ')' if top != 0 and state[top] == 1: ok_at_len[cur_len] = True top_at_len[cur_len] = nxt[top] else: ok_at_len[cur_len] = False top_at_len[cur_len] = 0 else: cur_len -= 1 if ok_at_len[cur_len] and top_at_len[cur_len] == 0: out.append("Yes") else: out.append("No") print("\n".join(out))