#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];
    }
    int prans=0, q1=0, q2=0, d=0;
    for (int j=0; j<n; ++j) {
        prans+=po(A[j], j+1);
        prans%=mod;
    }
    q1=prans;
    for (int j=0; j<n/2; ++j) {
        swap(A[j], A[n-j-1]);
    }
    for (int j=0; j<n; ++j) {
        q2+=po(A[j], j+1);
        q2%=mod;
    }
    for (int i=0; i<q; ++i) {
        cin >> b;
        int ans=0;
        if (b==1) {
            if (d==0) {
                d=1, ans=q1;
            } else {
                d=0, ans=q2;
            }
        } else if (b==2) {
            if (d==0) {
                d=1, ans=q1;
            } else {
                d=0, ans=q2;
            }
        } else {
            ans=prans;
        }
        prans=ans;
        cout << ans << '\n';
    }
    return 0;
}