{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e\u003cspan class\u003d\"tex-font-style-bf\"\u003e简单版本和困难版本之间唯一的区别是对 $$$n$$$ 和 $$$k$$$ 的约束条件。\u003c/span\u003e\u003c/p\u003e\u003cp\u003e你正在使用智能手机在一个流行的社交网络上发消息。你的智能手机最多可以显示 $$$k$$$ 个最近的与朋友的对话。最初,屏幕是空的(即显示的对话数量等于 $$$0$$$)。\u003c/p\u003e\u003cp\u003e每次对话都是你和一些朋友之间的。每个朋友最多只有一次对话。因此,每次对话都是由你的朋友唯一确定的。\u003c/p\u003e\u003cp\u003e你(突然间!)有了看未来的能力。你知道在一天中你会收到 $$$n$$$ 条消息,第 $$$i$$$ 条消息将会从ID为 $$$id_i$$$($$$1 \\le id_i \\le 10^9$$$)的朋友那里收到。\u003c/p\u003e\u003cp\u003e如果你在智能手机上当前显示的对话中收到了来自 $$$id_i$$$ 的消息,那么什么也不会发生:屏幕上的对话不会改变,也不会改变它们的顺序,你会读取消息并继续等待新消息。\u003c/p\u003e\u003cp\u003e否则(即如果屏幕上没有与 $$$id_i$$$ 的对话):\u003c/p\u003e\u003cul\u003e \u003cli\u003e 首先,如果屏幕上显示的对话数量为 $$$k$$$,则最后一个对话(位置为 $$$k$$$)将从屏幕上移除。 \u003c/li\u003e\u003cli\u003e 现在屏幕上的对话数量保证少于 $$$k$$$,并且与朋友 $$$id_i$$$ 的对话没有显示在屏幕上。 \u003c/li\u003e\u003cli\u003e 与朋友 $$$id_i$$$ 的对话出现在屏幕上的第一个(最顶部)位置,而所有其他显示的对话都向下移动一个位置。 \u003c/li\u003e\u003c/ul\u003e\u003cp\u003e你的任务是找到所有 $$$n$$$ 条消息处理后显示在屏幕上的对话列表(按照它们显示在屏幕上的顺序)。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e输入的第一行包含两个整数 $$$n$$$ 和 $$$k$$$($$$1 \\le n, k \\le 2 \\cdot 10^5)$$$ — 消息数量和智能手机可以显示的对话数量)。\u003c/p\u003e\u003cp\u003e输入的第二行包含 $$$n$$$ 个整数 $$$id_1, id_2, \\dots, id_n$$$($$$1 \\le id_i \\le 10^9$$$),其中 $$$id_i$$$ 是发送给你第 $$$i$$$ 条消息的朋友的ID。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e在输出的第一行打印一个整数 $$$m$$$($$$1 \\le m \\le min(n, k)$$$) — 收到所有 $$$n$$$ 条消息后显示的对话数量。\u003c/p\u003e\u003cp\u003e在第二行打印 $$$m$$$ 个整数 $$$ids_1, ids_2, \\dots, ids_m$$$,其中 $$$ids_i$$$ 应该等于收到所有 $$$n$$$ 条消息后在位置 $$$i$$$ 上显示的对话对应的朋友的ID。\u003c/p\u003e"}},{"title":"示例 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e7 2\n1 2 3 2 1 3 2\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\n2 1 \n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"示例 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e10 4\n2 3 3 1 1 2 1 2 3 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\n1 3 2 \n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"注意","value":{"format":"HTML","content":"\u003cp\u003e在第一个示例中,对话列表将按以下方式更改(从第一条到最后一条消息的顺序):\u003c/p\u003e\u003cul\u003e \u003cli\u003e $$$[]$$$; \u003c/li\u003e\u003cli\u003e $$$[1]$$$; \u003c/li\u003e\u003cli\u003e $$$[2, 1]$$$; \u003c/li\u003e\u003cli\u003e $$$[3, 2]$$$; \u003c/li\u003e\u003cli\u003e $$$[3, 2]$$$; \u003c/li\u003e\u003cli\u003e $$$[1, 3]$$$; \u003c/li\u003e\u003cli\u003e $$$[1, 3]$$$; \u003c/li\u003e\u003cli\u003e $$$[2, 1]$$$。 \u003c/li\u003e\u003c/ul\u003e\u003cp\u003e在第二个示例中,对话列表将按以下方式更改:\u003c/p\u003e\u003cul\u003e \u003cli\u003e $$$[]$$$; \u003c/li\u003e\u003cli\u003e $$$[2]$$$; \u003c/li\u003e\u003cli\u003e $$$[3, 2]$$$; \u003c/li\u003e\u003cli\u003e $$$[3, 2]$$$; \u003c/li\u003e\u003cli\u003e $$$[1, 3, 2]$$$; \u003c/li\u003e\u003cli\u003e 然后列表在最后不会再发生变化。 \u003c/li\u003e\u003c/ul\u003e"}}]}