#include <bits/stdc++.h>
using namespace std;
const int N = 200100;
const long long OO = 1e18;
const int oo = 2e9;
const int md = 998244353;
set<int> st;
set<int>::iterator ite;
int sto, n, p[N], obr = 1, ans = 0, mul[N], q, psm[N];
bool mrk[N];
int mult(int x, int y) { return (1ll * x * y) % md; }
int sum(int x, int y) {
  x += y;
  if (x >= md) x -= md;
  return x;
}
int sub(int x, int y) {
  x -= y;
  if (x < 0) x += md;
  return x;
}
int binpow(int x, int po) {
  int res = 1;
  while (po > 0) {
    if (po & 1) res = mult(res, x);
    x = mult(x, x);
    po >>= 1;
  }
  return res;
}
int calc(int l, int r) {
  int up = sub(psm[r - 1], (l - 2 < 0 ? 0 : psm[l - 2]));
  up = mult(up, binpow(mul[l - 1], md - 2));
  int down = mult(mul[r], binpow(mul[l - 1], md - 2));
  return mult(up, binpow(down, md - 2));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> q;
  sto = binpow(100, md - 2);
  mul[0] = 1;
  mrk[1] = 1;
  psm[0] = 1;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    p[i] = mult(p[i], sto);
    mul[i] = mult(mul[i - 1], p[i]);
    psm[i] = sum(psm[i - 1], mul[i]);
  }
  ans = calc(1, n);
  st.clear();
  st.insert(1);
  st.insert(n + 1);
  for (; q; q--) {
    int ps;
    cin >> ps;
    if (!mrk[ps]) {
      st.insert(ps);
      ite = st.find(ps);
      int lf = *prev(ite);
      int rt = (*next(ite)) - 1;
      ans = sub(ans, calc(lf, rt));
      ans = sum(ans, calc(lf, ps - 1));
      ans = sum(ans, calc(ps, rt));
    } else {
      ite = st.find(ps);
      int lf = *prev(ite);
      int rt = (*next(ite)) - 1;
      ans = sum(ans, calc(lf, rt));
      ans = sub(ans, calc(lf, ps - 1));
      ans = sub(ans, calc(ps, rt));
      st.erase(ite);
    }
    mrk[ps] ^= 1;
    cout << ans << '\n';
  }
  return 0;
}
