#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 2;
const long long M = 1e6 + 2;
const long long mod = 998244353;
long long ar[N], fact[M], inv[M], cnt[N];
long long binpow(long long x, long long y) {
  long long tich = 1;
  while (y) {
    if (y & 1) {
      tich *= x;
      tich %= mod;
    }
    x *= x;
    x %= mod;
    y >>= 1;
  }
  return tich;
}
long long C(long long x, long long y) {
  return ((fact[y] * inv[y - x]) % mod * inv[x]) % mod;
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long n, i, j, k, l, ans = 0, sum = 0;
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> ar[i];
    cnt[ar[i] % n]++;
    sum += ar[i];
  }
  fact[0] = 1;
  for (i = 1; i < M - 1; i++) {
    fact[i] = (fact[i - 1] * i) % mod;
  }
  inv[M - 2] = binpow(fact[M - 2], mod - 2);
  for (i = M - 2; i > 0; i--) {
    inv[i - 1] = (inv[i] * i) % mod;
  }
  sort(ar + 1, ar + 1 + n);
  long long pos = 0;
  for (i = 1; i < n; i++) {
    if (ar[i + 1] < i) {
      pos = i;
      break;
    }
  }
  if (pos) {
    j = 1;
    for (i = 0; i < pos; i++) {
      while (ar[j] < i) {
        j++;
      }
      ans += C(n - 1, i - (j - 1) + n - 1);
      if (ans >= mod) {
        ans -= mod;
      }
    }
    cout << ans;
  } else {
    for (i = 1; i <= n; i++) {
      sum -= ar[i] % n;
    }
    sum /= n;
    for (i = 1; i <= n; i++) {
      sum = sum + cnt[n - i] - 1;
      if (sum >= 0) {
        ans += C(n - 1, sum + n - 1);
        if (ans >= mod) {
          ans -= mod;
        }
      }
    }
    cout << ans;
  }
}
