import java.util.Scanner;

public class Main {

	final static int 	BUILDINGS = 4, // 棟数
						FLOORS = 3, // 階数
						ROOMS = 10; // 部屋数

	static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	}

	// 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	}

	// 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	}

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

	final static int 	BUILDINGS = 4, // 棟数
						FLOORS = 3, // 階数
						ROOMS = 10; // 部屋数

	static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	}

	// 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	}

	// 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	}

} Main final static int 	BUILDINGS = 4 BUILDINGS 4 FLOORS = 3 FLOORS 3 ROOMS = 10; // 部屋数 ROOMS 10 static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する house new int[BUILDINGS][FLOORS][ROOMS] BUILDINGS FLOORS ROOMS public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	} main {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		} {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		} ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt()) ChangeTenants sc.nextInt() sc.nextInt sc sc.nextInt() sc.nextInt sc sc.nextInt() sc.nextInt sc sc.nextInt() sc.nextInt sc print() print String[] args args // 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	} ChangeTenants {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	} house[b - 1][f - 1][r - 1] += v house[b - 1][f - 1][r - 1] house[b - 1][f - 1] house[b - 1] house b - 1 b 1 f - 1 f 1 r - 1 r 1 v int b b int f f int r r int v v // 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	} print {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	} for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		} int b = 0; int b = 0; b 0 b < BUILDINGS b BUILDINGS b++ b++ b {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		} {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		} for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			} int f = 0; int f = 0; f 0 f < FLOORS f FLOORS f++ f++ f {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			} {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			} String output = ""; output "" for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				} int r = 0; int r = 0; r 0 r < ROOMS r ROOMS r++ r++ r {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				} {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				} output += " " + house[b][f][r] output " " + house[b][f][r] " " house[b][f][r] house[b][f] house[b] house b f r System.out.println(output) System.out.println System.out System System.out output if (b < 3) {
				System.out.println("####################");
			} b < 3 b 3 {
				System.out.println("####################");
			} System.out.println("####################") System.out.println System.out System System.out "####################" public class Main {

	final static int 	BUILDINGS = 4, // 棟数
						FLOORS = 3, // 階数
						ROOMS = 10; // 部屋数

	static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	}

	// 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	}

	// 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	}

} public class Main {

	final static int 	BUILDINGS = 4, // 棟数
						FLOORS = 3, // 階数
						ROOMS = 10; // 部屋数

	static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	}

	// 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	}

	// 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	}

} Main
import java.util.Scanner;

public class Main {

	final static int 	BUILDINGS = 4, // 棟数
						FLOORS = 3, // 階数
						ROOMS = 10; // 部屋数

	static int[][][] house = new int[BUILDINGS][FLOORS][ROOMS]; // 入居者を記録する

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		// 入力件数の入力
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {

			// 各情報の入力
			//入居者を変更
			ChangeTenants(sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());
		}

		//表示
		print();
	}

	// 入居者の変更
	static void ChangeTenants(int b, int f, int r, int v) {
		// 入力データを配列の添え字に合わせ、入居者を加算
		house[b - 1][f - 1][r - 1] += v;
	}

	// 表示処理
	static void print() {
		
		for (int b = 0; b < BUILDINGS; b++) {

			for (int f = 0; f < FLOORS; f++) {

				String output = "";
				for (int r = 0; r < ROOMS; r++) {

					// 数字の前にスペースを入れる
					output += " " + house[b][f][r];
				}
				// 出力
				System.out.println(output);

			}
			// 棟が変わる場合#を20個入れる(最後の行には入れないように)
			if (b < 3) {
				System.out.println("####################");
			}
		}
	}

}
