#include <bits/stdc++.h>
using namespace std;
int sum[18000006];
int n, q, l, r, op, lch[18000006], rch[18000006], cnt;
char tag[18000006];
void pushdown(int x, int l, int r) {
  if (tag[x] == -1) return;
  int mid = (l + r) / 2;
  if (l != r) {
    tag[lch[x]] = tag[x];
    tag[rch[x]] = tag[x];
    sum[lch[x]] = (mid - l + 1) * tag[lch[x]];
    sum[rch[x]] = (r - mid) * tag[rch[x]];
  }
  tag[x] = -1;
}
int change(int x, int ll, int rr, int l, int r, int op) {
  if (ll > r || rr < l) return sum[x];
  if (l <= ll && rr <= r) {
    tag[x] = op;
    sum[x] = op * (rr - ll + 1);
    return sum[x];
  }
  int mid = (ll + rr) / 2;
  if (!lch[x]) {
    lch[x] = ++cnt;
    rch[x] = ++cnt;
    sum[lch[x]] = (mid - ll + 1);
    sum[rch[x]] = (rr - mid);
  }
  pushdown(x, ll, rr);
  return (sum[x] = change(lch[x], ll, mid, l, r, op) +
                   change(rch[x], mid + 1, rr, l, r, op));
}
int main() {
  scanf("%d%d", &n, &q);
  cnt = 1;
  memset(tag, -1, sizeof tag);
  for (int i = 1; i <= q; i++) {
    scanf("%d%d%d", &l, &r, &op);
    op--;
    printf("%d\n", change(1, 1, n, l, r, op));
  }
}
