در این سوال، منظور از کلمه لغتنامه لیستی از کلمات است که به تریب حروف الفبا مرتب شدهاند و توصیف آنها در همان زبان به همراهشان آمده است. لغتنامه باید توصیف هر کلمهای که برای توصیف کلمهای دیگر به کار رفته است را داشته باشد.اگر لغتنامهای $N$ کلمه را بشناسد آنگاه این لغتنامه دقیقا $N$ کلمه متفاوت خواهد داشت. همچنین ما میدانیم در لغتنامه هیچ کلمهای برای توصیف خودش به کار نرفته است.
یک زیرلغتنامه مجموعهای از کلمههای یک لغتنامه است که خود به تنهایی بتواند لغتنامهای باشد با توجه به شرایط ذکر شده. به عنوان یک پروژه زبان شناسی ما میخواهیم یک پایگاه دانش واژگان درست کنیم که دانشی است که با لغات بیان میشود. برای این کار ما باید دانشمان را بر پایه لغتنامه بسازیم.
برای کامپیوتر بسیار سخت است که لغات را به طور خودکار مطالعه کند. برای همین ما تصمیم گرفتهایم تا بعضی از لغات رایج را به آن یاد بدهیم. ما از یک زیرلغتنامه مناسب شروع می کنیم. بعد از یاد گرفتن لغتهای آن، کامپیوتر میتواند دانش خود را افزایش دهد به آن لغتنامه به صورت لغت به لغت. برای مثال لغت $"xyz"$ به دانستههای کامپیوتر اضافه می شود اگر کامپیوتر معنی تمام لغات به کار رفته در توصیف $"xyz"$ را بداند. از شما خواسته شده است تا برنامهای بنویسید که کوچکترین زیرلغتنامه قابل گسترش را پیدا کند.
ورودی از چند سناریو تشکیل شده است. در خط اول هر سناریو عدد $n$ ($1 \le n \le 100$) تعداد کلمههای لغتنامه آمده است. در هر کدام از $n$ خط بعد یک کلمه به همراه توصیفش آمده است(حداکثر ۳۰ کلمه دارد). کلمهها با فاصله از هم جدا شدهاند و از حروف کوچک انگیلیسی تشکیل شدهاند و حداکثر ۲۵ حرف دارند.
برای هر سناریو در خط اول تعداد کلمههای زیرلغتنامه را چاپ کنید و در خط بعد کلمههای آن را مرتب بر اساس حروف الفبا چاپ کنید.(با فاصله از هم جدا باشند)