#include <bits/stdc++.h>
#define int long long
using namespace std;
int mod=998244353;
inline int po(int a, int n) {
    if (n==1) {
        return a;
    }
    if (n%2==0) {
        int res=po(a, n/2)%mod;
        return res*res%mod;
    } else {
        return po(a, n-1)%mod*a%mod;
    }
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, q, b;
    cin >> n >> q;
    vector <int> A(n);
    for (int i=0; i<n; ++i) {
        cin >> A[i];
    }
    for (int i=0; i<q; ++i) {
        cin >> b;
        int ans=0;
        if (b==1) {
            for (int j=0; j<n/2; ++j) {
                swap(A[j], A[n-j-1]);
            }
        } else if (b==2) {
            vector <int> B(n);
            for (int j=0; j<n; ++j) {
                B[j]=n-A[j]+1;
            }
            A=move(B);
        } else {
            vector <int> B(n);
            for (int j=0; j<n; ++j) {
                B[A[j]-1]=j+1;
            }
            A=move(B);
        }
        for (int j=0; j<n; ++j) {
            ans+=po(A[j], j+1);
            ans%=mod;
        }
        cout << ans << ' ';
    }
    return 0;
}