#include <bits/stdc++.h>
using namespace std;
struct chtholly {
  long long l, r;
  mutable int v;
  chtholly(long long L, long long R = -1, int V = 0) : l(L), r(R), v(V) {}
  bool operator<(const chtholly& x) const { return x.l > l; }
};
set<chtholly> s;
long long n, ans;
set<chtholly>::iterator split(long long pos) {
  set<chtholly>::iterator it = s.lower_bound(chtholly(pos));
  if (it != s.end() && it->l == pos) return it;
  --it;
  long long L = it->l, R = it->r;
  int V = it->v;
  s.erase(it);
  s.insert(chtholly(L, pos - 1, V));
  return s.insert(chtholly(pos, R, V)).first;
}
void assign_val(long long l, long long r, int val) {
  set<chtholly>::iterator itr = split(r + 1), itl = split(l), it;
  it = itl;
  while (it != itr) {
    ans -= it->v * (it->r - it->l + 1);
    it++;
  }
  s.erase(itl, itr);
  s.insert(chtholly(l, r, val));
  ans += val * (r - l + 1);
}
int main() {
  int q, i;
  long long x, y, k;
  scanf("%lld%d", &n, &q);
  ans = n;
  s.insert(chtholly(1, n, 1));
  for (i = 1; i <= q; i++) {
    scanf("%lld%lld%lld", &x, &y, &k);
    k--;
    assign_val(x, y, k);
    printf("%lld\n", ans);
  }
}
