#include <bits/stdc++.h>
using namespace std;
const int MX = 200005;
const int MD = 998244353;
void add(int& a, int b) {
  a += b;
  if (a >= MD) a -= MD;
}
void sub(int& a, int b) {
  a -= b;
  if (a < 0) a += MD;
}
int mod_sum(int a, int b) {
  a += b;
  if (a >= MD) a -= MD;
  return a;
}
int mod_mult(long long a, long long b) { return (a * b) % MD; }
int exp(int a, int b) {
  int res = 1;
  while (b) {
    if (b & 1) res = mod_mult(res, a);
    a = mod_mult(a, a);
    b /= 2;
  }
  return res;
}
int inv(int a) { return exp(a, MD - 2); }
int p[MX];
struct DATA {
  int s, m;
};
DATA recalc(DATA L, DATA R) {
  DATA res;
  res.m = mod_mult(L.m, R.m);
  res.s = mod_sum(mod_mult(L.s, R.m), R.s);
  return res;
}
struct {
  int L, R;
  int pl, pr;
  DATA d;
} T[2 * MX];
int tsz = 0;
int buildTree(int L, int R) {
  int cur = tsz++;
  T[cur].L = L;
  T[cur].R = R;
  if (L < R) {
    T[cur].pl = buildTree(L, (L + R) / 2);
    T[cur].pr = buildTree((L + R) / 2 + 1, R);
    T[cur].d = recalc(T[T[cur].pl].d, T[T[cur].pr].d);
  } else {
    T[cur].d.m = inv(p[L]);
    T[cur].d.s = inv(p[L]);
  }
  return cur;
}
DATA get(int L, int R, int cur) {
  if (L <= T[cur].L && R >= T[cur].R) return T[cur].d;
  DATA d;
  bool any = false;
  if (L <= T[T[cur].pl].R) {
    d = get(L, R, T[cur].pl);
    any = true;
  }
  if (R >= T[T[cur].pr].L) {
    DATA tmp = get(L, R, T[cur].pr);
    if (any)
      d = recalc(d, tmp);
    else
      d = tmp;
  }
  return d;
}
int main() {
  int n, q;
  ignore = scanf("%d %d", &n, &q);
  int inv_100 = inv(100);
  for (int i = 1; i <= n; i++) {
    ignore = scanf("%d", p + i);
    p[i] = mod_mult(p[i], inv_100);
  }
  int rt = buildTree(1, n);
  int res = T[rt].d.s;
  set<int> toggled;
  toggled.insert(1);
  toggled.insert(n + 1);
  while (q--) {
    int i;
    ignore = scanf("%d", &i);
    if (!toggled.count(i)) {
      int L = *prev(toggled.lower_bound(i));
      int R = *toggled.lower_bound(i) - 1;
      DATA LL = get(L, i - 1, rt);
      DATA RR = get(i, R, rt);
      sub(res, recalc(LL, RR).s);
      add(res, LL.s);
      add(res, RR.s);
      toggled.insert(i);
    } else {
      toggled.erase(i);
      int L = *prev(toggled.lower_bound(i));
      int R = *toggled.lower_bound(i) - 1;
      DATA LL = get(L, i - 1, rt);
      DATA RR = get(i, R, rt);
      add(res, recalc(LL, RR).s);
      sub(res, LL.s);
      sub(res, RR.s);
    }
    printf("%d\n", res);
  }
}
