#include <iostream>
#include <map>

using namespace std;

#define REP(i,n) for (int i=0; i<n; i++)

int main(){
  
  while (1){
    int w, h;
    char mp[20][30];
    const int diff[] = {1, 0, -1, 0, 1, 1, -1, -1, 1};
    map<string, int> spells;
    string input, ans="";
    
    cin >> h >> w;
    if (w==0 && h==0){
      break;
    }
    
    REP(j, h){
      cin >> input;
      REP(k, w){
        mp[j][k] = input[k];
      }
    }
    
    REP(j0, h){
      REP(k0, w){
        REP(i,8){
//          printf("(%d, %d) i=%d\n", j0, k0, i);
          string str = "";
          int j=j0, k=k0;
          while(1){
//            printf("(%d, %d)\n", j, k);
            str += mp[j][k];
            spells[str]++;
            if (spells[str]>1){
              if (ans.length() < str.length() || (ans.length()==str.length() && ans > str)){
                ans = str;
              }
            }
            j = (j+diff[i]+h)%h;
            k = (k+diff[i+1]+w)%w;
            if (j==j0 && k==k0){
              break;
            }
          }
//          cout << str << endl;
        
        }
      }
    }
    
    if (ans.length()<2){
      cout << 0 << endl;
    }else{
      cout << ans << endl;
    }
    
    
  }
}
