#nullable enable #region var _input = Array.Empty(); var _iter = 0; string String() { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' '), 0); return _input[_iter++]; } T I() where T : IParsable => T.Parse(String(), null); #endregion string Join(IEnumerable values, bool ws = false) => string.Join(ws ? " " : Environment.NewLine, values); (int, int)[]? Solve(int q, int k) { if (q > 5) { if (k < 5) return null; var lns = new List<(int, int)>(){ (1, 2), (1, 2), (3, 4), (4, 5), (4, 5) }; q -= 5; while (q > 0) { q--; lns.Add((6, 7)); } return lns.ToArray(); } var bns = new[]{ (1, 2), (1, 2), (3, 4), (3, 4), (5, 6) }; var cns = new[]{ 2, 2, 3, 3, 4, 4 }; if (cns[q] > k) return null; return bns[..q]; } var ans = Solve(I(), I()); if (ans == null) Console.WriteLine("No"); else { Console.WriteLine("Yes"); var jns = ans.Select(e => e.Item1 + " " + e.Item2); Console.WriteLine(Join(jns)); }