#include <stdio.h>

#define MAXM 100000
#define MAXN 20000000
#define mod 998244353

void unos(int a[],int b[],int &n,int &m,int &c){
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++)
        scanf("%d",&b[i]);
    scanf("%d",&c);
    for(int i=1;i<=n;i++)
        a[i]=i;
}

void ispis(int x[],int n){
    for(int i=1;i<=n;i++)
        printf("%d ",x[i]);
    printf("\n");
}

void brute_force(int a[],int b[],int n,int m)
{
    for(int i=0;i<=n-m;i++){
        //ispis(a,n);
        for(int j=1;j<m;j++)
            a[i+b[j]]=a[i+j];
    }
}

int racunaj(int a[],int n,int c){
    long long ci=c;
    int res=0;
    for(int i=1;i<=n;i++)
    {
        res=(res+ci*a[i])%mod;
        ci=(ci*c)%mod;
    }
    return res;
}

int main()
{
    int n,m,b[MAXM],a[MAXN],x[MAXN],c;
    unos(a,b,n,m,c);
    brute_force(a,b,n,m);
    //ispis(a,n);
    printf("%d",racunaj(a,n,c));

    return 0;
}