#include <iostream>
#include <bits/stdc++.h>
#include <map>
#include <utility>
#include <algorithm>
#include <ctime>
using namespace std;
const int N_MAX = 2507;
int n, m, q;
map<pair<pair<int,int>,pair<int,int> >,pair<unsigned long long,unsigned long long> > mp;
pair<unsigned long long,unsigned long long> s[N_MAX][N_MAX];
void add(int x,int y,pair<unsigned long long,unsigned long long> del)
{
for (int kx = x; kx<=N_MAX-4; kx += kx&(-kx))
for (int ky = y; ky <= N_MAX-4;ky += ky&(-ky))
{
s[kx][ky].first+=del.first;
s[kx][ky].second+=del.second;
}
}
pair<unsigned long long,unsigned long long> query(int x,int y)
{
pair<unsigned long long,unsigned long long> res=make_pair(0,0);
for (int kx=x;kx;kx-=kx&(-kx))
for (int ky=y;ky;ky-=ky&(-ky))
{
res.first+=s[kx][ky].first;
res.second+=s[kx][ky].second;
}
return res;
}
int main()
{
scanf("%d%d%d",&n,&m,&q);
memset(s,0,sizeof(s));
srand(time(0));
mp.clear();
for (int i=1;i<=q;i++)
{
int t,r1,c1,r2,c2;
scanf("%d%d%d%d%d",&t,&r1,&c1,&r2,&c2);
pair<unsigned long long,unsigned long long> del,udel;
if (t==1)
{
del.first=rand();
del.second=rand();
udel=make_pair(-del.first,-del.second);
mp[make_pair(make_pair(r1,c1),make_pair(r2,c2))]=del;
add(r1,c1,del);
add(r1,c2+1,udel);
add(r2+1,c1,udel);
add(r2+1,c2+1,del);
} else if (t==2)
{
del=mp[make_pair(make_pair(r1,c1),make_pair(r2,c2))];
mp[make_pair(make_pair(r1,c1),make_pair(r2,c2))]=make_pair(0,0);
udel=make_pair(-del.first,-del.second);
add(r1,c1,udel);
add(r1,c2+1,del);
add(r2+1,c1,del);
add(r2+1,c2+1,udel);
}
else
{
del=query(r1,c1);
udel=query(r2,c2);
if (del==udel) printf("Yes\n"); else printf("No\n");
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjdGltZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTl9NQVggPSAyNTA3OwoKaW50IG4sIG0sIHE7CgptYXA8cGFpcjxwYWlyPGludCxpbnQ+LHBhaXI8aW50LGludD4gPixwYWlyPHVuc2lnbmVkIGxvbmcgbG9uZyx1bnNpZ25lZCBsb25nIGxvbmc+ID4gbXA7CnBhaXI8dW5zaWduZWQgbG9uZyBsb25nLHVuc2lnbmVkIGxvbmcgbG9uZz4gc1tOX01BWF1bTl9NQVhdOwoKdm9pZCBhZGQoaW50IHgsaW50IHkscGFpcjx1bnNpZ25lZCBsb25nIGxvbmcsdW5zaWduZWQgbG9uZyBsb25nPiBkZWwpCnsKCWZvciAoaW50IGt4ID0geDsga3g8PU5fTUFYLTQ7IGt4ICs9IGt4Jigta3gpKQoJCWZvciAoaW50IGt5ID0geTsga3kgPD0gTl9NQVgtNDtreSArPSBreSYoLWt5KSkKCQl7CgkJCXNba3hdW2t5XS5maXJzdCs9ZGVsLmZpcnN0OwoJCQlzW2t4XVtreV0uc2Vjb25kKz1kZWwuc2Vjb25kOwoJCX0KfQpwYWlyPHVuc2lnbmVkIGxvbmcgbG9uZyx1bnNpZ25lZCBsb25nIGxvbmc+IHF1ZXJ5KGludCB4LGludCB5KQp7CglwYWlyPHVuc2lnbmVkIGxvbmcgbG9uZyx1bnNpZ25lZCBsb25nIGxvbmc+IHJlcz1tYWtlX3BhaXIoMCwwKTsKCWZvciAoaW50IGt4PXg7a3g7a3gtPWt4Jigta3gpKQoJCWZvciAoaW50IGt5PXk7a3k7a3ktPWt5Jigta3kpKQoJCXsKCQkJcmVzLmZpcnN0Kz1zW2t4XVtreV0uZmlyc3Q7CgkJCXJlcy5zZWNvbmQrPXNba3hdW2t5XS5zZWNvbmQ7CgkJfQoJcmV0dXJuIHJlczsKfQppbnQgbWFpbigpCnsKCXNjYW5mKCIlZCVkJWQiLCZuLCZtLCZxKTsKCW1lbXNldChzLDAsc2l6ZW9mKHMpKTsKCXNyYW5kKHRpbWUoMCkpOwoJbXAuY2xlYXIoKTsKCWZvciAoaW50IGk9MTtpPD1xO2krKykKCXsKCQlpbnQgdCxyMSxjMSxyMixjMjsKCQlzY2FuZigiJWQlZCVkJWQlZCIsJnQsJnIxLCZjMSwmcjIsJmMyKTsKCQlwYWlyPHVuc2lnbmVkIGxvbmcgbG9uZyx1bnNpZ25lZCBsb25nIGxvbmc+IGRlbCx1ZGVsOwoJCWlmICh0PT0xKQoJCXsKCQkJZGVsLmZpcnN0PXJhbmQoKTsKCQkJZGVsLnNlY29uZD1yYW5kKCk7CgkJCXVkZWw9bWFrZV9wYWlyKC1kZWwuZmlyc3QsLWRlbC5zZWNvbmQpOwoJCQltcFttYWtlX3BhaXIobWFrZV9wYWlyKHIxLGMxKSxtYWtlX3BhaXIocjIsYzIpKV09ZGVsOwoJCQlhZGQocjEsYzEsZGVsKTsKCQkJYWRkKHIxLGMyKzEsdWRlbCk7CgkJCWFkZChyMisxLGMxLHVkZWwpOwoJCQlhZGQocjIrMSxjMisxLGRlbCk7CgkJfSBlbHNlIGlmICh0PT0yKQoJCXsKCQkJZGVsPW1wW21ha2VfcGFpcihtYWtlX3BhaXIocjEsYzEpLG1ha2VfcGFpcihyMixjMikpXTsKCQkJbXBbbWFrZV9wYWlyKG1ha2VfcGFpcihyMSxjMSksbWFrZV9wYWlyKHIyLGMyKSldPW1ha2VfcGFpcigwLDApOwoJCQl1ZGVsPW1ha2VfcGFpcigtZGVsLmZpcnN0LC1kZWwuc2Vjb25kKTsKCQkJYWRkKHIxLGMxLHVkZWwpOwoJCQlhZGQocjEsYzIrMSxkZWwpOwoJCQlhZGQocjIrMSxjMSxkZWwpOwoJCQlhZGQocjIrMSxjMisxLHVkZWwpOwoJCX0KCQllbHNlCgkJewoJCQlkZWw9cXVlcnkocjEsYzEpOwoJCQl1ZGVsPXF1ZXJ5KHIyLGMyKTsKCQkJaWYgKGRlbD09dWRlbCkgcHJpbnRmKCJZZXNcbiIpOyBlbHNlIHByaW50ZigiTm9cbiIpOwoJCX0KCX0KCXJldHVybiAwOwp9