#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了呢