using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Runtime.Intrinsics.Arm; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var q = NN; var ans = new List(q); var st = new Stack(); var log = new Stack(); for (var i = 0; i < q; ++i) { var s = ReadLine(); if (s == "2") { var pl = log.Pop(); if (pl == '*') { st.Push('('); st.Push('|'); } else st.Pop(); } else { var c = s.Split()[1][0]; if (c == ')') { if (st.Count > 1) { var p1 = st.Pop(); var p2 = st.Pop(); if (p1 == '|' && p2 == '(') log.Push('*'); else { st.Push(p2); st.Push(p1); st.Push(c); log.Push(c); } } else { st.Push(c); log.Push(c); } } else { st.Push(c); log.Push(c); } } ans.Add(st.Count == 0); } WriteLine(string.Join("\n", ans.Select(f => f ? "Yes" : "No"))); } }