#include <stdio.h>
long long a[1000000],b[1000000],c[1000000];
long long duplikati(long long arr[], long long n,long long *m) 
{ 
     
    if (n==1) 
        return n; 
  
    long long temp[n]; 
  
    
    int j = 0; 
    for (int i=0; i<n-1; i++) 
  
        
        if (arr[i] != arr[i+1]) 
            temp[j++] = arr[i]; 
  
    
    temp[j++] = arr[n-1]; 
  
   
    for (int i=0; i<j; i++) 
        arr[i] = temp[i]; 
    (*m)=j-1;
    return j; 
    
} 
int main(){
	long long j=1,i=0,brd=0,s=0,n,k,v=1,q=0,w=0,m;
	scanf("%lld%lld",&n,&k);
	for(int i=0;i<n;i++)scanf("%lld",&a[i]);
	while(i<n-1){
		if(a[i]==a[j]){
			brd++;
			j++;
		}
		else j++;
		if(brd==k-1){
			b[s]=a[i];
			s++;
			v++;
		}
		if((j+i)>=n-1){
			i++;
			j=i+1;
			brd=0;
		}
		}
	if(v>1){
	duplikati(b,v,&m);
    printf("%llu\n",m);
    for(s=0;s<m;s++)printf("%lld ",b[s]);
    }	
	else printf("0");
	return 0;
	}