@@ -0,0 +1,320 @@
+
+# a,b = map(int, input().split())
+# print(a, b)
+# num = [1, 2, 3, 4, 5]
+# print(*num)
+# s = input()
+# print(s)
+# while (len(s) != 0 and len(s) != 1):
+# s = s[1:-1]
+# a, b = map(int, input().split())
+# cnt = 0
+# x = 0
+# while a > 0:
+# cnt += 1
+# a -= 1
+# x += 1
+# if (x == b):
+# a += 1
+# print(cnt)
+# a = int(input())
+# st = 1
+# if a == 1:
+# print('0')
+# else:
+# while 2**st <= a:
+# if 2**st == a:
+# print(st)
+# break
+# st += 1
+# if 2**st > a:
+# print('НЕТ')
+# n = int(input())
+# while n < 1000000000:
+# st = str(n)
+# n = int(st[0])*n
+# if int(st[0]) == 1:
+# print(n)
+# sum = 0
+# while (n := int(input())) != 0:
+# sum += n
+# print(sum)
+# while 5 <= len(s) <= 9:
+# last = s
+# print(last)
+# x = int(input())
+# if x > n:
+# print(0)
+# print('Довольно')
+# sum = x
+# while sum <= n:
+# x = input()
+# sum += x
+# print(sum - x)
+# n, k = map(int, input().split())
+# time = 0
+# while time <= (240 - k) and cnt <= n:
+# time += cnt*5
+# print(cnt - 1)
+# l = 0
+# k = 0
+# s = 1
+# while k < n:
+# s = 1 + l
+# k = k + s
+# l += 1
+# if (k > n):
+# print(l - 1)
+# print(l)
+# b = int(input())
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# НОД
+# while b > 0:
+# c = a%b
+# a = b
+# b = c
+# print(f'НОД = {a}')
+# while a != b:
+# if a > b:
+# a = a - b
+# b = b - a
+# Сортировка массива пузырьком
+# buf = [5, 7, 3, 1, 6, 4, 8, 1, 9]
+# for run in range(len(buf) - 1):
+# for i in range(len(buf) - run - 1):
+# if buf[i] > buf[i + 1]:
+# buf[i], buf[i + 1] = buf[i + 1], buf[i]
+# print(*buf)
+# Система уравнений
+# n, m = map(int, input().split())
+# for b in range(0, n + 1 ):
+# for a in range(0, m + 1):
+# if (a**2 + b) == n and (a + b**2) == m:
+# Сортировка вставками
+# buf = [5, 4, 2, 15, 6, 6]
+# for run in range(1, len(buf)):
+# for i in range(run, 0, -1):
+# if buf[i] < buf[i - 1]:
+# buf[i], buf[i - 1] = buf[i - 1], buf[i]
+# def foo(len):
+# if len < 0:
+# sign = -2
+# sign = 2
+# return [i for i in range(0, len, sign)]
+# print(foo(-10))
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# # n, m = map(int, input().split())
+# # l = []
+# n, m = 3, 3
+# l = [[6, 2, 7], [1, 2, 8], [1, 3, 8]]
+# maxi = []
+# summ = []
+# # for i in range(n):
+# # l.append(list(map(int, input().split())))
+# for i in range(n):
+# maxi.append(max(l[i]))
+# summ.append(sum(l[i]))
+# maximum = max(maxi)
+# foo_cnt = maxi.count(maximum)
+# if foo_cnt == 1:
+# print(max.index(maximum))
+# if maxi[i] != maximum:
+# summ[i] = 0
+# sum_max = max(summ)
+# print(summ.index(sum_max))
+# l = []
+# l.append(list(map(int, input().split())))
+# print(maxi.count(maximum))
+# l = [['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W']]
+# flag = 'Yes'
+# # for i in range(4):
+# # l.append(list(input()))
+# for i in range(4):
+# for j in range(4):
+# l[i][j] = ord(l[i][j])%10 - 6
+# for i in [0, 1, 2]:
+# for j in [0, 1, 2]:
+# if l[i][j] == l[i][j + 1] == l[i + 1][j] == l[i + 1][j + 1]:
+# flag = 'No'
+# print(flag)
+# # l1 = []
+# # l2 = []
+# l1 = [['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W']]
+# l2 = [['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W'], ['B', 'W', 'B', 'W']]
+# # l1.append(list(input()))
+# # input()
+# # l2.append(list(input()))
+# for j in range(m):
+# if l1[i][j] == l2[i][j]:
+# n, x = map(int, input().split())
+# for i in range(1, n + 1):
+# for j in range(1, n + 1):
+# if i*j == x:
+# maxi.append(l[i][n - i - 1])
+# print(max(maxi))
+n = int(input())
+a, b, c = map(int, input().split())
+l = []
+for i in range(n):
+ l.append([0]*n)
+diag = 0
+ for j in range(n):
+ if i == j:
+ l[i][j] = c
+ elif j < diag:
+ l[i][j] = b
+ else :
+ l[i][j] = a
+ diag += 1
+ print(*l[i])