#include <bits/stdc++.h>
using namespace std;
const int N = 2505;
const int Q = 1e5 + 5;
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
map<pair<int, int>, long long> hsh[N][N];
long long bit[N][N];
int n, m, q;
void update(int x, int y, long long val) {
  for (int i = x; i <= n; i += i & -i)
    for (int j = y; j <= m; j += j & -j) bit[i][j] ^= val;
}
long long getval(int x, int y) {
  long long res = 0;
  for (int i = x; i > 0; i -= i & -i)
    for (int j = y; j > 0; j -= j & -j) res ^= bit[i][j];
  return res;
}
long long rand(long long l, long long r) {
  assert(l <= r);
  return l + rd() % (r - l + 1);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m >> q;
  for (int i = 1; i <= q; i++) {
    int typ, x, y, u, v;
    cin >> typ >> x >> y >> u >> v;
    if (typ <= 2) {
      long long &val = hsh[x][y][make_pair(u, v)];
      if (typ == 1) val = rd();
      update(x, y, val);
      update(x, v + 1, val);
      update(u + 1, y, val);
      update(u + 1, v + 1, val);
    } else {
      long long s = getval(x, y);
      long long t = getval(u, v);
      if (s == t)
        cout << "Yes\n";
      else
        cout << "No\n";
    }
  }
  return 0;
}
