#include<stdio.h>
#include<string.h>
#include<time.h>
int x,y,dx[8]={0,1,1,1,0,-1,-1,-1},dy[8]={1,1,0,-1,-1,-1,0,1},co[191],sps,final;//dx??¨dy???8?????????????§????????????????????????????????????????????¨??????????
char dic[191][1000][191],sp[1000][191];//dic[??????????????????][?????°][??????]?????¨???????????????????´????????????????sp[][]????????¶?????????????????????????´??????????
void ans(char map[20][10],int nx,int ny,int dir){//??????????????????????????????????????¢??§??????x??§?¨?,y??§?¨??????????(0??????7)
	int fx,fy,len,po,qw,sw,ck;
	char dam[191]={};
	fx=nx;
	fy=ny;
	len=0;
	while(1){
		dam[len]=map[nx][ny];//dam[]??????????????\???????????????
		len++;//dam[]?????????????????????
		if(len>=final){//?????????????????¨????????????dam[]???sp[][]?????????????????§?????\????????¨?????\????????????????????????
			sw=ck=0;
			for(po=0;po<sps;po++){//??¨sp[][]?????????????????§???dam[]?????????????????????dam[]???dic[][][]??????sp[][]????????\????????????
				if(strcmp(sp[po],dam)==0){
					ck++;
					break;
				}
			}
			if(ck==0){//dam[]???sp[][]???????????´????????¨dic[][][]??¨???????????§????????????????????????
				for(po=0;po<co[len];po++){
					if(strcmp(dic[len][po],dam)==0){//???????????????????????°dam[]???sp[][]?????\?????????
						if(final<strlen(dam)){//sp[][]????????§????????´??°???????????????sp[][]????????°sps???1????????????
							strcpy(sp[0],dam);//????????¨??????dam[]???sp[0]?????\??????
							sps=1;
							final=strlen(dam);
						}
						else{//len=final??????????????????????????\?????????
							strcpy(sp[sps],dam);
							sps++;
						}
						sw++;
						break;
					}
				}
			}
			if(sw==0&&ck==0){//dam[]???sp[][]??????dic[][][]??????????????????dam[]???dic[][][]???????????????
				strcpy(dic[len][co[len]],dam);
				co[len]++;//co[????????????]???dir[][][]????????°????????????????????¨????????¨???????????????
			}
		}
		nx=(nx+dx[dir]+x)%x;
		ny=(ny+dy[dir]+y)%y;//??????????±????????????????????§???????
		if(nx==fx&&ny==fy){//?§??????§?????????????????\??????????????????
			break;
		}
	}
	return;
}
int main(void){
	int i,j,k,maxl,t0,t1,tsum=0;
	char dn[20][10],nu;
	for(k=0;k<191;k++){
		co[k]=0;
		for(i=0;i<1000;i++){//????????????
			for(j=0;j<191;j++){
				dic[k][i][j]=sp[i][j]=0;
			}
		}
	}
	for(i=0;i<20;i++){
		for(j=0;j<10;j++){
			dn[i][j]=0;
		}
	}
	while(1){
		t0=clock();
		scanf("%d %d",&y,&x);//??????????????§????????????????????????
		if(x==0&&y==0){
			break;
		}
		for(k=0;k<191;k++){//2???????????????????????????continue???,break???????????¨???
			if(co[k]==0){//dic???????????????????????????????????????k??§????????°0??????i,j,????????????????????????
				continue;
			}
			co[k]=0;
			for(i=0;i<1000;i++){
				if(dic[k][i][0]==0){
					break;
				}
				for(j=0;j<191;j++){
					if(dic[k][i][j]==0){
						break;
					}
					dic[k][i][j]=0;
				}
			}
		}
		for(i=0;i<1000;i++){//dic??¨????§????
			if(sp[i][0]==0){
				continue;
			}
			for(j=0;j<191;j++){
				sp[i][j]=0;
			}
		}
		for(i=0;i<20;i++){
			if(dn[i][0]==0){
				break;
			}
			for(j=0;j<10;j++){
				dn[i][j]=0;
			}
		}
		i=j=0;
		while(1){
			scanf("%c",&nu);//????????????????????????????????????
			if(nu!='\n'){
				dn[i][j]=nu;
				i++;
				if(i==x){
					i=0;
					j++;
				}
				if(j==y){
					break;
				}
			}
		}
		sps=0;//sp[][]????????°???????????????0???
		final=2;//sp[][]?????\????????????????????????????????????????????????2??¨?????????
		for(i=0;i<x;i++){//?????????????????¨??????????§??????¨????????¨???????????¨?????????????????¨??????
			for(j=0;j<y;j++){
				for(k=0;k<8;k++){
					ans(dn,i,j,k);
				}
			}
		}
		maxl=final;
		final=0;
		for(i=1;i<sps;i++){//???????????§sp[i]??????????????\?????´??????final????????´???
			if(strcmp(sp[final],sp[i])>0){
				final=i;
			}
		}
		if(strlen(sp[final])==0){//??????????±??????£???sp[][]????????????0??????sp[][]???1??????????????¨???????????¨????????§0????????????
			printf("0\n");
		}
		else{
			for(i=0;i<maxl;i++){//????????§??????????????????????????????
				printf("%c",sp[final][i]);
			}
			printf("\n");
		}
		t1=clock();
		//printf("time %d\n",t1-t0);
		tsum+=t1-t0;
	}
	//printf("Sum %d\n",tsum);
	return 0;
}

Measured memory_bytes: 36428