package main import . "fmt" import . "math/big" func main() { var n string Scan(&n) ds := make([]int, 10) for _, ch := range n { ds[int(ch)-'0']++ } const Mod = 998244353 ps := make([]int, len(n)+1) ps[0] = 1 for i := range ps[1:] { ps[i+1] = ps[i] * (i+1) % Mod } xs := make([]int, len(n)+1) xs[len(n)] = int(new(Int).ModInverse(NewInt(int64(ps[len(n)])),NewInt(Mod)).Int64()) for i := range xs[1:] { j := len(n) - i xs[j-1] = xs[j] * j % Mod } ans := 0 for i, d := range ds { if i == 0 || d == 0 { continue } m := ps[len(n)-1] for j, e := range ds { if i == j { m = m * xs[e-1] % Mod } else { m = m * xs[e] % Mod } } ans = (ans + m) % Mod } Println(ans) }