#include <bits/stdc++.h>
using namespace std;
template <class T, class U>
void ckmin(T &a, U b) {
  if (a > b) a = b;
}
template <class T, class U>
void ckmax(T &a, U b) {
  if (a < b) a = b;
}
long long expo(long long a, long long e) {
  if (e == 0) return 1;
  long long res = expo(a * a % 998244353, e >> 1);
  if (e & 1) {
    res *= a;
    res %= 998244353;
  }
  return res;
}
int N, Q;
long long INV;
long long prob[200013], iprob[200013];
long long psum[200013], prod[200013], iprod[200013];
set<int> guys;
long long ans;
long long getval(int L, int R) {
  long long res = psum[L] - psum[R + 1];
  res *= iprod[R + 1];
  res %= 998244353;
  return res;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout << fixed << setprecision(12);
  cerr << fixed << setprecision(4);
  cin >> N >> Q;
  INV = expo(100, 998244353 - 2);
  for (auto i = (0); i < (N); i++) {
    cin >> prob[i];
    prob[i] *= INV;
    prob[i] %= 998244353;
    iprob[i] = expo(prob[i], 998244353 - 2);
  }
  prod[N] = 1;
  iprod[N] = 1;
  psum[N] = 0;
  for (auto i = (N)-1; i >= (0); i--) {
    prod[i] = prod[i + 1] * iprob[i];
    prod[i] %= 998244353;
    iprod[i] = iprod[i + 1] * prob[i];
    iprod[i] %= 998244353;
    psum[i] = psum[i + 1] + prod[i];
    if (psum[i] >= 998244353) psum[i] -= 998244353;
  }
  ans = getval(0, N - 1);
  guys.insert(0);
  guys.insert(N);
  while (Q--) {
    int u;
    cin >> u;
    u--;
    if (guys.find(u) == guys.end()) {
      auto it = guys.lower_bound(u);
      int lt = *prev(it), rt = *it;
      ans -= getval(lt, rt - 1);
      ans += getval(lt, u - 1);
      ans += getval(u, rt - 1);
      ans %= 998244353;
      if (ans < 0) ans += 998244353;
      guys.insert(u);
    } else {
      guys.erase(u);
      auto it = guys.lower_bound(u);
      int lt = *prev(it), rt = *it;
      ans -= getval(lt, u - 1);
      ans -= getval(u, rt - 1);
      ans += getval(lt, rt - 1);
      ans %= 998244353;
      if (ans < 0) ans += 998244353;
    }
    cout << ans << '\n';
  }
  return 0;
}
