using static System.Math; using System.Collections.Generic; using System.Linq; using System; public class Hello { static void Main() { string[] line = Console.ReadLine().Trim().Split(' '); var n = int.Parse(line[0]); var m = int.Parse(line[1]); var L = int.Parse(line[2]); line = Console.ReadLine().Trim().Split(' '); var a = Array.ConvertAll(line, int.Parse); getAns(n, m, L, a); } static void getAns(int n, int m, int L, int[] a) { var hs = new HashSet[n]; for (int i = 0; i < n; i++) hs[i] = new HashSet(); hs[0].Add(L); hs[0].Add((L + a[0]) / 2); for (int i = 1; i < n; i++) { foreach (var x in hs[i - 1]) { hs[i].Add(x); hs[i].Add((x + a[i]) / 2); if (hs[i].Contains(m)) { Console.WriteLine("Yes");return; } } } Console.WriteLine(hs[n - 1].Contains(m) ? "Yes" : "No"); } }