#include <bits/stdc++.h>
using namespace std;
long long extend_gcd(long long a, long long b, long long &x, long long &y) {
  if (b == 0) {
    x = 1, y = 0;
    return a;
  } else {
    long long r = extend_gcd(b, a % b, y, x);
    y -= x * (a / b);
    return r;
  }
}
long long inv(long long a, long long n) {
  long long x, y;
  extend_gcd(a, n, x, y);
  x = (x % n + n) % n;
  return x;
}
long long mo = 998244353;
long long p[200005];
long long mul[200005];
bool book[200005];
long long summul[200005];
set<int> st;
long long f(int l, int r) {
  if (l == 1) {
    long long res = summul[r - 2];
    res = 1LL * res * inv(mul[r - 1], mo) % mo;
    return res;
  }
  long long res = summul[r - 2] - summul[l - 2];
  res = (res + mo) % mo;
  res = 1LL * res * inv(mul[r - 1], mo) % mo;
  return res;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  int inv1 = inv(100, mo);
  mul[0] = summul[0] = 1;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &p[i]);
    p[i] = 1LL * p[i] * inv1 % mo;
    mul[i] = 1LL * mul[i - 1] * p[i] % mo;
    summul[i] = (summul[i - 1] + mul[i]) % mo;
  }
  long long invmul = inv(mul[n], mo);
  long long ans = f(1, n + 1);
  st.insert(1);
  st.insert(n + 1);
  for (int i = 1; i <= m; i++) {
    int x;
    scanf("%d", &x);
    if (book[x]) {
      book[x] = false;
      st.erase(x);
      set<int>::iterator it = st.lower_bound(x);
      int r = *it;
      it--;
      int l = *it;
      ans = (ans - f(l, x) - f(x, r) + f(l, r) + mo + mo) % mo;
    } else {
      book[x] = true;
      set<int>::iterator it = st.lower_bound(x);
      int r = *it;
      it--;
      int l = *it;
      ans = (ans - f(l, r) + f(l, x) + f(x, r) + mo) % mo;
      st.insert(x);
    }
    printf("%lld\n", ans);
  }
}
