لتثبيت الحزم في نظام التشغيل Vinux، يستخدم Vasya برنامج Vum، مدير الحزم الحديث.
لكل حزمة عدة إصدارات يمكن تثبيتها. لا يمكن تثبيت أكثر من إصدار واحد للتطبيق نفسه في آن واحد. لنسمِّ إصدارًا محددًا من تطبيق محدد حزمة. وبما أن إصدارات محددة من تطبيقات مختلفة قد تكون غير متوافقة مع بعضها، يوجد في Vum مفهوم التعارضات. كل تعارض هو مجموعة حزم لا يمكن تثبيت أكثر من حزمة واحدة منها. تؤدي محاولة تثبيت أكثر من حزمة من قائمة تعارض واحدة إلى انهيار النظام، وهذا ما لا يريده Vasya.
قد تتعارض الإصدارات المختلفة لأي تطبيق أو لا تتعارض. ويمكن أن يضم التعارض عدة إصدارات من التطبيق نفسه، بما فيها جميع إصداراته.
نظرًا إلى أن نظام وصف التعارضات في Vum بدائي إلى حد ما، لا يمكن إدراج كل حزمة إلا في تعارض واحد.
يريد Vasya تثبيت $N$ تطبيقات مختلفة دون التسبب في انهيار Vinux. عليه اختيار إصدارات التطبيقات دون خرق القواعد السابقة، لكن خوارزميات حل الاعتماديات الشاملة في Vum لا تستطيع التعامل مع هذه المهمة. يطلب Vasya المساعدة في مدير الحزم الخاص به.
الإدخال
يحتوي السطر الأول من ملف الإدخال على عدد صحيح $N$ — عدد التطبيقات التي يريد Vasya تثبيتها ($1 \le N \le 200$).
تقدم الأسطر $N$ التالية أوصاف التطبيقات، بما فيها قوائم إصداراتها. يتكون وصف التطبيق من الحقول التالية المفصولة بمسافات:
- اسم التطبيق — سلسلة من الأحرف اللاتينية الصغيرة، طولها من 1 إلى 10 محارف؛
- عدد الإصدارات — عدد صحيح موجب لا يتجاوز $1\,000$؛
- أرقام الإصدارات — أعداد صحيحة موجبة مرتبة تصاعديًا.
أرقام التطبيقات لا تتجاوز $100\,000$. جميع أسماء التطبيقات مختلفة.
يحتوي السطر التالي على العدد $K$ — عدد التعارضات ($0 \le K \le 500$).
تصف الأسطر $K$ التالية التعارضات. يبدأ وصف التعارض بعدد صحيح موجب $T$ — عدد الحزم في التعارض. ثم تُدرج $T$ حزم مفصولة بمسافات. لكل حزمة يُعطى اسم التطبيق متبوعًا برقم الإصدار.
من المضمون أن الحزم المدرجة في التعارضات لا تتكرر أبدًا، وأن جميع الإصدارات مذكورة في أوصاف التطبيقات.
الإخراج
إذا استحال تثبيت التطبيقات $N$ كلها دون تعارضات، فيجب أن يحتوي السطر الوحيد من ملف الإخراج على الكلمة No. وإذا كان ذلك ممكنًا، فيجب أن يحتوي السطر الأول على الكلمة Yes، وأن يسرد السطر الثاني أرقام الإصدارات الواجب تثبيتها لتحقيق ذلك، مفصولة بمسافات.
يجب طباعة إصدارات التطبيقات $N$ بالترتيب نفسه الذي وُصفت به التطبيقات في ملف الإدخال. إذا وُجدت عدة طرق ممكنة لاختيار التطبيقات، فاطبع أي واحدة منها.
أمثلة
الإدخال 1
3 vim 3 1 2 3 nano 2 5 8 python 2 2 3 2 2 vim 3 nano 8 3 vim 1 nano 5 vim 2
الإخراج 1
Yes 2 8 2
الإدخال 2
2 firefox 1 38 chrome 1 46 1 2 firefox 38 chrome 46
الإخراج 2
No
ملاحظة
يحتوي المثال الأول على تعارضين. يمنع الأول تثبيت الإصدار الثالث من vim والإصدار الثامن من nano في آن واحد. وينص الثاني على أنه لا يمكن تثبيت إلا واحدة من الحزم التالية — الإصدار الأول من vim، والخامس من nano، والثاني من vim — أو عدم تثبيت أي منها. الحلول الصحيحة هي:
1 8 21 8 32 8 22 8 33 5 23 5 3
في المثال الثاني، يوجد تطبيقان، لكل منهما إصدار واحد. لكن التعارض الوحيد يمنع تثبيت التطبيقين معًا.