Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

LT2509 - Đồ thị liên thông

Đồ thị: Gồm một tập các đỉnh được nối với nhau bằng các cạnh. Nếu không không được chỉ rõ trong ngữ cảnh, đồ thị được hiểu là đồ thị đơn.

Liên thông: Nếu giữa hai điểm bất kỳ của một đồ thị đều có thể thiết lập một đường đi từ đỉnh này đến đỉnh kia, đồ thị được coi là liên thông; nếu không, đồ thị được coi là không liên thông. Một đồ thị được coi là hoàn toàn không liên thông nếu không có đường đi giữa hai đỉnh bất kỳ trong đồ thị. Đây chỉ là một cái tên khác để miêu tả một đồ thị rỗng hoặc một tập độc lập.

Yêu cầu:

Cho đơn đồ thị vô hướng liên thông G = (V, E) gồm n đỉnh và m cạnh, các đỉnh được đánh số từ 1 tới n và các cạnh được đánh số từ 1 tới m. Tìm số thành phần liên thông của đồ thị.

Hint:

Đây là 1 bài cơ bản áp dụng các thuật toán tìm kiếm trên đồ thị DFS & BFS

Input

Dòng 1: Chứa hai số n, m .

M dòng tiếp theo: Dòng thứ i có dạng 2 số nguyên u, v. Trong đó u, v là chỉ số hai đỉnh đầu mút của cạnh thứ i.

Output

Dòng 1: Ghi số k là số thành phần liên thông của đồ thị.

k dòng tiếp theo: Mỗi dòng ghi ra theo cấu trúc:

Đầu tiên ghi số p là số đỉnh thuộc thành phần liên thông này. p số tiếp theo ghi chỉ số các đỉnh thuộc thành phần liên thông này.

Example

Input:
7 6
1 2
1 3
2 3
5 6
6 7
5 7

Output:
3
3 1 2 3
1 4
3 5 6 7

Giới hạn:
1 <= n <= 100
1 <= m <= n(n-1)/2


Được gửi lên bởi:special_one
Ngày:2009-01-04
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:C CSHARP CPP JAVA PAS-FPC

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.