# Add or remove imports
from yogi import scan

def read_matrix() :
    N,M = scan(int), scan(int)
    if N is None : return None
    mat = []
    for i in range(N) :
        row = []
        for j in range(M) :
            x = scan(str)
            row.append(x)
        mat.append(row)
    return mat

# Change 'function_name' to your function name,
# and addapt the way input must be read to your needs.
x = read_matrix()
while x is not None:
    c  = growth_cycle(x)
    for row in c :
        print(*row)    
    print()
    
    x = read_matrix()
    

def extra_check(M) :
    print("Input")
    for row in M : print(*row)    
    print("Output")
    c  = growth_cycle(M) 
    for row in c : print(*row)    
    print()
    
print("Additional tests by jutge")
M = [['.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
     ['.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'B',  '.', 'B', '.', '.', '.', '.', '.', '.'], 
     ['.', '.', '.', 'B', '.', '.', '.', '.', '.', 'B', '.', '.', '.', '.', 'B', '.', '.', '.', '.'], 
     ['.', '.', '.', '.', 'B', '.', '.', '.', 'B', '.', '.', '.', '.', 'B', '.', '.', '.', '.', '.'], 
     ['.', '.', '.', 'B', '.', '.', '.', '.', 'B', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.']
    ]    
extra_check(M)

M = [['.', 'B', '.', '.', '.', '.', '.', '.', '.']]
extra_check(M)

M = [['B']]
extra_check(M)

M = [['.', 'B'], 
     ['B', '.'], 
     ['.', '.'], 
     ['.', '.'], 
     ['.', '.'], 
     ['.', '.'], 
     ['.', '.'], 
     ['.', '.']
    ]
extra_check(M)

M = [['.', '.', '.', '.', '.', '.', '.', '.'], 
     ['.', '.', '.', '.', '.', '.', '.', '.'], 
     ['B', 'B', '.', 'B', 'B', '.', '.', '.'], 
     ['.', '.', '.', '.', '.', '.', '.', '.']
    ]
extra_check(M)
