Largest Compatible Team Selection
Khi Petya lớn lên và bước vào trường đại học, cậu bắt đầu tham gia các kỳ thi lập trình ACM. Về sau, cậu nhận ra mình không thích cách các kỳ thi ACM được tổ chức: mỗi đội chỉ được phép có đúng ba thành viên, khiến cậu không thể đưa tất cả bạn bè cùng tham gia thi đấu và không thể phân chia nhiệm vụ một cách hiệu quả giữa các thành viên. Do đó, cậu quyết định tự tổ chức kỳ thi của riêng mình mang tên PFAST Inc., viết tắt của Petr and Friends Are Solving Tasks Corporation. Luật thi đấu của PFAST Inc. cho phép mỗi đội có số lượng thành viên tùy ý.
Để thể thức thi đấu này trở nên phổ biến, Petya đã tổ chức giải đấu của riêng mình. Nhằm chuẩn bị đội tuyển tham dự cuộc thi theo luật của PFAST Inc., cậu đã chọn ra một số tình nguyện viên (tối đa 16 người) và quyết định lập một đội từ những người này. Petya hiểu rất rõ rằng nếu trong đội có hai người không hòa thuận với nhau thì cả đội sẽ thi đấu kém hiệu quả. Hãy giúp Petya lập một đội có nhiều thành viên nhất có thể, sao cho tất cả các thành viên trong đội đều đôi một hòa thuận với nhau.
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên $n$ ($1 ≤ n ≤ 16$) và $m$ ($0 ≤ m ≤ \frac{n(n - 1)}{2}$), lần lượt là số lượng tình nguyện viên và số lượng cặp tình nguyện viên không hòa thuận.
Trong $n$ dòng tiếp theo, mỗi dòng chứa một chuỗi ký tự $s$ ($1 ≤ |s| ≤ 10$) biểu thị tên của một tình nguyện viên, chỉ gồm các chữ cái tiếng Anh in hoa hoặc in thường. Tất cả $n$ tên đều đôi một khác nhau và có phân biệt chữ hoa, chữ thường.
Trong $m$ dòng tiếp theo, mỗi dòng chứa hai tên cách nhau bởi một dấu cách, biểu thị một cặp tình nguyện viên không hòa thuận với nhau. Mỗi cặp tình nguyện viên không hòa thuận chỉ xuất hiện đúng một lần trong dữ liệu vào.
Kết quả
Dòng đầu tiên in ra một số nguyên duy nhất $k$, biểu thị số lượng thành viên trong đội được chọn.
Trong $k$ dòng tiếp theo, in ra tên của các thành viên trong đội theo thứ tự từ điển tăng dần, mỗi người trên một dòng.
Nếu có nhiều phương án thỏa mãn cùng số lượng thành viên lớn nhất, có thể in ra bất kỳ phương án nào trong số đó. Lưu ý rằng Petya có thể không phải là một thành viên của đội được chọn.
Chấm điểm
Subtask 1 (35 points). Đồ thị mâu thuẫn là đồ thị hai phía (không chứa chu trình độ dài lẻ)
Subtask 2 (65 points). $1 ≤ n ≤ 16$; $0 ≤ m ≤ \frac{n(n - 1)}{2}$
Ví dụ
Input
3 1
Petya
Vasya
Masha
Petya Vasya
Output
2
Masha
Petya
Ghi chú
Trong ví dụ, có một cặp không hòa thuận là Petya và Vasya. Do đó, chỉ có thể chọn tối đa $2$ thành viên trong đội, chẳng hạn như Masha và Petya. Tên của các thành viên được in ra theo đúng thứ tự từ điển tăng dần.