#include <iostream>
#include <cstring>
 
using namespace std;
typedef long long ll;
int mod = 998244353;
template<typename T> void read(T &x){
    x = 0;char ch = getchar();ll f = 1;
    while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}
    while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
inline int mul(int x,int y){return 1ll*x*y%mod;}
inline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;}
inline int sub(int x,int y){return x-y<0?x-y+mod:x-y;}
inline int sq(int x){return 1ll*x*x%mod;}
int pow(int a,int b){return b == 0 ? 1 : ( b&1 ? mul(a,sq(pow(a,b/2))) : sq(pow(a,b/2)));}
 
int n,k,a[1000010];
int main(){
    read(n);read(k);
    for(int i=1;i<=n;i++){
        read(a[i]);
    }
    int ans = 0,md = 1,cnt = 0;
    for(int i=1;i<=k;i++){
        if(a[i] == 0){
            cnt++;
        }else{
            md = mul(md,a[i]);
        }
    }
    for(int i=1;i+k-1<=n;i++){
        if(!cnt)ans = max(ans,md);
        if(a[i] == 0)cnt--;
        else md = mul(md,pow(a[i],mod-2));
        if(a[i+k] == 0)cnt++;
        else md = mul(md,a[i+k]);
    }
    cout<<ans<<endl;
    return 0;
}
蒟蒻默默的问一句,为什么c题题解将int改成long long就会WA了呢