#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MOD = ll(1e9 + 7);
const ll INF = ll(1e18 + 10);
const int N = int(1.5e7 + 10);
int t[N], le[N], re[N], tag[N];
int cnt, root;
void push_up(int rt) { t[rt] = t[le[rt]] + t[re[rt]]; }
void push_down(int rt, int l, int r) {
  if (tag[rt] != -1) {
    int mid = (l + r) >> 1;
    if (le[rt] == 0) le[rt] = ++cnt;
    t[le[rt]] = tag[rt] * (mid - l + 1);
    tag[le[rt]] = tag[rt];
    if (re[rt] == 0) re[rt] = ++cnt;
    t[re[rt]] = tag[rt] * (r - mid);
    tag[re[rt]] = tag[rt];
    tag[rt] = -1;
  }
}
void modify(int &rt, int l, int r, int L, int R, int v) {
  if (rt == 0) rt = ++cnt;
  if (L <= l && r <= R) {
    t[rt] = v * (r - l + 1);
    tag[rt] = v;
    return;
  }
  int mid = l + r >> 1;
  push_down(rt, l, r);
  if (L <= mid) modify(le[rt], l, mid, L, R, v);
  if (mid < R) modify(re[rt], mid + 1, r, L, R, v);
  push_up(rt);
}
void solve() {
  memset(tag, -1, sizeof tag);
  int n, q;
  scanf("%d%d", &n, &q);
  modify(root, 1, n, 1, n, 1);
  while (q--) {
    int l, r, k;
    scanf("%d%d%d", &l, &r, &k);
    modify(root, 1, n, l, r, k == 2);
    printf("%d\n", t[root]);
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
