R25B01_SPATH
Cho một lưới ô vuông có \(n\) hàng và \(m\) cột. Ô nằm trên hàng \(i\) và cột \(j\) được kí hiệu là \((i,j)\). Ở mỗi ô trên lưới, người ta điền một chữ cái Latin in thường (từ \(a\) đến \(z\)). Người ta chơi một trò chơi như sau:
Xuất phát từ ô \((1, 1)\).
Ở mỗi bước, người chơi được di chuyển từ ô hiện tại \((x,y)\) đến một trong hai ô \((x + 1,y)\) hoặc \((x,y + 1).\)
Trò chơi kết thúc khi người chơi đi đến ô \((n,m).\)
Sau khi chơi, người chơi nhận được một xâu bao gồm các kí tự trong các ô đã đi, theo thứ tự đã đi (kể cả ô \((1, 1)\) và \((n,m)\))
Yêu cầu: Hãy tìm cách chơi sao cho xâu nhận được có thứ tự từ điển nhỏ nhất có thể.
Dữ liệu:
Dòng đầu tiên chứa hai số nguyên \(n\) và \(m (1 ≤ n,m ≤ 2000)\) là kích thước của lưới.
\(n\) dòng tiếp theo, mỗi dòng chứa một xâu độ dài \(m\) chỉ bao gồm các chữ cái Latin in thường.
Kết quả:
- Ghi ra màn hình một xâu duy nhất là xâu có thứ tự từ điển nhỏ nhất có thể.
Ràng buộc:
Có 10% số điểm có \(n,m ≤ 10;\)
Có 30% số điểm có \(n,m ≤ 100;\)
Có 30% số điểm có \(n,m ≤ 500;\)
Có 30% số điểm còn lại không có giới hạn gì thêm.
Sample Input
3 3
aaa
aab
acd
Sample Output
aaabd
Comments