Vận chuyển chất hóa học
Xem dạng PDFTiến sĩ Peter đang chuẩn bị cho một thí nghiệm quan trọng, nhưng ông ấy nhận ra phòng thí nghiệm đang thiếu rất nhiều chất hóa học. Ông ngay lập tức đặt một đơn hàng có $n$ chất hóa học từ ngân hàng hóa học, đánh số từ $0$ đến $n-1$. Các chất hóa học mà tiến sĩ đặt đều an toàn, tuy nhiên đơn hàng của ông lại có $m$ cặp chất có thể tác dụng và gây nguy hiểm. Vì vậy tiến sĩ yêu cầu các cặp chất đó phải được vận chuyển tách rời nhau.
Qua nhiều lần suy xét chi phí, bên vận chuyển quyết định chỉ sử dụng một xe để giao đơn hàng cho tiến sĩ và chia làm nhiều lần giao. Để tối ưu chi phí nhất, bên vận chuyển phải gộp nhiều chất hóa học lại thành một kiện hàng sao cho càng nhiều chất hóa học trong một kiện hàng càng tốt và giao đi nhưng vẫn phải tuân theo yêu cầu của tiến sĩ. Và họ cần biết số lượng chất hóa học nhiều nhất trong các kiện hàng để thuận tiện cho việc chọn xe vận tải.
Tuy nhiên, đơn hàng của tiến sĩ quá lớn, họ không thể nào sắp xếp tay và đếm số lượng chất hóa học trong mỗi kiện hàng được nên đã nhờ sự trợ giúp từ bạn. Là một lập trình viên ưu tú, hãy viết ra một chương trình hỗ trợ bên vận chuyển giao đơn cho tiến sĩ một cách "An toàn - Nhanh chóng - Tiết kiệm" nhé.
Dữ liệu vào
- Dòng đầu tiên gồm hai số $n$ và $m$ $(1 \le n \le 40, 0\le m \le n \times (n - 1)/2)$.
- $m$ dòng tiếp theo gồm các cặp chất hóa học có thể tác dụng và gây nguy hiểm $(u_i \neq v_i, (u_i, v_i) \neq (u_j, v_j))$.
Dữ liệu ra
- Dòng đầu tiên là số lượng chất hóa học nhiều nhất trong các kiện hàng.
- Dòng tiếp theo là các chất hóa học trong kiện hàng đó. Nếu có nhiều đáp án in ra một đáp án bất kì.
Ví dụ
Input
16 9
0 6
0 15
8 15
2 15
3 13
1 3
3 8
0 13
7 14
Output
12
1 2 4 5 6 7 8 9 10 11 12 13
Bình luận