#include <bits/stdc++.h>
int v[200002], v2[200002];
int n, q, con, x, y, i, aux;
int func(int a) { return v[a] = v[a] == a ? a : func(v[a]); }
int main() {
  scanf("%d%d", &n, &q);
  for (i = 1; i <= n; i++) {
    v[i] = i;
    v2[i] = i + 1;
  }
  while (q--) {
    scanf("%d%d%d", &con, &x, &y);
    if (con == 1) {
      v[func(x)] = func(y);
    } else if (con == 2) {
      while (x < y) {
        v[func(x)] = func(y);
        aux = v2[x];
        v2[x] = v2[y];
        x = aux;
      }
    } else if (con == 3) {
      printf("%s\n", func(x) == func(y) ? "YES" : "NO");
    }
  }
  return 0;
}
