#include <bits/stdc++.h>
#define Tairitsu return 0;
#define lowbit(x) (x & -x)
using namespace std;
int n, m;
int f, a, b;
int road[1000005], def[1000005];
void add(int x, int y) {
for (; x <= n; x += lowbit(x)) road[x] += y;
}
int ask(int x) {
int ans = 0;
for (; x; x -= lowbit(x)) ans += road[x];
return ans;
}
int main() {
freopen("lakee.in","r",stdin);
freopen("lakee.out","w",stdout);
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) {
add(i, 1);
def[i] = 1;
}
for (int i = 1; i <= m; i++) {
scanf("%d%d%d", &f, &a, &b);
switch (f) {
case 0:
if (def[a]) add(a, -1), def[a] = 0;
else add(a, 1), def[a] = 1;
break;
case 1:
int dist1 = ask(b - 1) - ask(a - 1);
int dist2 = ask(n) - ask(b - 1) + ask(a - 1);
if (dist1 != b - a + 1 && dist2 != n - (b - a + 1)) printf("YES\n");
else printf("NO\n");
break;
}
}
Tairitsu
}