#nullable enable var z = Console.ReadLine()!.Split(' ').Select(int.Parse).ToArray(); var (n, k) = (z[0], z[1]); var ans = Enumerable.Range(0, n).ToArray(); var s = 1; while (s < n) { if ((s & k) == 0) for (var i = 0; i < n; i++) { if ((i & s) > 0) continue; var j = i ^ s; if (j >= n) break; (ans[i], ans[j]) = (ans[j], ans[i]); } s <<= 1; } var y = 0; for (var i = 0; i < n; i++) y |= ans[i] & i; if (y != k) { Console.WriteLine("No"); return; } Console.WriteLine("Yes"); Console.WriteLine(string.Join(' ', Enumerable.Range(0, n))); Console.WriteLine(string.Join(' ', ans));