#include <iostream>
using namespace std;
struct gezi{
long long rgb1=0,rgb2=0,rgb3=0;
}a[110][110];
int w,flag=1,x,y,rgb,q,n,m,c,t;
int main(){
cin>>n>>m>>q;
if(q==1){
cin>>x>>y>>t>>rgb;
rgb%=256;
if(rgb>0)
cout<<"No";
else{
cout<<"Yes";
}
return 0;
}
for(int i=1;i<=q;i++){
cin>>x>>y>>t>>rgb;
if(t==1){
a[x][y].rgb1+=rgb;
if(a[x][y].rgb1>255){
a[x][y].rgb1%=256;
}
}
else if(t==2){
a[x][y].rgb2+=rgb;
if(a[x][y].rgb2>255){
a[x][y].rgb2%=256;
}
}
else{
a[x][y].rgb3+=rgb;
if(a[x][y].rgb3>255){
a[x][y].rgb3%=256;
}
}
for(int j=1;j<=n;j++){
if(flag==0){
break;
}
for(int k=1;k<=m;k++){
if(a[j][k].rgb1!=a[j][m-k+1].rgb1||a[j][k].rgb2!=a[j][m-k+1].rgb2||a[j][m-k+1].rgb3!=a[j][m-k+1].rgb3){
cout<<"No"<<endl;
flag=0;
break;
}
}
}
if(flag){
cout<<"Yes"<<endl;
}
flag=1;
}
return 0;
}