func_code_string: #include <bits/stdc++.h>   using namespace std;   mt19937 mt_rand(       chrono::high_resolution_clock::now().time_since_epoch().count());   const int INF = 2e9;   const long long ML = 4e18;   long long Pow(long long x, int p) {     long long res = 1;     while (p) {       if (p & 1) res = (res * x) % 998244353;       x = (x * x) % 998244353;       p >>= 1;     }     return res;   }   void solve() {     int n, q;     cin >> n >> q;     vector<int> ax(n);     for (int i = (0); i < (n); ++i) cin >> ax[i];     sort((ax).begin(), (ax).end());     vector<long long> sum(n + 1, 0);     for (int i = (1); i < (n + 1); ++i) {       sum[i] = sum[i - 1] + ax[i - 1];       sum[i] %= 998244353;     }     long long inv = Pow(n, 998244353 - 2);     for (int i = (0); i < (q); ++i) {       int a, b;       cin >> a >> b;       int p = lower_bound((ax).begin(), (ax).end(), b) - ax.begin();       int big = n - p, small = p;       if (big < a) {         cout << 0 << endl;         continue;       } else {         long long bs = (sum[n] - sum[p] + 998244353) % 998244353, sm = sum[p];         long long ans =             bs * (big - a) % 998244353 * Pow(big, 998244353 - 2) % 998244353;         ans = (ans + sm * (big + 1 - a) % 998244353 *                          Pow(big + 1, 998244353 - 2) % 998244353) %               998244353;         cout << ans << endl;       }     }   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     solve();     return 0;   }   