#include #include using mint = atcoder::modint998244353; using namespace std; using ld = long double; #undef long #define long long long #define ll long #define vec vector #define rep(i, n) for (long i = 0; i < n; i++) #define all(a) begin(a), end(a) #define sz(a) (int)(a).size() template bool chmin(T &x, T y) { if (y < x) { x = y; return true; } return false; } template bool chmax(T &x, T y) { if (x < y) { x = y; return true; } return false; } template ostream &operator<<(ostream &os, vector a) { const int n = a.size(); rep(i, n) { os << a[i]; if (i + 1 != n) os << " "; } return os; } void solve() { int n, k; cin >> n >> k; mint c1 = 1, c2 = 1; rep(i, n) { int a; cin >> a; mint aa = mint(a).inv(); if (a >= k) c1 *= k * aa; if (a >= k - 1) c2 *= (k - 1) * aa; } cout << (c1 - c2).val() << endl; } int main() { cin.tie(0)->sync_with_stdio(0), cout.tie(0); cout << fixed << setprecision(20); int t = 1; // cin >> t; while (t--) solve(); }