#include #include #include using namespace std; void f(const vector &a, const int k) { const int n = a.size(); stack v; stack l; for (int i = 0; i < n; i++) { if (!v.empty() && v.top() != a[i] && l.top() >= k) { v.pop(); l.pop(); } if (!v.empty() && v.top() == a[i]) { l.top()++; } else { v.push(a[i]); l.push(1); } } if (!l.empty() && l.top() >= k) { v.pop(); l.pop(); } stack s; while (!v.empty()) { while (l.top()--) { s.push(v.top()); } v.pop(); l.pop(); } while (!s.empty()) { cout << s.top() << " "; s.pop(); } cout << endl; } int main(void) { int k, n; cin >> k >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } f(a, k); return 0; }