#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const double eps = 1e-6;
const int maxn = 1e6 + 5;
const int mod = 998244353;
long long p[maxn];
long long qpow(long long a, long long n, long long p) {
  long long ans = 1;
  while (n) {
    if (n & 1) ans = ans * a % p;
    a = a * a % p;
    n >>= 1;
  }
  return ans;
}
long long pre[maxn];
long long sum[maxn];
int vis[maxn];
long long myco(long long u, long long v) {
  long long x = 0;
  if (u == 1)
    x = (sum[v - 1] % mod + 1) % mod;
  else
    x = (sum[v - 1] - sum[u - 2] + mod) % mod;
  long long a = x % mod * qpow(pre[u - 1], mod - 2, mod) % mod;
  long long b = pre[v] * qpow(pre[u - 1], mod - 2, mod) % mod;
  return a * qpow(b, mod - 2, mod) % mod;
}
int main() {
  int q, n;
  set<int> s;
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  s.insert(1);
  cin >> n >> q;
  s.insert(n + 1);
  long long inv = qpow(100, mod - 2, mod);
  pre[0] = 1;
  for (int i = 1; i <= n; i++)
    cin >> p[i], p[i] = p[i] * inv % mod, pre[i] = pre[i - 1] * p[i] % mod,
                 sum[i] = (sum[i - 1] + pre[i]) % mod;
  long long ans = myco(1, n);
  vis[1] = 1;
  vis[n + 1] = 1;
  while (q--) {
    int u;
    cin >> u;
    vis[u] ^= 1;
    if (vis[u]) {
      int x = *(--s.lower_bound(u));
      int y = *(s.lower_bound(u));
      ans = (ans - myco(x, y - 1) + mod) % mod;
      ans = (ans + myco(x, u - 1) + mod) % mod;
      ans = (ans + myco(u, y - 1) + mod) % mod;
      s.insert(u);
    } else {
      int x = *(--s.lower_bound(u));
      int y = *(s.upper_bound(u));
      ans = (ans - (myco(x, u - 1) + myco(u, y - 1)) % mod + mod) % mod;
      ans = (ans + myco(x, y - 1) + mod) % mod;
      s.erase(u);
    }
    cout << ans << "\n";
  }
}
