#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 10;
int ll[maxn * 50], rr[maxn * 50], sum[maxn * 50], lazy[maxn * 50];
int id;
void push_down(int l, int r, int &rt) {
  if (lazy[rt] == -1) return;
  int mid = l + r >> 1;
  if (l != r) {
    if (ll[rt] == 0) ll[rt] = ++id;
    if (rr[rt] == 0) rr[rt] = ++id;
    lazy[ll[rt]] = lazy[rt];
    lazy[rr[rt]] = lazy[rt];
    sum[ll[rt]] = (mid - l + 1) * lazy[rt];
    sum[rr[rt]] = (r - mid) * lazy[rt];
  }
  lazy[rt] = -1;
}
void change(int tl, int tr, int v, int l, int r, int &rt) {
  if (!rt) rt = ++id;
  if (r < tl || tr < l) return;
  if (tl <= l && r <= tr) {
    lazy[rt] = v;
    sum[rt] = (r - l + 1) * v;
    return;
  }
  push_down(l, r, rt);
  int mid = l + r >> 1;
  change(tl, tr, v, l, mid, ll[rt]);
  change(tl, tr, v, mid + 1, r, rr[rt]);
  sum[rt] = sum[ll[rt]] + sum[rr[rt]];
}
int main() {
  int l, r, x, y, z, rt, n, m;
  while (scanf("%d%d", &n, &m) != EOF) {
    id = rt = 0;
    memset(ll, 0, sizeof ll);
    memset(rr, 0, sizeof rr);
    memset(sum, 0, sizeof sum);
    memset(lazy, -1, sizeof lazy);
    while (m--) {
      scanf("%d%d%d", &x, &y, &z);
      if (z == 1)
        change(x, y, 1, 1, n, rt);
      else
        change(x, y, 0, 1, n, rt);
      printf("%d\n", n - sum[1]);
    }
  }
  return 0;
}
