#include <bits/stdc++.h>
#define endl '\n'

using namespace std;

void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}

typedef long long ll;

const int maxn=1e5+5;
const int mod=998244353;
int n,q;
int a[2][maxn];
int b[maxn];
ll st[2];

ll fast_pow(ll a1,int b)
{
    ll base=a1,ans=1;
    while(b!=0)
    {
        if(b%2==1)
        {
            ans=(ans*base)%mod;
        }

        base=(base*base)%mod;
        b/=2;
    }

    return ans;
}

void precomp()
{
    for(int i=1;i<=n;i++)
    {
        a[1][i]=n-i+1;
    }

    for(int i=1;i<=n;i++)
    {
        st[0]=(st[0]+fast_pow(a[0][i],i))%mod;
        st[1]=(st[1]+fast_pow(a[1][i],i))%mod;
    }
}

void read()
{
    cin>>n>>q;
    for(int i=1;i<=n;i++)
        cin>>a[0][i];

    for(int i=1;i<=q;i++)
        cin>>b[i];

    precomp();

    int idx=0;
    for(int i=1;i<=q;i++)
    {
        if(b[i]==1)
            idx=1-idx;
        else if(b[i]==2)
            idx=1-idx;
        else if(b[i]==3)
        {
            if(idx==1)
                idx=1-idx;
        }

        cout<<st[idx]<<' ';
    }
    cout<<endl;
}

int main()
{
    speed();
    read();
    return 0;
}
