#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool is_odd(const T& x) {
  return x & T(1) != T(0);
}
template <class T>
inline bool is_negative(const T& x) {
  return x < T(0);
}
template <class T>
inline bool is_zero(const T& x) {
  return x == T(0);
}
template <class T>
pair<T, T> extended_stein_gcd(const T& x0, const T& y0) {
  T x(x0), y(y0), ax(1), ay(0);
  if (is_negative(x)) {
    x = -x;
  } else if (is_zero(x)) {
    return pair<T, T>(T(0), T(1));
  }
  if (is_negative(y)) {
    y = -y;
  } else if (is_zero(y)) {
    return pair<T, T>(T(1), T(0));
  }
  while (!is_odd(x) && !is_odd(y)) {
    x >>= 1;
    y >>= 1;
  }
  int dx = 0, dy = 0;
  while (!is_odd(x)) {
    x >>= 1;
    ++dx;
  }
  while (!is_odd(y)) {
    y >>= 1;
    ++dy;
  }
  T x1(x), y1(y);
  while (x != y) {
    while (x > y) {
      x -= y;
      ax -= ay;
      while (!is_odd(x)) {
        x >>= 1;
        ax = (is_odd(ax) ? ((ax + y1) >> 1) : (ax >> 1));
      }
    }
    while (y > x) {
      y -= x;
      ay -= ax;
      while (!is_odd(y)) {
        y >>= 1;
        ay = (is_odd(ay) ? ((ay + y1) >> 1) : (ay >> 1));
      }
    }
  }
  if (dy == 0) {
    x1 <<= dx;
    while (dx--) {
      ax = (is_odd(ax) ? ((ax + y1) >> 1) : (ax >> 1));
    }
    y1 <<= dy;
    return pair<T, T>(ax, (x - ax * x1) / y1);
  } else {
    T bx = (x - ax * x1) / y1;
    y1 <<= dy;
    while (dy--) {
      bx = (is_odd(bx) ? ((bx + x1) >> 1) : (bx >> 1));
    }
    x1 <<= dx;
    return pair<T, T>((x - bx * y1) / x1, bx);
  }
}
int main() {
  const long long p = 998244353;
  long long E = 0;
  long long n, P;
  scanf("%lld", &n);
  while (n--) {
    scanf("%lld", &P);
    E = ((E + 1) * extended_stein_gcd(p, P).second) % p;
    E = (100 * (p + E)) % p;
  }
  printf("%lld\n", E);
}
