#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<map>
using namespace std;

int W,H,i,j,k,l,p,m[3]={0,1,-1},h,w,sh,sw;
char D[10][21];
string T,R;
map<string,int> S;
int main()
{
	for(;scanf("%d%d\n",&H,&W),H;)
	{
		S.clear();
		R="0";
		for(i=k=0,l=1;i<H;i++)gets(D[i]);
		for(sh=0;sh<H;sh++)
			for(sw=0;sw<W;sw++)
				for(i=0;i<3;i++)
					for(j=0;j<3;j++)
					{
						if(i==0&&j==0)continue;
						T.clear();
						for(h=sh,w=sw,p=0;!(p!=0&&h==sh&&w==sw);h=(h+m[i]+H)%H,w=(w+m[j]+W)%W,p++)
						{
							T+=D[h][w];
							if(S.find(T)!=S.end())
							{
								if(R.length()<T.length()||(R.length()==T.length()&&R>T))
									R=T;
							}
							else
								S.insert(map<string,int>::value_type(T,1));
						}
					}
		cout<<R<<endl;
	}
	return 0;
}