#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void match(int *a,int*b,int m,int n,int k);
void inc(int *b,int L,int R,int m);
int num = 0;
int main()
{
    int m,n,k,L,R;
    printf("m,n=");
    scanf("%d %d",&m,&n);
    printf("k = ");
    scanf("%d",&k);
    printf("L,R=");
    scanf("%d %d",&L,&R);
    int *a = (int*)malloc(n*sizeof(int));
    int *b = (int*)malloc(m*sizeof(int));
    int i=0;
    for(i = 0; i<m; i++)
    {
        b[i] = L;
    }
    for(i = 0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    for(i = 0; i<pow(R-L+1,m); i++)
    {
        int j;
        /*for(j= 0;j<n;j++){
         printf("a = %d ",a[j]);
        }
        printf("\n"); */
        match(a,b,m,n,k);
        inc(b,L,R,m);

    }
    printf("%d\n",num);

}
void match(int *a,int*b,int m,int n,int k)
{
    int i,j=0,temp,count=0;
    if(n<m)
    {
        for(i =0; i<n; i++)
        {
            for(; j<m; j++)
            {
                //printf("%d,%d\n",a[i],b[j]);
                if(a[i] == b[j])
                {
                    count++;
                    j++;
                    temp = j;
                    break;
                }
            }
            if(count == k)
                break;
            if(j == n && i < m-1)
                j = temp;
            else if(j == n)
                break;
        }
    }
    else
    {
        for(i =0; i<m; i++)
        {
            for(; j<n; j++)
            {
                //printf("%d,%d\n",a[i],b[j]);
                if(a[j] == b[i])
                {
                    count++;
                    j++;
                    temp = j;
                    break;
                }
            }
            if(count == k)
                break;
            if(j == n && i < m-1)
                j = temp;
            else if(j == n)
                break;
        }
    }
    if(count == k)
    {
        for(i=0; i<m; i++)
        {
            printf("%d ",b[i]);
        }
        printf("\n");
        num += 1;
    }

}
void inc(int *b,int L,int R,int m)
{
    static int i = -1;
    if(i == -1)
    {
        i = m - 1;
    }
    if(b[i] == R)
    {
        b[i] = L;
        i -= 1;
        inc(b,L,R,m);
        i = m - 1;
    }
    else b[i] += 1;