#nullable enable #region var _input = Array.Empty(); var _iter = 0; string String() { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Trim().Split(' '), 0); return _input[_iter++]; } T I() where T : IParsable => T.Parse(String(), null); #endregion T[] Range(int n, Func F) => Enumerable.Range(0, n).Select(_ => F()).ToArray(); bool Solve() { var n = I(); var byMax = 0; var bxMin = int.MaxValue; var queries = Range(n, () => (String(), String())); foreach (var (x, y) in queries) { if (x == "a") { if (y.Contains('a')) return true; else byMax = Math.Max(byMax, y.Length); } if (!x.Contains('a')) bxMin = Math.Min(bxMin, x.Length); } return bxMin <= byMax; } string Run() => Solve() ? "Yes" : "No"; string Join(IEnumerable values, bool ws = false) => string.Join(ws ? " " : Environment.NewLine, values); Console.WriteLine(Join(Range(I(), Run)));