#include <iostream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;

typedef unsigned long long ull;

const int dy[8] = {1,1,1,0,0,-1,-1,-1};
const int dx[8] = {-1,0,1,-1,1,-1,0,1};

int h,w;
string str[10];

void solve(){
  int y, x, ansn = 0;
  string ans = "0";
  set<string> s;
  for(int i=0;i<h;i++){
    for(int j=0;j<w;j++){
      for(int k=0;k<8;k++){
	string st;
	st += str[i][j];
	y = i;
	x = j;
	while(1){
	  y = (y + h + dy[k]) % h;
	  x = (x + w + dx[k]) % w;
	  if(y == i && j == x) break;
	  else st += str[y][x];
	  if(!s.empty() && s.find(st) != s.end()){
	    if(ansn < st.size() || ansn == st.size() && ans > st){
	      ans = st;
	      ansn = st.size();
	    }
	  } else s.insert(st);
	}

      }
    }
  }
  cout << ans << endl;
}

int main(){
  while(cin >> h >> w && (h|w)){
    for(int i=0;i<h;i++){
      cin >> str[i];
    }
    solve();
  }
}