import sys def main(): data = sys.stdin.buffer.read().split() q = int(data[0]) prev = [0] * (q + 5) kind = [0] * (q + 5) head = [0] * (q + 2) node = 0 length = 0 p = 1 out = [] LPAR = ord('(') BAR = ord('|') RPAR = ord(')') for _ in range(q): t = data[p] p += 1 if t == b'1': c = data[p][0] p += 1 top = head[length] length += 1 erased = False if c == RPAR and top: one = prev[top] if kind[top] == BAR and one and kind[one] == LPAR: head[length] = prev[one] erased = True if not erased: node += 1 kind[node] = c prev[node] = top head[length] = node else: length -= 1 out.append("Yes" if head[length] == 0 else "No") sys.stdout.write('\n'.join(out)) if __name__ == "__main__": main()