import java.util.Scanner;
public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	}


}
 import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	}


} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	} main {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int c = 0; c 0 int d = 0; d 0 int z = 0; z 0 int x = 0; x 0 int box[][][] = new int[4][3][10]; box new int[4][3][10] 4 3 10 while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	} n>c n c {
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	} int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc int f = sc.nextInt(); f sc.nextInt() sc.nextInt sc int r = sc.nextInt(); r sc.nextInt() sc.nextInt sc int v = sc.nextInt(); v sc.nextInt() sc.nextInt sc if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		} box[b-1][f-1][r-1]==0 box[b-1][f-1][r-1] box[b-1][f-1] box[b-1] box b-1 b 1 f-1 f 1 r-1 r 1 0 {
			box[b-1][f-1][r-1]=v;
			z=v;
		} box[b-1][f-1][r-1]=v box[b-1][f-1][r-1] box[b-1][f-1] box[b-1] box b-1 b 1 f-1 f 1 r-1 r 1 v z=v z v {
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		} x=box[b-1][f-1][r-1]+v x box[b-1][f-1][r-1]+v box[b-1][f-1][r-1] box[b-1][f-1] box[b-1] box b-1 b 1 f-1 f 1 r-1 r 1 v box[b-1][f-1][r-1]=x box[b-1][f-1][r-1] box[b-1][f-1] box[b-1] box b-1 b 1 f-1 f 1 r-1 r 1 x c++ c for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		} int i=0; int i=0; i 0 i<4 i 4 i++ i++ i {
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		} {
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		} for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			} int j=0; int j=0; j 0 j<3 j 3 j++ j++ j {
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			} {
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			} for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				} int k=0; int k=0; k 0 k<10 k 10 k++ k++ k {
			System.out.print(" "+box[i][j][k]);
				} {
			System.out.print(" "+box[i][j][k]);
				} System.out.print(" "+box[i][j][k]) System.out.print System.out System System.out " "+box[i][j][k] " " box[i][j][k] box[i][j] box[i] box i j k System.out.println("") System.out.println System.out System System.out "" if(d<3){
			System.out.println("####################");
			d++;
			} d<3 d 3 {
			System.out.println("####################");
			d++;
			} System.out.println("####################") System.out.println System.out System System.out "####################" d++ d String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	}


} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	}


} Main
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

//		件数
		int n = sc.nextInt();
		//カウンター
		int c = 0;
		int d = 0;
		//入れ子
		int z = 0;
		int x = 0;
		int box[][][] = new int[4][3][10];
	//件の繰り返し
	while(n>c){
//		棟の数
		int b = sc.nextInt();
//		階数
		int f = sc.nextInt();
//		部屋数
		int r = sc.nextInt();
//		人数
		int v = sc.nextInt();
		//0ならそのまま入れる
		if(box[b-1][f-1][r-1]==0){
			box[b-1][f-1][r-1]=v;
			z=v;
		}
		//数字が入っていれば計算する
		else{
		//boxに人数入力
			x=box[b-1][f-1][r-1]+v;
			box[b-1][f-1][r-1]=x;
		}
		c++;
	}

		//人数出力
		//棟の繰り返し
		for(int i=0;i<4;i++){
		//階の繰り返し
			for(int j=0;j<3;j++){
		//部屋のの繰り返し
				for(int k=0;k<10;k++){
			System.out.print(" "+box[i][j][k]);
				}
				System.out.println("");
			}
		if(d<3){
			System.out.println("####################");
			d++;
			}
		}


	}


}

