#include <bits/stdc++.h>
using namespace std;
long long mod = 998244353;
long long mod_exp(long long b, long long p) {
  long long res = 1;
  while (p > 0) {
    if (p & 1) res = (res * b) % mod;
    p /= 2;
    b = (b * b) % mod;
  }
  return res;
}
int main() {
  long long e = 0;
  long long mmi[101];
  long long n, i, j, qr, x, y;
  for (i = 1; i <= 100; i++) mmi[i] = mod_exp(i, mod - 2);
  cin >> n >> qr;
  long long prod[n + 1], pre[n + 1], inv[n + 1];
  prod[0] = 1;
  pre[0] = 1;
  inv[0] = 1;
  for (i = 1; i <= n; i++) {
    cin >> j;
    e = ((e + 1) * 100) % mod;
    e = (e * mmi[j]) % mod;
    prod[i] = (((prod[i - 1] * j) % mod) * mmi[100]) % mod;
    pre[i] = (pre[i - 1] + prod[i]) % mod;
    inv[i] = (((inv[i - 1] * mmi[j]) % mod) * 100) % mod;
  }
  map<long long, long long> mp;
  map<long long, long long>::iterator it, it1;
  pair<long long, long long> p, q, r;
  long long term, term1;
  mp[1] = e;
  mp[n + 1] = 0;
  long long cur = e;
  for (i = 0; i < qr; i++) {
    cin >> j;
    it = mp.upper_bound(j);
    q = *it;
    y = q.first;
    if (mp.find(j) == mp.end()) {
      it--;
      p = *it;
      x = p.first;
      term = ((y - 2 >= 0 ? pre[y - 2] : 0) - (j - 2 >= 0 ? pre[j - 2] : 0) +
              mod) %
             mod;
      term = (term * inv[y - 1]) % mod;
      term1 = ((j - 2 >= 0 ? pre[j - 2] : 0) - (x - 2 >= 0 ? pre[x - 2] : 0) +
               mod) %
              mod;
      term1 = (term1 * inv[j - 1]) % mod;
      cur = (cur - p.second + term1 + term + mod) % mod;
      mp[x] = term1;
      mp[j] = term;
    } else {
      it1 = mp.find(j);
      r = *it1;
      it1--;
      p = *it1;
      x = p.first;
      term1 = ((y - 2 >= 0 ? pre[y - 2] : 0) - (x - 2 >= 0 ? pre[x - 2] : 0) +
               mod) %
              mod;
      term1 = (term1 * inv[y - 1]) % mod;
      cur = (cur - r.second - p.second + mod + mod) % mod;
      cur = (cur + term1) % mod;
      mp.erase(j);
      mp[x] = term1;
    }
    cout << cur << endl;
  }
}
