#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
struct node {
  int x, y;
  friend bool operator<(node a, node b) {
    return a.x == b.x ? a.y < b.y : a.x < b.x;
  }
};
set<pair<node, node> > se;
bool vis[3][maxn];
int main() {
  int n, q;
  scanf("%d%d", &n, &q);
  for (int i = 1; i <= q; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    int opx = 3 - x;
    if (!vis[x][y]) {
      vis[x][y] = true;
      for (int k = -1; k <= 1; k++) {
        if (y + k <= 0 || y + k > n) continue;
        if (vis[opx][y + k]) {
          se.insert(make_pair((node){x, y}, (node){opx, y + k}));
          se.insert(make_pair((node){opx, y + k}, (node){x, y}));
        }
      }
    } else {
      vis[x][y] = false;
      for (int k = -1; k <= 1; k++) {
        if (y + k <= 0 || y + k > n) continue;
        if (vis[opx][y + k]) {
          se.erase(make_pair((node){x, y}, (node){opx, y + k}));
          se.erase(make_pair((node){opx, y + k}, (node){x, y}));
        }
      }
    }
    if (se.empty()) {
      puts("YES");
    } else {
      puts("NO");
    }
  }
}
