#include <bits/stdc++.h>
using namespace std;
const int max_n = 200005;
const int mod = 998244353;
inline int Add(int x, int y) { return (x += y) >= mod ? x - mod : x; }
inline int Sub(int x, int y) { return (x -= y) >= 0 ? x : x + mod; }
inline int Mul(int x, int y) { return 1ll * x * y % mod; }
inline int Pow(int x, int y) {
  if (y == 0) return 1;
  int res = 1;
  while (y) {
    if (y & 1) res = 1ll * res * x % mod;
    y >>= 1;
    x = 1ll * x * x % mod;
  }
  return res;
}
int n, q, p[max_n];
int inv;
int xp[max_n];
int ixp[max_n];
int suf[max_n];
int query(int l, int r) { return Mul(xp[r], Sub(suf[l], suf[r])); }
int main() {
  scanf("%d%d", &n, &q);
  inv = Pow(100, mod - 2);
  for (int i = 1; i <= n; i++) scanf("%d", p + i), p[i] = Mul(p[i], inv);
  xp[n + 1] = ixp[n + 1] = 1;
  for (int i = n; i >= 1; i--) {
    xp[i] = Mul(xp[i + 1], p[i]);
    ixp[i] = Pow(xp[i], mod - 2);
    suf[i] = Add(suf[i + 1], ixp[i]);
  }
  set<int> s;
  s.insert(1);
  s.insert(n + 1);
  int ans = query(1, n + 1);
  while (q--) {
    int u;
    scanf("%d", &u);
    if (s.count(u)) {
      auto it = s.lower_bound(u);
      it--;
      int l = *it;
      it++;
      it++;
      int r = *it;
      ans = Sub(ans, query(l, u));
      ans = Sub(ans, query(u, r));
      ans = Add(ans, query(l, r));
      s.erase(u);
    } else {
      auto it = s.lower_bound(u);
      int r = *it;
      it--;
      int l = *it;
      ans = Sub(ans, query(l, r));
      ans = Add(ans, query(l, u));
      ans = Add(ans, query(u, r));
      s.insert(u);
    }
    printf("%d\n", ans);
  }
  return 0;
}
