#include <iostream>
using namespace std;
int a[5001][5001],sum[8001][8001],t=0,sz[5001];
int n,m;
int maxnumz(int z){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(z<=a[i][j]){
z=a[i][j];
}
}
}
return z;
}
void findmaxnum(int maxn){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(maxn==a[i][j]){
sum[t][0]=maxn;
sum[t][1]=i;
sum[t][2]=j;
t++;
}
}
}
}
int find2max(int i){
int maxz=a[sum[i][1]-1][sum[i][2]];
if(maxz<a[sum[i][1]+1][sum[i][2]]){
maxz=a[sum[i][1]+1][sum[i][2]];
}
if(maxz<a[sum[i][1]][sum[i][2]+1]){
maxz=a[sum[i][1]][sum[i][2]+1];
}
if(maxz<a[sum[i][1]][sum[i][2]-1]){
maxz=a[sum[i][1]][sum[i][2]-1];
}
return maxz;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char z;
cin>>z;
if(z=='#'){
a[i][j]=-1;
}else{
a[i][j]=int(z);
}
}
}
int maxnum=maxnumz(0);
findmaxnum(maxnum);
for(int i=0;i<t;i++){
sz[i]=find2max(i);
}
int maxsum=0;
for(int i=0;i<t;i++){
if(maxsum<sz[i]){
maxsum=sz[i];
}
}
if(maxsum==-1||maxsum==maxnum){
cout<<char(maxnum);
}else{
cout<<char(maxnum)<<char(maxsum);
}
return 0;
}
第2个测试点RE求调