#include <bits/stdc++.h>
using namespace std;
int n, m, i, k, ans, len, tt, vv, t[10000], l[10000], r[10000], x[10000],
    L[10000], zhan[10000], R[10000], s[1100000];
bool used[1100000];
void push(int x) {
  if (!used[x]) {
    ans++;
    zhan[++zhan[0]] = x;
    used[x] = true;
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (i = 0; i <= 20; i++) s[1 << i] = 1;
  for (i = 1; i <= (1 << 20); i++) s[i] += s[i - 1];
  while (m--) {
    scanf("%d", &k);
    if (k == 1) {
      len++;
      scanf("%d%d%d%d", &t[len], &l[len], &r[len], &x[len]);
    } else {
      scanf("%d%d", &tt, &vv);
      L[tt] = vv - 1;
      R[tt] = vv;
      ans = 0;
      for (i = tt + 1; i <= n; i++)
        L[i] = L[i - 1] + s[L[i - 1]], R[i] = R[i - 1] + s[R[i - 1]];
      for (i = 1; i <= len; i++)
        if (t[i] >= tt && !(R[t[i]] < l[i] || L[t[i]] >= r[i])) push(x[i]);
      printf("%d\n", ans);
      for (i = 1; i <= zhan[0]; i++) used[zhan[i]] = false;
      zhan[0] = 0;
    }
  }
}
