#include<bits/stdc++.h>
using namespace std;

const long long MOD=998244353;
long long n;
long long a[100'005];

long long faststep(long long x, long long p)
{
    if (p==1) return x;
    if (p==0) return 1;

    long long sum=faststep(x, p/2);
    sum=(sum*sum)%MOD;
    if (p%2==1) sum=(sum*x)%MOD;

    return sum;
}


long long calc()
{
    long long sum=0;
    for (long long i=1; i<=n; i++)
    {
        sum=(sum+faststep(a[i], i))%MOD;
    }
    return sum;
}

int main ()
{
    cin>>n;
    long long q;
    cin>>q;


    for (long long i=1; i<=n; i++) cin>>a[i];

    long long modes[2]={};
    modes[0]=calc();
    reverse(a+1, a+n+1);
    modes[1]=calc();

    long long mode=0;

    while (q--)
    {
        long long type;
        cin>>type;

        if (type==1 || type==2)
        {
            mode=1-mode;
        }
        else
        {
            mode=0;
        }

        cout<<modes[mode]<<" ";
    }

    return 0;
}
