#include <bits/stdc++.h>
struct _ {
  inline operator int() {
    int x;
    return scanf("%d", &x), x;
  }
  inline operator long long() {
    long long x;
    return scanf("%lld", &x), x;
  }
  template <class T>
  inline void operator()(T &x) {
    x = *this;
  }
} read;
const int maxn = 5005, maxq = 100005;
int bit[maxn << 1][maxn];
int n;
void modify(int p, int l, int r, int x) {
  if (p < 0 or l < 0 or r < 0) exit(1);
  for (int i = p; i; i -= i & -i) {
    for (int j = r; j; j -= j & -j) bit[i][j] += x;
    for (int j = l - 1; j; j -= j & -j) bit[i][j] -= x;
  }
}
int query(int p, int ip) {
  if (p <= 0 or ip <= 0) exit(1);
  int res = 0;
  for (int i = p; i <= (n << 1); i += i & -i)
    for (int j = ip; j <= n; j += j & -j) res += bit[i][j];
  return res;
}
int qo[maxq], qx[maxq], qy[maxq], qd[maxq], ql[maxq];
int ans[maxq];
int main() {
  read(n);
  int q = read;
  for (int i = 1; i <= q; i++) {
    read(qo[i]);
    if (qo[i] == 1) qd[i] = read;
    read(qx[i]);
    read(qy[i]);
    if (qo[i] == 1) ql[i] = read;
  }
  for (int i = 1; i <= q; i++)
    if (qo[i] == 1) {
      if (qd[i] == 1) modify(qy[i] - 1, qx[i], qx[i] + ql[i], -1);
      if (qd[i] == 2) modify(qy[i], qx[i], qx[i] + ql[i], 1);
      if (qd[i] == 3) modify(qy[i] - 1, qx[i] - ql[i], qx[i], -1);
      if (qd[i] == 4) modify(qy[i], qx[i] - ql[i], qx[i], 1);
    } else
      ans[i] += query(qy[i], qx[i]);
  memset(bit, 0, sizeof bit);
  for (int i = 1; i <= q; i++)
    if (qo[i] == 1) {
      if (qd[i] == 1) modify(qx[i] + qy[i] + ql[i], qx[i], qx[i] + ql[i], 1);
      if (qd[i] == 4)
        modify(qx[i] + qy[i] - ql[i] - 1, qx[i] - ql[i], qx[i], -1);
    } else
      ans[i] += query(qx[i] + qy[i], qx[i]);
  memset(bit, 0, sizeof bit);
  for (int i = 1; i <= q; i++)
    if (qo[i] == 1) {
      if (qd[i] == 2)
        modify(qy[i] - ql[i] + n - qx[i] - 1, qx[i], qx[i] + ql[i], -1);
      if (qd[i] == 3)
        modify(qy[i] + ql[i] + n - qx[i], qx[i] - ql[i], qx[i], 1);
    } else
      ans[i] += query(qy[i] + n - qx[i], qx[i]);
  for (int i = 1; i <= q; i++)
    if (qo[i] == 2) printf("%d\n", ans[i]);
}
