Khi nghiên cứu về bài toán đẳng cấu đồ thị, Pog đã gặp phải một số khó khăn. Như mọi người đã biết, đẳng cấu đồ thị là một bài toán nổi tiếng trong lý thuyết độ phức tạp tính toán, và độ phức tạp chính xác của nó vẫn chưa được xác định hoàn toàn. Do đó, Pog quyết định sửa đổi định nghĩa về bài toán đẳng cấu đồ thị.
Trước hết, trong một đồ thị vô hướng có trọng số $G$, trọng số của một đường đi $u \to x_1 \to \dots \to x_k \to v$ được định nghĩa là giá trị lớn nhất của tất cả các trọng số cạnh trên đường đi đó.
Tiếp theo, khoảng cách $\text{dis}_{G,u,v}$ giữa hai đỉnh khác nhau $u, v$ ($u \neq v$) trên đồ thị $G$ được định nghĩa là giá trị nhỏ nhất trong tất cả các trọng số của các đường đi từ $u$ đến $v$. Nếu $u$ và $v$ không liên thông (tức là không tồn tại đường đi từ $u$ đến $v$), thì ta định nghĩa $\text{dis}_{G,u,v} = +\infty$.
Hai đồ thị $G_1, G_2$ có cùng $n$ đỉnh, được đánh số từ $1, 2, \dots, n$, được gọi là đẳng cấu khi và chỉ khi với mọi cặp đỉnh $u, v$ ($1 \le u, v \le n, u \neq v$), ta có $\text{dis}_{G_1,u,v} = \text{dis}_{G_2,u,v}$. Lưu ý rằng định nghĩa này khác với đẳng cấu thông thường, vì không cho phép đánh số lại các đỉnh.
Bây giờ, hãy giúp Pog xác định xem hai đồ thị cho trước có đẳng cấu theo định nghĩa mới này hay không.
Dữ liệu vào
Bài toán gồm nhiều bộ dữ liệu. Dòng đầu tiên chứa một số nguyên $T$ ($1 \le T \le 10^4$), biểu thị số lượng bộ dữ liệu.
Đối với mỗi bộ dữ liệu: Dòng đầu tiên chứa ba số nguyên $n, m_1, m_2$ ($1 \le n \le 10^5, 1 \le m_1, m_2 \le 2 \times 10^5$), biểu thị số đỉnh của đồ thị và số cạnh của $G_1, G_2$.
Tiếp theo là $m_1$ dòng, mỗi dòng chứa ba số nguyên $u, v, w$ ($1 \le u, v \le n, 1 \le w \le 10^9$), biểu thị một cạnh trên $G_1$.
Tiếp theo là $m_2$ dòng, mỗi dòng chứa ba số nguyên $u, v, w$ ($1 \le u, v \le n, 1 \le w \le 10^9$), biểu thị một cạnh trên $G_2$.
Đảm bảo rằng tổng $n$ trong $T$ bộ dữ liệu không vượt quá $10^5$, tổng $m_1$ và tổng $m_2$ đều không vượt quá $2 \times 10^5$. Lưu ý rằng đồ thị có thể chứa đa cạnh, khuyên (tự vòng), và có thể không liên thông.
Dữ liệu ra
Đối với mỗi bộ dữ liệu: In ra một dòng chứa một chuỗi ký tự, nếu đẳng cấu thì in ra YES, ngược lại in ra NO (không phân biệt chữ hoa chữ thường).
Ví dụ
Dữ liệu vào 1
3 2 1 1 1 2 1 1 2 2 2 1 1 1 2 1 1 2 1 3 3 3 1 2 1 1 3 1 2 3 2 1 2 1 1 3 2 2 3 1
Dữ liệu ra 1
NO YES YES