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);
    }
}
#슬라이딩윈도우