h, w = map(int, input().split())
grid = [input().strip() for _ in range(h)]

current = set()
current.add((0, 0))
result = [grid[0][0]]

for _ in range(h + w - 2):
    next_cells = {}
    min_char = 'z'
    
    for (i, j) in current:
        for dx, dy in [(1, 0), (0, 1)]:
            ni, nj = i + dx, j + dy
            if ni < h and nj < w:
                char = grid[ni][nj]
                if (ni, nj) not in next_cells:
                    next_cells[(ni, nj)] = char
                if char < min_char:
                    min_char = char
    
    next_current = set()
    for (ni, nj), c in next_cells.items():
        if c == min_char:
            next_current.add((ni, nj))
    
    result.append(min_char)
    current = next_current

print(''.join(result))