```go
package main
import (
"fmt"
"io"
"os"
)
func main() {
buf, _ := io.ReadAll(os.Stdin)
pos := 0
readInt := func() int {
for pos < len(buf) && (buf[pos] < '0' || buf[pos] > '9') {
pos++
}
if pos >= len(buf) {
return 0
}
res := 0
for pos < len(buf) && buf[pos] >= '0' && buf[pos] <= '9' {
res = res*10 + int(buf[pos]-'0')
pos++
}
return res
}
n := readInt()
if n == 0 {
return
}
a := make([]int, n)
S := 0
for i := 0; i < n; i++ {
a[i] = readInt()
S += a[i]
}
MOD := int64(998244353)
inv := make([]int64, S+1)
if S > 0 {
inv[1] = 1
for i := 2; i <= S; i++ {
inv[i] = (MOD - (MOD / int64(i))) * inv[MOD%int64(i)] % MOD
}
}
g := make([]int64, S+1)
g[0] = 0
for x := 1; x < S; x++ {
term1 := (int64(x) * int64(n-1)) % MOD
term2 := inv[S-x]
factor := (term1 * term2) % MOD
val := (g[x-1] - 1 + MOD) % MOD
g[x] = (factor * val) % MOD
}
f := make([]int64, S+1)
f[0] = 0
for x := 1; x <= S; x++ {
f[x] = (f[x-1] + g[x-1]) % MOD
}
ans := int64(0)
for i := 0; i < n; i++ {
ans = (ans + f[a[i]]) % MOD
}
ans = (ans - f[S] + MOD) % MOD
fmt.Println(ans)
}
```