{"problem":{"name":"F. Divisibility","description":{"content":"Imp is really pleased that you helped him. But it you solve the last problem, his gladness would raise even more. <center>![image](https://espresso.codeforces.com/07971ee6e5e75115459520faadc129b3f0e8","description_type":"Markdown"},"platform":"Codeforces","limit":{"time_limit":1000,"memory_limit":262144},"difficulty":"None","is_remote":true,"is_sync":true,"sync_url":null,"sign":"CF922F"},"statements":[{"statement_type":"Markdown","content":"Imp is really pleased that you helped him. But it you solve the last problem, his gladness would raise even more.\n\n<center>![image](https://espresso.codeforces.com/07971ee6e5e75115459520faadc129b3f0e828cc.png)</center>Let's define for some set of integers as the number of pairs _a_, _b_ in , such that:\n\n*   _a_ is **strictly less** than _b_;\n*   _a_ **divides** _b_ without a remainder.\n\nYou are to find such a set , which is a subset of {1, 2, ..., _n_} (the set that contains all positive integers not greater than _n_), that .\n\n## Input\n\nThe only line contains two integers _n_ and _k_ .\n\n## Output\n\nIf there is no answer, print \"_No_\".\n\nOtherwise, in the first line print \"_Yes_\", in the second — an integer _m_ that denotes the size of the set you have found, in the second line print _m_ integers — the elements of the set , in any order.\n\nIf there are multiple answers, print any of them.\n\n[samples]\n\n## Note\n\nIn the second sample, the valid pairs in the output set are (1, 2), (1, 4), (1, 5), (1, 6), (2, 4), (2, 6). Thus, .\n\nIn the third example, the valid pairs in the output set are (2, 4), (4, 8), (2, 8). Thus, .","is_translate":false,"language":"English"},{"statement_type":"Markdown","content":"Imp 对你帮助他感到非常高兴。但如果你能解决最后一个问题，他的喜悦还会进一步提升。\n\n你需要找到一个集合，它是 #cf_span[{1, 2, ..., n}] 的子集（即包含所有不超过 #cf_span[n] 的正整数的集合），使得其交错和等于 #cf_span[k]。\n\n输入仅包含一行，包含两个整数 #cf_span[n] 和 #cf_span[k]。\n\n如果无解，请输出 \"_No_\"。\n\n否则，在第一行输出 \"_Yes_\"，第二行输出一个整数 #cf_span[m]，表示你找到的集合的大小；在第三行输出 #cf_span[m] 个整数——即该集合的元素，顺序任意。\n\n如果存在多个答案，输出任意一个即可。\n\n在第二个样例中，输出集合中的合法数对为 #cf_span[(1, 2)], #cf_span[(1, 4)], #cf_span[(1, 5)], #cf_span[(1, 6)], #cf_span[(2, 4)], #cf_span[(2, 6)]。因此，交错和为 #cf_span[k]。\n\n在第三个样例中，输出集合中的合法数对为 #cf_span[(2, 4)], #cf_span[(4, 8)], #cf_span[(2, 8)]。因此，交错和为 #cf_span[k]。\n\n## Input\n\n输入仅包含一行，包含两个整数 #cf_span[n] 和 #cf_span[k]。\n\n## Output\n\n如果无解，请输出 \"_No_\"。否则，在第一行输出 \"_Yes_\"，第二行输出一个整数 #cf_span[m]，表示你找到的集合的大小；在第三行输出 #cf_span[m] 个整数——即该集合的元素，顺序任意。如果存在多个答案，输出任意一个即可。\n\n[samples]\n\n## Note\n\n在第二个样例中，输出集合中的合法数对为 #cf_span[(1, 2)], #cf_span[(1, 4)], #cf_span[(1, 5)], #cf_span[(1, 6)], #cf_span[(2, 4)], #cf_span[(2, 6)]。因此，交错和为 #cf_span[k]。\n\n在第三个样例中，输出集合中的合法数对为 #cf_span[(2, 4)], #cf_span[(4, 8)], #cf_span[(2, 8)]。因此，交错和为 #cf_span[k]。","is_translate":true,"language":"Chinese"},{"statement_type":"Markdown","content":"**Definitions**  \nLet $ n, k \\in \\mathbb{Z}^+ $.  \nLet $ S \\subseteq \\{1, 2, \\dots, n\\} $ be a subset.  \nDefine $ P(S) = \\left| \\left\\{ (a,b) \\in S \\times S \\mid a < b \\text{ and } a \\mid b \\right\\} \\right| $.\n\n**Constraints**  \n$ 1 \\leq n \\leq 10^5 $, $ 0 \\leq k \\leq \\binom{n}{2} $\n\n**Objective**  \nFind a subset $ S \\subseteq \\{1, 2, \\dots, n\\} $ such that $ P(S) = k $.  \nIf no such $ S $ exists, output \"_No_\".  \nOtherwise, output \"_Yes_\", followed by $ |S| $ and the elements of $ S $.","is_translate":false,"language":"Formal"}],"meta":{"iden":"CF922F","tags":["constructive algorithms","dp","greedy","number theory"],"sample_group":[["3 3","No"],["6 6","Yes\n5\n1 2 4 5 6"],["8 3","Yes\n4\n2 4 5 8"]],"created_at":"2026-03-03 11:00:39"}}