import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.parseInt(st.nextToken());
int d=Integer.parseInt(st.nextToken());
int k=Integer.parseInt(st.nextToken());
int c=Integer.parseInt(st.nextToken());
int[] sushi=new int[n];
for(int i=0;i<n;i++)sushi[i]=Integer.parseInt(br.readLine());
int[] dat=new int[d+1];
int max=0;
for(int i=0;i<k;i++){
if(dat[sushi[i]]==0)max++;
dat[sushi[i]]++;
}
int cnt=max;
for(int i=1;i<=n;i++){
dat[sushi[i-1]]--;
if(dat[sushi[i-1]]==0)cnt--;
if(dat[sushi[(i+k-1)%n]]==0)cnt++;
dat[sushi[(i+k-1)%n]]++;
if(dat[c]==0)max=Math.max(max,cnt+1);
else max=Math.max(max,cnt);
}
System.out.println(max);
}
}
#슬라이딩윈도우