package main import . "fmt" const Mod = 998244353 func main() { var n string Scan(&n) ds := make([]int, 10) for _, ch := range n { ds[int(ch)-'0']++ } xs := make([]int, len(n)+1) for i := range xs { for _, d := range ds { if i <= d { xs[i]++ } } } ans := 0 for i, d := range ds { if i == 0 || d == 0 { continue } xs[d]-- ans += calc(len(n)-1, xs) ans %= Mod xs[d]++ } Println(ans) } func calc(n int, xs []int) int { cs := make([]int, n+1) for i := range cs { cs[i] = i } for i := range xs { j := len(xs)-1 - i if j == 0 { break } x := xs[j] m := n / j for k := m; x > 0 && k >= 1; k-- { for x > 0 && cs[k*j] % j == 0 { cs[k*j] /= j x-- } } } r := 1 for _, c := range cs[1:] { r = r * c % Mod } return r }