#include <bits/stdc++.h>
using namespace std;
int add[1100100], L[1100100], R[1100100], row[1100100], x[1100100];
int l[1100100], r[1100100], vst[1100100];
void Init() {
  for (int i = 0; i <= 20; i++) add[1 << i] = 1;
  for (int i = 2; i < 1100100; i++) add[i] += add[i - 1];
  return;
}
int main() {
  int m, N, M, tp, t, v, cnt;
  Init();
  m = 0;
  scanf("%d%d", &N, &M);
  memset(vst, 0xff, sizeof(vst));
  for (int i = 0; i < M; i++) {
    scanf("%d", &tp);
    if (tp == 1) {
      scanf("%d%d%d%d", row + m, L + m, R + m, x + m);
      L[m]--;
      m++;
    } else {
      scanf("%d%d", &t, &v);
      l[t] = v - 1;
      r[t] = v;
      for (int j = t + 1; j <= N; j++) {
        l[j] = l[j - 1] + add[l[j - 1]];
        r[j] = r[j - 1] + add[r[j - 1]];
      }
      cnt = 0;
      for (int j = 0; j < m; j++)
        if (row[j] >= t && !(L[j] >= r[row[j]] || l[row[j]] >= R[j]) &&
            vst[x[j]] != i) {
          cnt++;
          vst[x[j]] = i;
        }
      printf("%d\n", cnt);
    }
  }
  return 0;
}
