#include<bits/stdc++.h>
using namespace std;
int A[5][5];
int main(){
	int n, i, j, a, x, y, t, cnt,I;
	scanf("%d", &n);
	for(i=1;i<5;i++) for(j=1;j<5;j++) scanf("%d",&A[i][j]);
	printf("\n");
	for(I=0;I<n;I++){
		scanf("%d %d %d %d", &a, &x, &y, &t);
		stack <int> S[5];
		if(a==1){
			for(i=1;i<5;i++){
				for(j=1;j<5;j++){
					if(A[j][i]>0){
						cnt = A[j][i];
						while(!S[i].empty() and cnt == S[i].top()){
							cnt = cnt*2;
							S[i].pop();
						}
						S[i].push(cnt); 
					}
				}
				for(j=4;j>S[i].size();j--) A[j][i]=0;
				for(j=S[i].size();j>0;j--){
					A[j][i]=S[i].top();
					S[i].pop();
				}
			}
			A[x][y] = t;
		}else if(a==2){
			for(i=1;i<5;i++){
				for(j=1;j<5;j++){
					if(A[i][j]>0){
						cnt = A[i][j];
						while(!S[i].empty() and cnt == S[i].top()){
							cnt = cnt*2;
							S[i].pop();
						}
						S[i].push(cnt); 
					}
				}
				for(j=4;j>S[i].size();j--) A[i][j]=0;
				for(j=S[i].size();j>0;j--){
					A[i][j]=S[i].top();
					S[i].pop();
				}
			}
		}else if(a==3){
			for(i=1;i<5;i++){
				for(j=4;j>0;j--){
					if(A[j][i]>0){
						cnt = A[j][i];
						while(!S[i].empty() and cnt == S[i].top()){
							cnt = cnt*2;
							S[i].pop();
						}
						S[i].push(cnt); 
					}
				}
				for(j=1;j<5-S[i].size();j++) A[j][i]=0;
				for(j=5-S[i].size();j<5;j++){
					A[j][i]=S[i].top();
					S[i].pop();
				}
			}
			A[x][y] = t;
		}else if(a==4){
			for(i=1;i<5;i++){
				for(j=4;j>0;j--){
					if(A[i][j]>0){
						cnt = A[i][j];
						while(!S[i].empty() and cnt == S[i].top()){
							cnt = cnt*2;
							S[i].pop();
						}
						S[i].push(cnt); 
					}
				}
				for(j=1;j<5-S[i].size();j++) A[i][j]=0;
				for(j=5-S[i].size();j<5;j++){
					A[i][j]=S[i].top();
					S[i].pop();
				}
			}
		}
		A[x][y] = t;
		for(i=1;i<5;i++){
			for(j=1;j<5;j++){
				printf("%d ",A[i][j]);
			}
			printf("\n");
		}
		printf("\n");
	}
}
