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))