Pohlepko

왼쪽 위에서 오른쪽 아래까지 오른쪽이나 아래로만 이동하는 경로에서 읽히는 문자열 가운데 사전순으로 가장 작은 것을 구한다.

보통6동적 계획법그리디배열BFS면접 대비아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

Pohlepko는 생일 선물로 판을 하나 받았다. 판은 NNMM열이고, 각 칸에 영어 소문자가 하나씩 적혀 있다. 생일 파티가 지루해진 사람들은 이 판으로 간단한 게임을 하기로 했다.

게임은 왼쪽 위 칸 (1,1)(1, 1)에 말을 놓고 시작한다. 매 차례마다 말을 오른쪽이나 아래로 한 칸 옮겨야 하고, 말은 판을 벗어날 수 없다. 말이 오른쪽 아래 칸 (N,M)(N, M)에 도착하면 게임이 끝난다. 말이 지나간 칸의 글자를 지나간 순서대로 이어 붙이면 단어 하나가 만들어진다. 게임의 목표는 이렇게 만들 수 있는 단어 중 사전순으로 가장 앞서는 단어를 찾는 것이다.

사전순으로 가장 앞서는 단어를 만든 사람이 사탕 한 봉지를 상으로 받는다. Pohlepko는 사탕을 꼭 받고 싶어서, 사전순으로 가장 앞서는 단어를 찾는 프로그램을 짜 달라고 부탁했다.

사전순은 단어가 사전에 실리는 순서다. 두 단어의 첫 글자가 다르면 알파벳에서 먼저 나오는 글자로 시작하는 단어가 더 앞선다.

입력

첫째 줄에 두 정수 NNMM이 공백으로 구분되어 주어진다. (1N,M20001 \le N, M \le 2000)

다음 NN개의 줄에는 판의 각 행이 주어진다. 각 줄은 영어 소문자 MM개로 이루어져 있다.

출력

사전순으로 가장 앞서는 단어를 한 줄에 출력한다.

힌트

다음 그림은 가장 앞서는 단어를 만드는 경로의 예를 보여 준다.