Kết nối


Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Cho một đồ thị gồm n đỉnh ban đầu chưa đỉnh nào kết nối với đỉnh nào. Chúng ta thực hiện lần lượt 2 loại truy vấn sau:

1 u v: Thêm một cạnh vô hướng nối 2 nút u và v (u và v luôn khác nhau)

2 u v: Kiểm tra xem đến thời điểm hiện tại hai nút u và v có liên thông với nhau không (tồn tại một đường đi từ u đến v trong đồ thị)? (u và v luôn khác nhau)

Input

Dòng đầu chứa số nguyên dương n là số đỉnh của đồ thị và số truy vấn m \((1 \le n,m \le 10^5)\)

Tiếp theo m dòng mỗi dòng là một truy vấn gồm 3 giá trị k u v trong đó k là loại truy vấn nhận giá trị 1 hoặc 2 còn u,v khác nhau nằm trong đoạn [1..n]

Output

Với mỗi truy vấn loại 2 in ra "yes" hoặc "no"

Ví dụ

Input

8 7
1 1 2
2 1 4
1 2 4
1 5 4
2 1 4
2 8 3
2 5 2

Output

no
yes
no
yes
tichpx

Comments

There are no comments at the moment.