#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int mod=998244353; int main(){ int h,w; string s[3000]; cin>>h>>w; for(int i=0;i>s[i]; string ans={s[0][0]}; set>tmp={{0,0}}; for(int i=0;i>nxt; char c=-1; for(auto[x,y]:tmp){ if(x!=h-1){ if(c==-1||c>s[x+1][y]){ c=s[x+1][y]; nxt.clear(); } if(c==s[x+1][y]) nxt.insert({x+1,y}); } if(y!=w-1){ if(c==-1||c>s[x][y+1]){ c=s[x][y+1]; nxt.clear(); } if(c==s[x][y+1]) nxt.insert({x,y+1}); } } ans+=c; tmp.swap(nxt); } cout<