{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"MD","content":"Công ty **XYZ** hiện có $n$ nhân viên, mỗi nhân viên sẽ thuộc một phòng ban nào đó. Ban đầu mỗi nhân viên sẽ làm việc ở phòng ban của riêng họ. Nhận thấy cách làm việc này có vấn đề, giám đốc công ty đã thuê một người quản lý để sắp xếp lại bộ máy làm việc. Gọi $S(x)$ là phòng ban mà nhân viên $x$ hiện tại đang làm việc. Người quản lý có thể thực hiện các hành động sau:\n- Sát nhập $S(x)$ và $S(y)$ thành một phòng ban lớn hơn trong đó $x,y$ ($1\\le x,y\\le n$) là chỉ số của hai nhân viên nào đó.\n- Sát nhập $S(x),S(x+1),\\ldots,S(y)$ thành một phòng ban lớn hơn trong đó $x,y$ ($1\\le x\\le y\\le n$) là chỉ số của hai nhân viên nào đó.\n\nTại một số thời điểm người quản lý cần biết hai nhân viên $x$ và $y$ ($1\\le x,y\\le n$) có thuộc cùng một phòng ban hay không."}},{"title":"Input","value":{"format":"MD","content":"Dòng đầu tiên gồm hai số nguyên $n,q$ ($n\\le 2\\cdot 10^5,q\\le 5\\cdot 10^5$) trong đó $q$ là số hành động và câu hỏi của người quản lý.\n\n$q$ dòng tiếp theo, mỗi dòng gồm ba số nguyên $type, x, y$. Nếu $type\u003d1$ hoặc $type\u003d2$ thì người quản lý sẽ thực hiện hành động sát nhập phòng ban tương ứng, ngược lại người quản lý cần biết $x$ và $y$ có cùng phòng ban hay không."}},{"title":"Output","value":{"format":"MD","content":"Với mỗi câu hỏi của người quản lý in ra `YES` hoặc `NO` trên một dòng."}},{"title":"Sample 1","value":{"format":"MD","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e8 6\n3 2 5\n1 2 5\n3 2 5\n2 4 7\n2 1 2\n3 1 7\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eNO\nYES\nYES\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}