import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		// 入居者管理用配列
		int dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	}

} 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 dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	}

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

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		// 入居者管理用配列
		int dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	} main {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		// 入居者管理用配列
		int dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int dorm[][][] = new int[4][3][10]; dorm new int[4][3][10] 4 3 10 for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		} int b=0; int b=0; b 0 b<4 b 4 b++ b++ b {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		} {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		} for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			} int f=0; int f=0; f 0 f<3 f 3 f++ f++ f {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			} {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			} for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				} int r=0; int r=0; r 0 r<10 r 10 r++ r++ r {
					dorm[b][f][r] = 0;
				} {
					dorm[b][f][r] = 0;
				} dorm[b][f][r] = 0 dorm[b][f][r] dorm[b][f] dorm[b] dorm b f r 0 for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		} {
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		} int building = sc.nextInt(); building sc.nextInt() sc.nextInt sc int floor = sc.nextInt(); floor sc.nextInt() sc.nextInt sc int room = sc.nextInt(); room sc.nextInt() sc.nextInt sc int count = sc.nextInt(); count sc.nextInt() sc.nextInt sc dorm[building-1][floor-1][room-1] += count dorm[building-1][floor-1][room-1] dorm[building-1][floor-1] dorm[building-1] dorm building-1 building 1 floor-1 floor 1 room-1 room 1 count sc.close() sc.close sc for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		} int b=0; int b=0; b 0 b<4 b 4 b++ b++ b {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		} {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		} for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			} int f=0; int f=0; f 0 f<3 f 3 f++ f++ f {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			} {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			} for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				} int r=0; int r=0; r 0 r<10 r 10 r++ r++ r {
					System.out.print(" " + dorm[b][f][r]);
				} {
					System.out.print(" " + dorm[b][f][r]);
				} System.out.print(" " + dorm[b][f][r]) System.out.print System.out System System.out " " + dorm[b][f][r] " " dorm[b][f][r] dorm[b][f] dorm[b] dorm b f r System.out.println("") System.out.println System.out System System.out "" if(b!=3) System.out.println("####################"); b!=3 b 3 System.out.println("####################") System.out.println System.out System System.out "####################" String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		// 入居者管理用配列
		int dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	}

} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		// 入居者管理用配列
		int dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	}

} 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 dorm[][][] = new int[4][3][10];
		// 全ての部屋人数に0を設定
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					dorm[b][f][r] = 0;
				}
			}
		}

		// 情報入力
		for(int i=0; i<n; i++){
			int building = sc.nextInt();
			int floor = sc.nextInt();
			int room = sc.nextInt();
			int count = sc.nextInt();

			// 指定部屋の人数を増減
			dorm[building-1][floor-1][room-1] += count;
		}

		sc.close();

		// 出力
		for(int b=0; b<4; b++) {
			for(int f=0; f<3; f++) {
				for(int r=0; r<10; r++) {
					System.out.print(" " + dorm[b][f][r]);
				}
				System.out.println("");
			}
			if(b!=3) System.out.println("####################");
		}

	}

}
