package main import ( "fmt" "sort" "strconv" "strings" ) func main() { var s string fmt.Scan(&s) m := make(map[rune]int) for _, c := range s { m[c]++ } vk := make([]string, len(m)) idx := 0 for k, v := range m { vk[idx] = fmt.Sprintf("%d/%c",v,k) idx++ } sort.Slice(vk, func(i, j int) bool { a1 := strings.Split(vk[i], "/") a2 := strings.Split(vk[j], "/") v1, _ := strconv.Atoi(a1[0]) v2, _ := strconv.Atoi(a2[0]) if v1 == v2 { return a1[1] < a2[1] } else { return v1 > v2 } }) for _, v := range vk { fmt.Print(strings.Split(v, "/")[1]) } }