{"problem":{"name":"[NFLSPC #6] 来点不那么魔怔的题面","description":{"content":"给定一个 $1\\sim n$ 的排列 $p$ 和一个整数 $k$，要求找到 $p$ 的一个子序列 $\\{p_{i_1}, p_{i_2}, \\cdots, p_{i_m}\\}$（$1\\le i_1 < i_2 < \\cdots < i_m\\le n$）满足： - 恰好有 $k$ 个 $j$ 满足 $1\\le j\\le m$ 且 $p_{i_j}$ 是 $p_{i_1}, p_{i_2}, \\cd","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":1048576},"difficulty":{"LuoguStyle":"P3"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9928"},"statements":[{"statement_type":"Markdown","content":"给定一个 $1\\sim n$ 的排列 $p$ 和一个整数 $k$，要求找到 $p$ 的一个子序列 $\\{p_{i_1}, p_{i_2}, \\cdots, p_{i_m}\\}$（$1\\le i_1 < i_2 < \\cdots < i_m\\le n$）满足：\n\n- 恰好有 $k$ 个 $j$ 满足 $1\\le j\\le m$ 且 $p_{i_j}$ 是 $p_{i_1}, p_{i_2}, \\cdots, p_{i_m}$ 中从小往大数第 $j$ 个。\n\n如果有多解，输出任意一组解即可。如果不存在合法的子序列，输出 $-1$。\n\n## Input\n\n第一行两个整数 $n, k$。\n\n接下来一行 $n$ 个整数 $p_1, p_2, \\cdots, p_n$ 表示给定的排列。\n\n## Output\n\n如果无解，输出一行一个整数 $-1$。\n\n否则第一行输出一个整数 $m$ 表示子序列的长度。你需要保证 $1\\le m\\le n$。\n\n接下来一行输出 $m$ 个整数 $i_1, i_2, \\cdots, i_m$ 表示子序列的下标。你需要保证 $1\\le i_j\\le n$ 且 $i_j < i_{j+1}$（$1\\le j < m$）。\n\n[samples]\n\n## Note\n\n对于所有数据，$1\\le n\\le 10 ^ 5$，$1\\le k\\le n$，$p_1, p_2, \\cdots, p_n$ 为 $1\\sim n$ 的排列。\n\n- 子任务 1（$10$ 分）：$n\\leq 20$。\n- 子任务 2（$10$ 分）：$k = 2$。\n- 子任务 3（$30$ 分）：$k = 3$。\n- 子任务 4（$30$ 分）：$n\\leq 10 ^ 3$。\n- 子任务 5（$20$ 分）：无特殊限制。\n\nSource：NFLSPC #6 D by tzc_wk","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9928","tags":["Special Judge","O2优化"],"sample_group":[["4 1\n4 2 1 3\n","3\n2 3 4\n"]],"created_at":"2026-03-03 11:09:25"}}