#include <bits/stdc++.h>
using namespace std;
int n;
int sum[3 * (int)1e6 + 10];
int prop[3 * (int)1e6 + 10];
bool prom[3 * (int)1e6 + 10];
const int N = 3 * (int)1e5 + 10;
int s[2 * N];
int l[N], r[N], k[N];
int add(int t, int L, int R, int l, int r) {
  if (prop[t] == 1) {
    sum[t] = s[R - 1] - s[L] + 1;
    prom[t] = 1;
    if (R - L > 1) {
      prop[2 * t + 1] = 1;
      prop[2 * t + 2] = 1;
    }
  }
  if (prop[t] == -1) {
    prom[t] = 0;
    sum[t] = 0;
    if (R - L > 1) {
      prop[2 * t + 1] = -1;
      prop[2 * t + 2] = -1;
    }
  }
  prop[t] = 0;
  int c;
  if (l == L && r == R) {
    c = s[R - 1] - s[L] + 1 - sum[t];
    sum[t] = s[R - 1] - s[L] + 1;
    if (R - L > 1) {
      prom[t] = 1;
      prop[2 * t + 1] = 1;
      prop[2 * t + 2] = 1;
    }
    return c;
  }
  int o = 0;
  c = (L + R) / 2;
  if (r > c) {
    o += add(2 * t + 2, c, R, max(l, c), r);
  }
  if (l < c) {
    o += add(2 * t + 1, L, c, l, min(c, r));
  }
  if (r > c && l < c) {
    if (!prom[t]) o += s[c] - s[c - 1] - 1;
    prom[t] = 1;
  }
  sum[t] += o;
  return o;
}
int del(int t, int L, int R, int l, int r) {
  if (prop[t] == 1) {
    prom[t] = 1;
    sum[t] = s[R - 1] - s[L] + 1;
    if (R - L > 1) {
      prop[2 * t + 1] = 1;
      prop[2 * t + 2] = 1;
    }
  }
  if (prop[t] == -1) {
    prom[t] = 0;
    sum[t] = 0;
    if (R - L > 1) {
      prop[2 * t + 1] = -1;
      prop[2 * t + 2] = -1;
    }
  }
  prop[t] = 0;
  int c;
  if (l == L && r == R) {
    c = sum[t];
    sum[t] = 0;
    if (R - L > 1) {
      prom[t] = 0;
      prop[2 * t + 1] = -1;
      prop[2 * t + 2] = -1;
    }
    return c;
  }
  int o = 0;
  c = (L + R) / 2;
  if (r > c) {
    o += del(2 * t + 2, c, R, max(l, c), r);
  }
  if (l < c) {
    o += del(2 * t + 1, L, c, l, min(c, r));
  }
  if (r > c && l < c) {
    if (prom[t]) o += s[c] - s[c - 1] - 1;
    prom[t] = 0;
  }
  sum[t] -= o;
  return o;
}
int main() {
  int t;
  int i, q;
  cin >> n >> q;
  int w = 0;
  for (i = 0; i < q; i++) {
    scanf("%d%d%d", &l[i], &r[i], &k[i]);
    s[w++] = (l[i]);
    s[w++] = (r[i]);
  }
  sort(s, s + w);
  w = unique(s, s + w) - s;
  for (i = 0; i < q; i++) {
    l[i] = lower_bound(s, s + w, l[i]) - s;
    r[i] = lower_bound(s, s + w, r[i]) - s;
    if (k[i] == 1) {
      add(0, 0, w, l[i], r[i] + 1);
    } else {
      del(0, 0, w, l[i], r[i] + 1);
    }
    printf("%d\n", n - sum[0]);
  }
}
