using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static string[] SList(int n) => Enumerable.Repeat(0, n).Select(_ => ReadLine()).ToArray(); static void Main() { var c = NList; var (h, w) = (c[0], c[1]); var s = SList(h); var res = new List(); res.Add(s[0][0]); var prevmin = s[0][0]; for (var t = 0; t < h + w - 2; ++t) { var next = new List<(int x, int y)>(); var min = '{'; for (var y = Math.Min(t, w - 1); y >= 0; --y) { var x = t - y; if (x >= h) break; if (s[x][y] == prevmin) { if (x + 1 < h) min = (char)Math.Min(min, s[x + 1][y]); if (y + 1 < w) min = (char)Math.Min(min, s[x][y + 1]); } } res.Add(min); prevmin = min; } WriteLine(string.Concat(res)); } }