OneGCD

Xem PDF

Điểm: 400 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho \(G\) là đồ thị vô hướng liên thông không chứa khuyên (khuyên là cạnh nối một đỉnh với chính nó) với \(N\) đỉnh và \(M\) cạnh. Các đỉnh của đồ thị được đánh số từ l đến \(N\). Hãy tìm cách gán cho mỗi cạnh của \(G\) một nhãn là một số từ 1 đến \(M\) sao cho không có hai cạnh nào có cùng nhãn, và mồi đỉnh với bậc lớn hơn 1, ước chung lớn nhất của các nhãn trên các cạnh kề nó là 1.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(N\)\(M\) được ghi cách nhau bởi dấu cách (\(N < 10^5; M < 250000\));
  • Mỗi dòng trong số \(M\) dòng tiếp theo chứa hai số \(x\)\(y\) được ghi cách nhau bởi dấu cách, cho biết có cạnh nối giữa các nút \(x\)\(y\).

Output

  • Ghi ra \(M\) dòng, mỗi dòng chứa ba số nguyên dương \(x,y,v\) được ghi cách nhau bởi dấu cách cho biết cạnh (\(x, y\)) được gán nhãn \(v\).

Example

Test 1

Input
5 6
1 2
2 3
1 3
4 1
3 4
3 5 
Output
1 2 2
1 4 1
1 3 3
3 2 5
3 4 4 
3 5 6
Note

Đồ thị có 5 đinh và 6 cạnh. Một cách gán nhãn cho các cạnh được cho trong hình vẽ minh họa (nhãn là các số màu dở bên cạnh các cạnh) thỏa mãn điều kiện đầu bài. Thực vậy:

  • Với đỉnh 1: Nhãn của ba cạnh kề nó là 2, 1 và 3 có \(UCLN (2, 1,3)= 1\).
  • Với đỉnh 2: Nhãn của hai cạnh kề nó là 2 và 5 có \(UCLN (2, 5) = 1\).
  • Với đỉnh 3: Nhãn của bốn cạnh kề nó là 3, 4, 5 và 6 có \(UCLN (3, 4, 5, 6) = 1\).
  • Với đỉnh 4: Nhãn của hai cạnh kề nó là 1,4 có \(UCLN (2, 1,3)= 1\).
  • Với đỉnh 5: Đỉnh này có bậc bằng 1, do đó không cần kiểm tra điều kiện.

Bình luận

Không có bình luận nào.