m = int(input())
n = int(input())

grid = [list(input()) for _ in range(n)]


def _next(g):
    _g = [['.' for _ in range(m)] for _ in range(n)]
    for i in range(n):
        for j in range(m):
            ele = g[i][j]
            if ele != '.':
                if ele == 'Y':
                    _g[i][j] = 'Y'
                    for di, dj in ((1, 0), (-1, 0), (0, 1), (0, -1)):
                        x, y = i + di, j + dj
                        if 0 <= x < n and 0 <= y < m and g[x][y] == '.':
                            _g[x][y] = '0'
                else:
                    r = int(ele) + 1
                    if r == 10:
                        _g[i][j] = 'Y'
                    else:
                        _g[i][j] = str(r)
    return _g
    
max_tree = 0
for x in range(n):
    for y in range(m):        
        if grid[x][y] != 'Y':
            g = [r[:] for r in grid]
            g[x][y] = '0'
            for _ in range(33):
                g = _next(g)
            print()
            print('\n'.join(''.join(r) for r in g))
            max_tree = max(max_tree, sum(r.count('Y') for r in g))
print(max_tree)



            
                        
            
        
    

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: