func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename Arg1>   void __f(const char* name, Arg1&& arg1) {     cerr << name <<   :   << arg1 << std::endl;   }   template <typename Arg1, typename... Args>   void __f(const char* names, Arg1&& arg1, Args&&... args) {     const char* comma = strchr(names + 1,  , );     cerr.write(names, comma - names) <<   :   << arg1 <<   |  ;     __f(comma + 1, args...);   }   long long ex(long long a, long long b) {     long long ans = 1;     while (b) {       if (b & 1) ans = (ans * a) % 998244353;       a = (a * a) % 998244353, b /= 2;     }     return ans;   }   inline long long add(long long a, long long b) {     a = a % 998244353 + b % 998244353;     if (a > 998244353) a %= 998244353;     return a;   }   inline long long sub(long long a, long long b) {     a = a % 998244353 - b % 998244353;     if (a < 0) a += 998244353;     return a;   }   inline long long mul(long long a, long long b) {     a %= 998244353, b %= 998244353;     return (a * b) % 998244353;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     ;     long long n, q;     cin >> n >> q;     long long a[n + 2], b[n + 2], c[n + 2];     for (long long i = 1; i < n + 1; ++i)       cin >> a[i], a[i] = mul(100, ex(a[i], 998244353 - 2));     b[0] = 0, c[n + 1] = 1;     for (long long i = n; i >= 1; --i) c[i] = mul(c[i + 1], a[i]);     for (long long i = 1; i < n + 1; ++i) b[i] = add(b[i - 1], c[i]);     auto get = [&](long long l, long long r) {       long long x = sub(b[r], b[l - 1]);       x = mul(x, ex(c[r + 1], 998244353 - 2));       return x;     };     long long ans = get(1, n), x;     set<long long> s;     s.insert(1);     for (long long i = 0; i < q; ++i) {       long long u;       cin >> u;       if (s.count(u)) {         auto it = s.find(u);         auto it1 = s.upper_bound(u);         if (it1 == s.end())           x = n;         else           x = *it1 - 1;         auto it2 = s.lower_bound(u);         it2--;         ans = add(ans, get(*it2, x));         ans = sub(ans, add(get(*it2, *it - 1), get(*it, x)));         s.erase(u);       } else {         s.insert(u);         auto it = s.find(u);         auto it1 = s.upper_bound(u);         if (it1 == s.end())           x = n;         else           x = *it1 - 1;         auto it2 = s.find(u);         it2--;         ans = sub(ans, get(*it2, x));         ans = add(ans, add(get(*it2, *it - 1), get(*it, x)));       }       cout << ans <<   n ;     }     return 0;   }   