__author__ = 'SRF'
__date__ = '2019/11/23 10:33'
'''
\033 转义序列的开始
输出一行字符重置终端
程序结束恢复默认前景 背景
空格\x20
换行\x0A
'''
defaback = [0, 0, 0]
reset = "[0m"
last = []
s = ""
prefix = "\\x1B"
def solveCol(c):
if len(c) == 2:
c += c[-1] * 6
elif len(c) == 4:
c = "#" + c[1] * 2 + c[2] * 2 + c[3] * 2
l = [int(c[i:i + 2], 16) for i in range(1, 7, 2)]
return l
m, n = map(int, input().split())
p, q = map(int, input().split())
colormatrix = [[] for i in range(n)]
for row in range(n):
for col in range(m):
colormatrix[row].append(solveCol(input()))
if (col + 1) % p == 0 and (row + 1) % q == 0:
srow = row // q
scol = col // p
suit = list(
zip(*[colormatrix[k][l] for l in range(col - p + 1, col + 1) for k in range(row - q + 1, row + 1)]))
current = [sum(s) // len(s) for s in suit]
if srow == 0 and scol == 0:
if current != defaback:
d = "[48;2;" + ";".join(map(str, current)) + "m"
t = ["\\x" + hex(ord(i))[2:].upper().zfill(2) for i in d]
s += prefix + "".join(t)
else:
if current == last:
pass
else:
if current == defaback:
s += "\\x1B\\x5B\\x30\\x6D"
else:
d = "[48;2;" + ";".join(map(str, current)) + "m"
t = ["\\x" + hex(ord(i))[2:].upper().zfill(2) for i in d]
s += prefix + "".join(t)
last = current
s += "\\x20"
if scol == m // p - 1:
if last != defaback:
s += "\\x1B\\x5B\\x30\\x6D"
last = defaback
s += '''\\x0A'''
print(s)
'''
1 1
1 1
#010203
\x1B\x5B\x34\x38\x3B\x32\x3B\x31\x3B\x32\x3B\x33\x6D\x20\x1B\x5B\x30\x6D\x0A
2 2
1 2
#111111
#0
#000000
#111
\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x20\x1B\x5B\x30\x6D\x0A
1 1
1 1
#0
\x20\x0A
2 2
2 1
#111111
#0
#000000
#111
\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A
\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A
2 2
2 1
#111111
#0
#000000
#000
\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A\x20\x0A
\x1B\x5B\x34\x38\x3B\x32\x3B\x38\x3B\x38\x3B\x38\x6D\x20\x1B\x5B\x30\x6D\x0A \x20\x0A
3 2
1 2
#0
#0
#010101
#010102
#0
#0
\x1B\x5B\x34\x38\x3B\x32\x3B\x30\x3B\x30\x3B\x31\x6D\x20\x1B\x5B\x30\x6D\x20\x20\x0A
\x1B\x5B\x34\x38\x3B\x32\x3B\x30\x3B\x30\x3B\x31\x6D\x20\x1B\x5B\x30\x6D\x0A\x20\x20
1 2
1 2
#123456
#abcdef
\x1B\x5B\x34\x38\x3B\x32\x3B\x39\x34\x3B\x31\x32\x38\x3B\x31\x36\x32\x6D\x20\x1B\x5B\x30\x6D\x0A
2 1
2 1
#654321
#fedcba
\x1B\x5B\x34\x38\x3B\x32\x3B\x31\x37\x37\x3B\x31\x34\x33\x3B\x31\x30\x39\x6D\x20\x1B\x5B\x30\x6D\x0A
'''