#include <bits/stdc++.h>
using namespace std;
const int maxn = 2500 + 100;
int n, m, q;
int r1, c1, r2, c2, c;
long long sum1[maxn][maxn], sum2[maxn][maxn];
int lowbit(int x) { return x & (-x); }
void update(long long sum[maxn][maxn], int i, int j, long long x) {
  while (i <= n) {
    int jj = j;
    while (jj <= m) {
      sum[i][jj] += x;
      jj += lowbit(jj);
    }
    i += lowbit(i);
  }
}
long long query(long long sum[maxn][maxn], int i, int j) {
  long long ret = 0;
  while (i > 0) {
    int jj = j;
    while (jj > 0) {
      ret += sum[i][jj];
      jj -= lowbit(jj);
    }
    i -= lowbit(i);
  }
  return ret;
}
bool isPrime(int x) {
  for (int i = 2; i * i <= x; ++i) {
    if (x % i == 0) {
      return false;
    }
  }
  return true;
}
void getHash(long long &h1, long long &h2) {
  h1 = r1 * 997 + c1 * 991 + r2 * 983 + c2 * 977;
  h2 = r1 * 971 + c1 * 967 + r2 * 953 + c2 * 947;
}
void Update(long long sum[maxn][maxn], long long h) {
  update(sum, r1, c1, h);
  update(sum, r1, c2 + 1, -h);
  update(sum, r2 + 1, c1, -h);
  update(sum, r2 + 1, c2 + 1, h);
}
int main() {
  ios::sync_with_stdio(false);
  scanf("%d%d%d", &n, &m, &q);
  ++n;
  ++m;
  long long h1, h2, tmp11, tmp12, tmp21, tmp22;
  while (q--) {
    scanf("%d%d%d%d%d", &c, &r1, &c1, &r2, &c2);
    getHash(h1, h2);
    if (c == 1) {
      Update(sum1, h1);
      Update(sum2, h2);
    } else if (c == 2) {
      Update(sum1, -h1);
      Update(sum2, -h2);
    } else {
      tmp11 = query(sum1, r1, c1);
      tmp12 = query(sum1, r2, c2);
      tmp21 = query(sum2, r1, c1);
      tmp22 = query(sum2, r2, c2);
      if (tmp11 == tmp12 && tmp21 == tmp22) {
        printf("Yes\n");
      } else {
        printf("No\n");
      }
    }
  }
  return 0;
}
