#include <bits/stdc++.h>
using namespace std;
long long t1, n, ans, p = 998244353, v[500010], pp[500010], g[500010],
                      f[500010], a[500010];
set<long long> s;
long long ksm(long long x, long long y) {
  long long xlh = 1;
  while (y) {
    if (y & 1) xlh = xlh * x % p;
    x = x * x % p;
    y /= 2;
  }
  return xlh;
}
int main() {
  long long i, x, y, pr;
  scanf("%lld%lld", &n, &t1);
  s.insert(1);
  s.insert(n + 1);
  v[1] = 1;
  for (i = 1; i <= n; i++) {
    scanf("%lld", &pp[i]);
    pp[i] = pp[i] * ksm(100, p - 2) % p;
    g[i] = ksm(pp[i], p - 2);
  }
  a[0] = 1;
  for (i = 1; i <= n; i++) a[i] = a[i - 1] * g[i] % p;
  for (i = 1; i <= n; i++)
    ans += a[n] * ksm(a[i - 1], p - 2) % p,
        f[i] = (f[i - 1] + ksm(a[i - 1], p - 2)) % p;
  while (t1--) {
    scanf("%lld", &x);
    if (!v[x]) {
      v[x] = 1;
      set<long long>::iterator it = s.lower_bound(x);
      y = *it;
      it--;
      pr = *it;
      ans = (ans - (f[x - 1] - f[pr - 1] + p) * (a[y - 1] - a[x - 1] + p) % p +
             p) %
            p;
      s.insert(x);
    } else {
      v[x] = 0;
      s.erase(s.find(x));
      set<long long>::iterator it = s.lower_bound(x);
      y = *it;
      it--;
      pr = *it;
      ans = (ans - (f[x - 1] - f[pr - 1] + p) * (a[x - 1] - a[y - 1] + p) % p +
             p) %
            p;
    }
    printf("%lld\n", ans);
  }
}
