package main import ( "bufio" "fmt" "os" "reflect" "sort" "strconv" "strings" ) func main() { in := bufio.NewScanner(os.Stdin) in.Scan() datas := strings.Fields(in.Text()) n, _ := strconv.Atoi(datas[0]) x := datas[len(datas)-2] k, _ := strconv.Atoi(datas[len(datas)-1]) var brothers []string for i := 1; i <= n; i++ { if isBrother(x, datas[i]) { brothers = append(brothers, datas[i]) } } size := len(brothers) fmt.Println(size) if size >= k { sort.Strings(brothers) fmt.Println(brothers[k-1]) } } func isBrother(a, b string) bool { if a == b || len(a) != len(b) { return false } aa := strings.Split(a, "") bb := strings.Split(b, "") sort.Strings(aa) sort.Strings(bb) return reflect.DeepEqual(aa, bb) }