package main import ( "fmt" ) func fact(n int) int { if n == 1 { return 1 } else { return n * fact(n - 1) } } func push_char(str []rune) map[rune]int { m := make(map[rune]int) for _,c := range str { _,ok := m[c] if ok { m[c] = m[c] +1 } else { m[c] = 1 } } return m } func main() { var str string fmt.Scan(&str) s2 := []rune(str) num := fact(len(s2)) charmap := push_char(s2) for _,v := range charmap { num /= fact(v) } num-- fmt.Println(num) }