#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
const int maxn = 2e5 + 7;
long long a[maxn], sum[maxn];
long long qpow(long long x, long long n) {
  long long res = 1;
  while (n) {
    if (n & 1) res = res * x % MOD;
    x = x * x % MOD;
    n >>= 1;
  }
  return res;
}
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  sort(a + 1, a + 1 + n);
  for (int i = 1; i <= n; i++) sum[i] = sum[i - 1] + a[i], sum[i] %= MOD;
  for (int i = 1; i <= m; i++) {
    long long A, B;
    cin >> A >> B;
    long long num = lower_bound(a + 1, a + 1 + n, B) - a;
    long long strong = n - num + 1, weak = num - 1;
    long long p1 = max(strong - A, 0ll) * qpow(strong, MOD - 2) % MOD;
    long long p2 = max(strong + 1 - A, 0ll) * qpow(strong + 1, MOD - 2) % MOD;
    long long d1 = ((sum[n] - sum[weak]) % MOD + MOD) % MOD;
    long long d2 = sum[weak];
    long long ans = (p1 * d1 % MOD + p2 * d2 % MOD) % MOD;
    cout << ans << endl;
  }
  return 0;
}
