#include int main(int argc, char *argv[]) { for (;;) { int w, h, i, j; scanf("%d", &w), scanf("%d", &h); if (w == 0 && h == 0) return 0; char c[w + 1]; int dlen[w], dmaxlen; char d[w][w + h + 1], dmax[w + h + 1]; for (i = 0; i < w; i++) dlen[i] = 0; dmaxlen = 0; for (j = 0; j < h; j++) { scanf("%s", c); for (i = 0; i < w; i++) { if (!isdigit(c[i])) { dlen[i] = 0; continue; } if (i && (dlen[i-1] > dlen[i] || (dlen[i-1] == dlen[i] && memcmp(d[i-1], d[i], dlen[i]) > 0))) memcpy(d[i], d[i - 1], dlen[i] = dlen[i - 1]); if (d[i][0] == '0') dlen[i] = 0; d[i][dlen[i]++] = c[i]; if (dlen[i] > dmaxlen || (dlen[i] == dmaxlen && memcmp(d[i], dmax, dmaxlen) > 0)) memcpy(dmax, d[i], dmaxlen = dlen[i]); } } dmax[dmaxlen] = '\0'; printf("%s\n", dmax); } }