func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 200100;   const long long OO = 1e18;   const int oo = 2e9;   const int md = 998244353;   set<int> st;   set<int>::iterator ite;   int sto, n, p[N], obr = 1, ans = 0, mul[N], q, psm[N];   bool mrk[N];   int mult(int x, int y) { return (1ll * x * y) % md; }   int sum(int x, int y) {     x += y;     if (x >= md) x -= md;     return x;   }   int sub(int x, int y) {     x -= y;     if (x < 0) x += md;     return x;   }   int binpow(int x, int po) {     int res = 1;     while (po > 0) {       if (po & 1) res = mult(res, x);       x = mult(x, x);       po >>= 1;     }     return res;   }   int calc(int l, int r) {     int up = sub(psm[r - 1], (l - 2 < 0 ? 0 : psm[l - 2]));     up = mult(up, binpow(mul[l - 1], md - 2));     int down = mult(mul[r], binpow(mul[l - 1], md - 2));     return mult(up, binpow(down, md - 2));   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cin >> n >> q;     sto = binpow(100, md - 2);     mul[0] = 1;     mrk[1] = 1;     psm[0] = 1;     for (int i = 1; i <= n; i++) {       cin >> p[i];       p[i] = mult(p[i], sto);       mul[i] = mult(mul[i - 1], p[i]);       psm[i] = sum(psm[i - 1], mul[i]);     }     ans = calc(1, n);     st.clear();     st.insert(1);     st.insert(n + 1);     for (; q; q--) {       int ps;       cin >> ps;       if (!mrk[ps]) {         st.insert(ps);         ite = st.find(ps);         int lf = *prev(ite);         int rt = (*next(ite)) - 1;         ans = sub(ans, calc(lf, rt));         ans = sum(ans, calc(lf, ps - 1));         ans = sum(ans, calc(ps, rt));       } else {         ite = st.find(ps);         int lf = *prev(ite);         int rt = (*next(ite)) - 1;         ans = sum(ans, calc(lf, rt));         ans = sub(ans, calc(lf, ps - 1));         ans = sub(ans, calc(ps, rt));         st.erase(ite);       }       mrk[ps] ^= 1;       cout << ans <<   n ;     }     return 0;   }   