#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
long long powi(long long a, long long b) {
  long long ret = 1;
  for (; b; b >>= 1, a = a * a % 998244353LL) {
    if (b & 1) ret = ret * a % 998244353LL;
  }
  return ret;
}
long long inv(long long a) { return powi(a, 998244353LL - 2); }
long long p[200005], pp[200005], s[200005];
long long query(int l, int r) {
  long long a =
      (1 + (s[r - 1] - s[l - 1] + 998244353LL) * inv(pp[l - 1]) % 998244353LL) %
      998244353LL;
  long long b = pp[r] * inv(pp[l - 1]) % 998244353LL;
  return a * inv(b) % 998244353LL;
}
int main() {
  cin.tie(0), ios::sync_with_stdio(0);
  int n, q;
  cin >> n >> q;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    p[i] = p[i] * inv(100) % 998244353LL;
  }
  pp[0] = 1;
  for (int i = 1; i <= n; i++) pp[i] = pp[i - 1] * p[i] % 998244353LL;
  s[0] = 0;
  for (int i = 1; i <= n; i++) s[i] = (s[i - 1] + pp[i]) % 998244353LL;
  long long ans = query(1, n);
  set<int> ch;
  ch.insert(1);
  ch.insert(n + 1);
  while (q--) {
    int x;
    cin >> x;
    if (!ch.count(x)) {
      auto nit = ch.lower_bound(x), pit = prev(nit);
      ans = (ans - query(*pit, *nit - 1) + 998244353LL) % 998244353LL;
      ans = (ans + query(*pit, x - 1)) % 998244353LL;
      ans = (ans + query(x, *nit - 1)) % 998244353LL;
      ch.insert(x);
    } else {
      auto it = ch.find(x), pit = prev(it), nit = next(it);
      ans = (ans - query(*pit, *it - 1) + 998244353LL) % 998244353LL;
      ans = (ans - query(*it, *nit - 1) + 998244353LL) % 998244353LL;
      ans = (ans + query(*pit, *nit - 1)) % 998244353LL;
      ch.erase(x);
    }
    cout << ans << "\n";
  }
  return 0;
}
