mod = 998244353 n = int(input()) a = list(map(int,input().split())) min_b = mod d = {} ans = 0 for i in range(n): if a[i] not in d: d[a[i]] = 0 min_b = min(min_b,a[i]) d[a[i]] += 1 ans += (a[i]+1)*pow(2,-1,mod) ans %= mod key = sorted(list(d.keys())) if min_b <= n+2: inv = 1 for i in range(n): inv *= pow(a[i],-1,mod) inv %= mod l,r = 0,n for i in range(len(key)): r -= d[key[i]] for u in range(1,key[i]+1): ans += inv*(key[i]-u)*pow(min_b-u+1,l,mod)*pow(min_b-u,r,mod)*(pow(key[i]-u+1,d[key[i]])-pow(key[i]-u,d[key[i]])) ans %= mod l += d[key[i]] print(ans) exit() #(Bk - m) ^ Ck b_0 = [[1 for i in range(n+3)] for u in range(len(key)+1)] #(Bk - m + 1) ^Ck b_1 = [[1 for i in range(n+3)] for u in range(len(key)+1)] #b_0の累積積 bb_0 = [[1 for i in range(n+3)] for u in range(len(key)+1)] #b_1の累積積 bb_1 = [[1 for i in range(n+3)] for u in range(len(key)+1)] for i in range(len(key)): for u in range(1,n+3): b_0[i][u] = pow(key[i]-u,d[key[i]],mod) b_1[i][u] = pow(key[i]-u+1,d[key[i]],mod) bb_0[i][u] = b_0[i][u] bb_1[i][u] = b_1[i][u] for i in range(len(key)-1): for u in range(1,n+3): bb_1[i+1][u] *= bb_1[i][u] bb_1[i+1][u] %= mod for i in range(len(key),0,-1): for u in range(1,n+3): bb_0[i-1][u] *= bb_0[i][u] bb_0[i-1][u] %= mod l = [0 for i in range(n+3)] for i in range(1,n+3): aa,bb = 1,1 for u in range(1,n+3): if i == u: continue aa *= min_b - u aa %= mod bb *= i - u bb %= mod l[i] = aa*pow(bb,-1,mod) l[i] %= mod out = 0 for i in range(len(key)): c = 0 for u in range(1,n+3): if i == 0: left = 1 else: left = bb_1[i-1][u] right = bb_0[i+1][u] c += (key[i]-u)*(b_1[i][u] - b_0[i][u])*left*right c %= mod out += l[u]*c out %= mod inv = 1 for i in range(n): inv *= pow(a[i],-1,mod) inv %= mod ans += inv*out ans %= mod print(ans)