#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const int mod = 998244353;
const int inf = 1e9;
int n, q, p[N];
long long f[N], g[N], sf[N], sg[N];
long long Pow(long long a, int x) {
  long long res = 1;
  while (x) {
    if (x & 1) (res *= a) %= mod;
    (a *= a) %= mod;
    x >>= 1;
  }
  return res;
}
long long inv = Pow(100, mod - 2);
long long calc(int l, int r) {
  long long a =
      (sf[r - 2] - sf[l - 1] + mod) * Pow(f[l - 1], mod - 2) % mod + 1;
  long long b = (sg[r - 1] - sg[l - 1] + mod) * Pow(f[l - 1], mod - 2) % mod;
  long long res = a * Pow((1 - b + mod) % mod, mod - 2) % mod;
  return res;
}
int main() {
  cin >> n >> q;
  for (int i = 1; i <= n; ++i) scanf("%d", p + i);
  for (int i = 1; i <= n; ++i) {
    p[i] = p[i] * inv % mod;
  }
  f[0] = 1;
  g[0] = 1;
  for (int i = 1; i <= n; ++i) {
    f[i] = f[i - 1] * p[i] % mod;
    g[i] = f[i - 1] * (1 - p[i] + mod) % mod;
    sf[i] = (sf[i - 1] + f[i]) % mod;
    sg[i] = (sg[i - 1] + g[i]) % mod;
  }
  set<int> S;
  S.insert(1);
  S.insert(n + 1);
  long long ans = calc(1, n + 1);
  int u, pre, suc;
  while (q--) {
    scanf("%d", &u);
    auto it = S.lower_bound(u);
    if (*it > u) --it;
    if (*it == u) --it;
    pre = *it;
    it = S.upper_bound(u);
    suc = *it;
    if (S.find(u) != S.end()) {
      S.erase(u);
      ans += mod - calc(pre, u);
      ans += mod - calc(u, suc);
      ans += calc(pre, suc);
      ans %= mod;
    } else {
      S.insert(u);
      ans += calc(pre, u);
      ans += calc(u, suc);
      ans += mod - calc(pre, suc);
      ans %= mod;
    }
    printf("%I64d\n", ans);
  }
}
