QBCIRARC - VOI06 Kênh xung yếu

Giới hạn
  • Thời gian: 0.6s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

 

Một hệ thống n máy tính (các máy tính được đánh số từ 1 đến n) được nối lại thành một mạng bởi m kênh nối, mỗi kênh nối hai máy nào đó và cho phép truyền tin một chiều từ máy này đến máy kia. Ta gọi một mạch vòng của mạng đã cho là một dãy các máy tính và các kênh nối chúng có dạng:

u 1 , e 1 , u 2 , ...,u i , e i , u i+1 , ..., u k-1 , e k-1 , u k , e k , u 1

Trong đó u 1 , u 2 , ..., u k là các máy tính khác nhau trong mạng, e i – kênh truyền tin từ máy u i đến máy u i+1 (i = 1, 2, ..., k-1), e k là kênh truyền tin từ máy u k đến máy u 1 . Một kênh truyền tin trong mạng được gọi là kênh xung yếu nếu như bất cứ mạch vòng nào của mạng cũng đều chứa nó.

Yêu cầu: Hãy xác định tất cả các kênh xung yếu của mạng đã cho.

Input

Dòng đầu tiên chứa 2 số nguyên dương n và m.

Dòng thứ i trong số m dòng tiếp theo mô tả kênh nối thứ i bao gồm hai số nguyên dương u­ i , v i cho biết kênh nối thứ i cho phép truyền tin từ máy u i đến máy v i .

Các số trên cùng một dòng được ghi cách nhau bởi dấu cách.

Output

Dòng đầu tiên ghi số nguyên k là số lượng kênh xung yếu trong mạng đã cho. Ghi k = -1 nếu mạng không chứa kênh xung yếu.

Nếu k>0 thì mỗi dòng trong số k dòng tiếp theo ghi thông tin về một kênh xung yếu tìm được theo qui cách mô tả giống như trong file dữ liệu vào. Đồng thời các kênh được in ra theo thứ tự từ điển

Example

Input:
2 2
1 2
2 1

Output:
2
1 2
2 1

Hạn chế:

Trong tất cả các test: n ≤ 1000, m ≤ 20000. Có 50% số lượng test với n ≤ 200.


  • Người up: cun
  • Nguồn bài: Vietnam Olympiad of Informatics 2006 - Bảng B