کدهای تقریبا بدون پیشوند
Problem
در تئوری کدگذاری، کدهای بدون پیشوند اغلب به عنوان مجموعه ای از کلمات استفاده می شوند که هیچ کدام پیشوند نیستند. گفته می شود که کلمه α
پیشوند کلمه &بتا;
است اگر α
از &بتا;
با حذف به دست آمده باشد. صفر یا بیشتر کاراکتر در پایان. برای مثال، کلمات a
، ab
و aba
پیشوندهای کلمه aba
هستند. به عنوان مثال، مجموعه کلمات aba
، aa
و bac
یک کد بدون پیشوند است، در حالی که مجموعه abac
, aba
, ba
وجود ندارد زیرا کلمه aba
پیشوندی از کلمه abac
است.
پروفسور دیشیفر در آزمایشگاه تحقیقاتی اطلاعات بی فایده کار می کند و اختراع جدید خود را در زمینه کدهای نزدیک به پیشوند مطالعه می کند. مجموعهای از کلمات را یک کد تقریباً بدون پیشوند از سطح k
مینامند اگر طول بزرگترین پیشوند مشترک از هر دو کلمه از مجموعه از k
تجاوز نکند. به عنوان مثال، مجموعه abac
، abc
، ba
یک کد سطح 2 تقریباً بدون پیشوند و مجموعه abac
است. , abab
, ba
وجود ندارند زیرا طولانیترین پیشوند رایج abac
و abab
3 است.
وظیفه بعدی که پروفسور دسیفرو برای دستیاران آزمایشگاه خود تعیین کرد به شرح زیر است: با توجه به مجموعه ای از کلمات و یک عدد k
، لازم است که از بین موارد داده شده انتخاب شود. کلمات حداکثر مجموعه، که تقریباً کد سطح بدون پیشوند k
است. شما به عنوان یک دستیار آزمایشگاهی جوان، وظیفه نوشتن برنامه مربوطه را دارید.
ورودی
خط اول فایل ورودی شامل دو عدد صحیح است: n
و k
تعداد کلمات موجود در مجموعه داده شده و سطح کد تقریباً بدون پیشوندی که باید ساخته شود ( \(1<= n <= 100000\)، \(0 <= k <= 200\) ). خطوط n
بعدی هر کدام شامل یک کلمه است. کلمات از حروف کوچک الفبای لاتین تشکیل شده اند. طول هر کلمه از 1 تا 200 کاراکتر است. طول کل همه کلمات از \(10^6\) تجاوز نمی کند. همه کلمات متفاوت هستند.
خروجی
خروجی یک عدد
m
- حداکثر تعداد کلماتی که میتوان از مجموعه دادهشده انتخاب کرد تا یک کد سطح تقریباً بدون پیشوند
k
را تشکیل دهند.
نمونهها
<سر>
# |
ورودی |
خروجی |
<بدن>
1 |
6 2
آبا
باکابا
abacaba
باکا
abac
کابا
|
3 |