#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) { var bns = new[]{ (1, 2), (1, 2), (3, 4), (4, 5), (4, 5) }; var cns = new[]{ 2, 2, 3, 3, 4, 5 }; if (q <= 5) { if (cns[q] > k) return null; return bns[..q]; } if (k < 5) return null; var lns = bns.ToList(); q -= 5; while (q > 0) { q--; lns.Add((4, 5)); } return lns.ToArray(); } 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)); }