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)
}