#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const long long mod=998244353;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}

long long mult(long long x,long long p)
{
    if(p==0)return 1;
    if(p==1)return x;
    long long h=mult(x,p/2);
    if(p%2==0)return h*h%mod;
    return h*h*x%mod;
}

long long n,q,p[200001];
long long b[200001];
long long h[200001];
void read()
{
    cin>>n>>q;
    for(long long i=1; i<=n; i++)
        cin>>p[i];
    for(long long i=1; i<=q; i++)
        cin>>b[i];
}

void solve()
{
    for(long long i=1; i<=q; i++)
    {
        if(b[i]==1)
        {
            for(long long j=1; j<=n; j++)
                h[j]=p[n-j+1];

        }

        if(b[i]==2)
        {
            for(long long j=1; j<=n; j++)
                h[j]=n-p[j]+1;
        }

        if(b[i]==3)
        {
            for(long long j=1; j<=n; j++)
                h[p[j]]=j;
        }

        long long ans=0;
        for(long long j=1; j<=n; j++)
        {
            p[j]=h[j];
            ans+=mult(p[j],j);
            ans%=mod;
            //cout<<p[j]<<" ";
        }
        //cout<<endl;
        cout<<ans<<" ";
    }
    cout<<endl;
}

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