#include<stdio.h>
#include<string.h>
int Y[]={-1,0,1,0,0 ,0,0,0,-1,0};
int X[]={0,1,0,-1,-1,0,1,0,0, 0};
int main(){
  int h,w,i,j,ny,nx,t,r,min,my,mx,y[1000],x[1000],yy,yx,l;
  char m[20];
  while(scanf("%d %d",&h,&w),h||w){
    char d[30][30]={0};
    int c[30][30]={0};
    for(i=1;i<=h;i++){
      for(j=1;j<=w;j++){
	scanf(" %c",&d[i][j]);
	if(d[i][j]=='A')d[y[0]=i][x[0]=j]='.';
	if(d[i][j]=='B')d[yy=i][yx=j]='.';
      }
    }
    c[y[t=0]][x[0]]=1;
    for(r=1;r-t;t++){
      for(i=0;i<4;i++){
	ny=y[t]+Y[i];
	nx=x[t]+X[i];
	if(d[ny][nx]-'.'||c[ny][nx])continue;
	c[y[r]=ny][x[r]=nx]=c[y[t]][x[t]]+1;
	r++;
      }
    }
    /*for(i=0;i<h;i++){
      for(j=0;j<w;j++)printf("%2d ",c[i+1][j+1]);printf("\n");
      }*/
    scanf("%s",m);
    l=strlen(m);
    min=10000;
    for(i=0;i<10000;i++){
      if(c[yy][yx]&&c[yy][yx]<=i+1){
	if(min>i){
	  min=i;
	  my=yy;
	  mx=yx;
	}
      }
      ny=yy+Y[m[i%l]-'0'];
      nx=yx+X[m[i%l]-'0'];
      if(d[ny][nx]){
	yy=ny;
	yx=nx;
      }
    }
    if(min-i)printf("%d %d %d\n",min,my-1,mx-1);
    else     printf("impossible\n");
  }
  return 0;
}
    