#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=998244353;
struct M{
int a[6][6];
M(){memset(a,0,sizeof(a));}
}t[4],sum,E,ans;
int n,k,a[5];
M operator*(const M &a,const M &b)
{
M ans;
for(int i=0;i<=5;i++)
for(int j=0;j<=5;j++)
for(int k=0;k<=5;k++)
ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j]%mod)%mod;
return ans;
}
M Pow(M a,int b)
{
M x;
x=E;
while(b){
if(b&1)x=x*a;
a=a*a;
b>>=1;
}
return x;
}
void init(){
t[1].a[0][1]=t[1].a[1][2]=t[1].a[2][3]=t[1].a[3][4]=t[1].a[4][5]=t[1].a[5][5]=1;
t[2].a[0][1]=t[2].a[1][0]=t[1].a[2][1]=t[2].a[3][2]=t[2].a[4][3]=t[2].a[5][4]=1;
t[3].a[0][1]=t[3].a[1][0]=t[3].a[2][1]=t[3].a[3][2]=t[3].a[4][3]=t[3].a[5][4]=1;
t[3].a[0][1]=t[3].a[1][2]=t[3].a[2][3]=t[3].a[3][4]=t[3].a[4][5]=t[3].a[5][5]=1;
E.a[0][0]=E.a[1][1]=E.a[2][2]=E.a[3][3]=E.a[4][4]=E.a[5][5]=1;
sum=E;
}
signed main()
{
init();
cin>>n>>k;
for(int i=1;i<=4;i++)
{
cin>>a[i];
sum=sum*t[a[i]];
}
ans.a[0][k]=1;
ans=ans*Pow(sum,n/4);
for(int i=0;i<n%4-1;i++)ans=ans*t[a[i+1]];
cout<<(ans.a[0][0]+ans.a[0][1]+ans.a[0][2]+ans.a[0][3]+ans.a[0][4]+ans.a[0][5])%mod;
return 0;
}