T1-徐老师的赏月活动券
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
中秋节到了,徐老师的住的小区举办赏月活动,徐老师收到一叠共 (N) 张活动券。每张券上都印着一个活动编号(同一活动可能派发了多张券)。 徐老师只想带不同活动去“打卡”,于是打算把多余的券收起来,留下的券对应的活动编号必须两两不同(每个活动最多留 1 张)。
不过收券有规矩:每次必须正好收起 (K) 张券,可以做任意多次(也可以一次不做)。
请你告诉徐老师:经过若干次操作后,最多能留下多少张互不重复的活动券? 若能留下的“最多数量”的方案不止一种,请输出字典序最小的一组编号(将编号从小到大排列,且尽量保留更小的编号)。
若根本无法做到,请输出 -1。
输入格式
共两行:
- 第一行两个整数 (N, K) —— 券的总数与每次必须收起的张数;
- 第二行 (N) 个正整数 (A_1,A_2,\dots,A_N) —— 各张活动券的活动编号。
输出格式
- 若无解,输出一行:
-1。 - 否则输出两行: 第一行输出一个整数 (m):能留下的不同活动张数的最大值; 第二行输出按从小到大排列的 (m) 个编号(若 (m=0),该行留空)。
字典序最小:在所有满足条件且大小为 (m) 的编号集合里,选择按升序比较时最“小”的那一个;等价于优先选择更小的编号。
输入样例 1
5 3
4 4 5 1 1
输出样例 1
2
1 4
输入样例 2
10 4
1 1 1 2 2 2 2 3 3 3
输出样例 2
2
1 2
数据范围
对于 的数据,, , 。