Module: Chức năng tiền tố, chức năng Z


Problem

9 /10


Mã gần như không có tiền tố

Problem

Trong lý thuyết mã hóa, các mã không có tiền tố thường được sử dụng như một tập hợp các từ, không có từ nào là tiền tố. Từ α được cho là tiền tố của từ β nếu α được lấy từ β bằng cách xóa không hoặc nhiều ký tự cuối cùng. Ví dụ: các từ a, ababa là tiền tố của từ aba. Ví dụ: bộ từ aba, aabac là mã không có tiền tố, trong khi bộ abac , aba, ba không có mặt vì từ aba là tiền tố của từ abac.

 Professor Decipher làm việc trong Phòng thí nghiệm Nghiên cứu Thông tin Vô dụng và nghiên cứu phát minh mới của ông về mã gần tiền tố. Một tập hợp các từ được gọi là mã cấp độ gần như không có tiền tố k nếu tiền tố chung lớn nhất của hai từ bất kỳ trong tập hợp không vượt quá độ dài k. Ví dụ: bộ abac, abc, ba là mã cấp 2 gần như không có tiền tố và bộ abac , abab, ba không tồn tại vì tiền tố chung dài nhất của abac abab là 3.

 Nhiệm vụ tiếp theo mà Giáo sư Decifro đặt ra cho các trợ lý phòng thí nghiệm của mình như sau: đưa ra một tập hợp các từ và một số k, cần phải chọn từ các từ đã cho các từ được đặt tối đa, gần như là mã mức không có tiền tố k. Bạn, với tư cách là trợ lý phòng thí nghiệm cấp dưới, được chỉ định viết chương trình tương ứng.

 
Đầu vào
Dòng đầu tiên của tệp đầu vào chứa hai số nguyên: nk số lượng từ trong tập hợp đã cho và mức mã gần như không có tiền tố sẽ được tạo ( \(1<= n <= 100000\), \(0 <= k <= 200\) ). n dòng tiếp theo mỗi dòng chứa một từ. Các từ bao gồm các chữ cái viết thường của bảng chữ cái Latinh. Độ dài của mỗi từ là từ 1 đến 200 ký tự. Tổng độ dài của tất cả các từ không vượt quá \(10^6\). Tất cả các từ đều khác nhau.
 
Đầu ra
Xuất một số duy nhất m - số lượng từ tối đa có thể được chọn từ tập hợp đã cho để chúng tạo thành một mã cấp độ k gần như không có tiền tố. 

 

Ví dụ
<đầu>
# Đầu vào Đầu ra
1
6 2
aba
bacaba
abacaba
baca
bac
caba
3