Vào mỗi mùa hè, FYT luôn tổ chức team building để mọi người hiểu rõ nhau hơn.
Team building lần này, FYT có thành viên tham gia, các thành viên được đánh số từ đến . Lớp trưởng DHK đang có ý tưởng về trò chơi cho team building lần này, mỗi trò chơi có yêu cầu như sau:
Trò chơi : Yêu cầu chia thành viên thành nhóm, mỗi nhóm thành viên. Hai thành viên bất kì trong cùng một nhóm cần phải quen nhau.
Trò chơi : Yêu cầu chia thành viên thành nhóm, mỗi nhóm thành viên. Hai thành viên cùng nhóm với nhau phải quen nhau.
Biết rằng mọi người trong FYT đều rất hòa đồng nên trong các thành viên tham gia lần team building này, mỗi thành viên đều quen ít nhất người khác (quan hệ quen nhau là quan hệ hai chiều, quen thì cũng quen ).
Bạn hãy giúp lớp trưởng DHK kiểm tra xem liệu có thể chơi được một trong hai trò chơi không, nếu có thì in ra cách chia nhóm thỏa mãn (nếu có nhiều cách chia thỏa mãn, bạn có thể in ra bất kì cách chia nào).
Dữ liệu vào:
Dòng đầu tiên chứa một số nguyên dương ;
Mỗi dòng trong dòng tiếp theo gồm kí tự, kí tự thứ của dòng thứ bằng khi và chỉ khi thành viên thứ quen thành viên thứ , và bằng nếu ngược lại.
Dữ liệu ra:
Dòng đầu tiên in ra NO nếu không thể chọn một trong hai trò chơi để chơi, YES nếu ngược lại;
Nếu dòng đầu tiên là YES thì dòng thứ in ra hoặc lần lượt ứng với việc chơi được trò chơi hoặc chơi được trò chơi ;
Nếu chơi được trò chơi thì dòng tiếp theo, mỗi dòng lần lượt in ra danh sách thành viên của từng nhóm;
Nếu chơi được trò chơi thì dòng tiếp theo, mỗi dòng lần lượt in ra thành viên của từng nhóm.
Bạn có thể in danh sách nhóm theo bất kì thứ tự nào.
Ví dụ:
Dữ liệu vào:
1
0111
1011
1101
1110
Dữ liệu ra:
YES
1
1 2
3 4
Dữ liệu vào:
1
0111
1000
1000
1000
Dữ liệu ra:
NO
Giải thích:
Trong ví dụ thứ nhất, với đồ thị như trên ta có thể chơi được trò chơi thứ nhất, với nhóm là và .
Trong ví dụ thứ hai, với đồ thị như trên ta có thể thấy không thể chơi trò chơi nào trong hai trò chơi trong đề bài.