let input = require('fs').readFileSync('/dev/stdin', 'UTF-8');
var Arr=(input.trim()).split("\n");
Arr.shift();
var bfr=[]; // 全件分の箱

// 4棟分の箱を作る
for(var i=0;i<4;i++){
  bfr.push([]);

  // 3階分の箱を作る
  for(var j=0;j<3;j++){
    bfr[i].push([]);

    // 10部屋分の0を作る
    for(var k=0;k<10;k++){
      bfr[i][j].push(0);
    }
  }
}

// inputで与えられた情報の分ループ
for(var i=0;i<Arr.length;i++){
  var arr=Arr[i].split(" ").map(Number);
  var b=arr[0]-1; // 0
  var f=arr[1]-1; // 0
  var r=arr[2]-1; // 2
  var v=arr[3]-0; // 8

  // 箱の上から0棟, 0階, 2番目の部屋に8人追加する
  bfr[b][f][r]=bfr[b][f][r]+v;
  // 部屋に追加後に、人が9人より多い場合は人数をMaxの9で止める
  if(bfr[b][f][r]>9)bfr[b][f][r]=9;
  // 部屋に追加後に、人が0人より少ない場合は人数をMinの0で止める
  if(bfr[b][f][r]<0)bfr[b][f][r]=0;
}

// 4棟分ループ
for(var i=0;i<4;i++){
  // 3階分ループ
  for(var j=0;j<3;j++){
    // 先頭に空白を置き、空白連結で全棟全階の情報を書き出す
    console.log(" "+bfr[i][j].join(" "));
  }
  // 1棟終わるごとに区切りを書き出す(最後は不要)
  if(i!==3)console.log("####################")
}
