#include <bits/stdc++.h>
using namespace std;
const int N = 2e5;
const int P = 998244353;
set<int> b;
long long p[N + 3];
long long s[N + 3], ss[N + 3];
bool f[N + 3];
int n, q;
long long ans;
long long quickpow(long long x, long long y) {
  long long cur = x, ret = 1ll;
  for (int i = 0; y; i++) {
    if (y & (1ll << i)) {
      y -= (1ll << i);
      ret = ret * cur % P;
    }
    cur = cur * cur % P;
  }
  return ret;
}
long long mulinv(long long x) { return quickpow(x, P - 2); }
int getprv(int x) {
  set<int>::iterator iter = b.lower_bound(x);
  iter--;
  return *iter;
}
void Flip(int x) {
  int l = getprv(x), r = *b.upper_bound(x);
  long long tmp = (ss[l] - ss[x] + P) % P,
            coe = f[x] == 0 ? (s[x] - s[r] + P) % P : (s[r] - s[x] + P) % P;
  ans = (ans + tmp * coe) % P;
  if (!f[x]) {
    b.insert(x);
  } else {
    b.erase(x);
  }
  f[x] ^= 1;
}
int main() {
  scanf("%d%d", &n, &q);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &p[i]);
    p[i] = p[i] * mulinv(100) % P;
  }
  b.insert(1);
  b.insert(n + 1);
  f[1] = 1;
  s[n + 1] = 1ll;
  for (int i = n; i >= 1; i--) {
    s[i] = s[i + 1] * p[i] % P;
    ss[i] = (mulinv(s[i]) + ss[i + 1]) % P;
  }
  ans = ss[1];
  for (int i = 1; i <= q; i++) {
    int x;
    scanf("%d", &x);
    Flip(x);
    printf("%lld\n", ans);
  }
  return 0;
}
