#include <iostream>
using namespace std;
 
int main () {
	
	int nizpoz[1000000], nizneg[1000000], nula = 0, ispis[1000000], N, K, P;
	
	cin >> N >> K;
	
	for (int i = 0; i < N; i++) {
		nizpoz[i] = 0;
		nizneg[i] = 0;
	}
	
	int br = 0;
	
	for (int i = 0; i < N; i++) {
		
		cin >> P;
		if (P > 0) {
			
			nizpoz[P-1]++;
			if (nizpoz[P-1] == K) {
				
				nizpoz[P-1] = 0;
				ispis[br] = P;
				br++;
				
			}
		}
		
		else if (P < 0) {
			
			nizneg[(-1*P)-1]++;
			if (nizneg[(-1*P)-1] == K) {
				
				nizneg[(-1*P)-1] = 0;
				ispis[br] = P;
				br++;
				
			}
			
		}
		
		else {
			
			nula++;
			if (nula == K) {
			
			ispis[br] = 0;
			br++;
			nula = 0;	
			
			}
			
		}
		
	}
	
	cout << br << endl;
	
	for (int i = 0; i < br; i++) {
		
		cout << ispis[i] << " ";
		
	}
	
	return 0;
}