Một chuỗi ký tự bao gồm các chữ cái thường của bảng chữ cái tiếng Anh và dấu hỏi được gọi là một từ có tham số (ví dụ, ~a??cd~, ~bcd~, ~??~). Hai từ có tham số được coi là tương tự nếu các ký tự dấu hỏi trong cả hai từ có thể được thay thế bằng bất kỳ chữ cái thường nào của bảng chữ cái tiếng Anh để tạo ra chuỗi kết quả giống nhau. Ví dụ, từ có tham số ~a???~ và ~?b?a~ được coi là tương tự vì bằng cách thay thế các dấu hỏi trong cả hai từ, có thể thu được từ ~abba~.
Mirko mới đây đã mua một bộ sưu tập các từ có tham số. Trong số ~N~ từ được tìm thấy trong bộ sưu tập, Mirko quan tâm đến có bao nhiêu cặp từ có tham số tương tự tồn tại. Tất cả các từ trong bộ sưu tập đều có cùng một số lượng ký tự, ~M~, và có thể có trường hợp một từ xuất hiện nhiều lần trong bộ sưu tập.
Input
- Dòng đầu tiên chứa số nguyên ~N~ ~(1 \leq N \leq 50 000)~ và ~M~ ~(1 \leq M \leq 6)~.
- Mỗi dòng trong số ~N~ dòng tiếp theo chứa một từ có tham số từ bộ sưu tập với đúng ~M~ ký tự.
Output
In ra tổng số cặp từ có tham số tương tự.
Chú ý
- ~30 \%~ điểm, sẽ có ~M ≤ 2~.
- ~30 \%~ điểm bổ sung, sẽ có ~M \leq 4~.
Sample Input 1
3 3
??b
c??
c?c
Sample Output 1
2
Sample Input 2
4 6
ab??c?
??kll?
a?k??c
?bcd??
Sample Output 2
3
Sample Input 3
5 2
??
b?
c?
?g
cg
Sample Output 3
8
Giải thích
Trong test đầu tiên, cặp giống nhau là ~(??b, c??)~ và ~(c??, c?c)~.
Bình luận