#include<cmath>
#include<cstdio>
#include<cstring>

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

using namespace std;

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

int tx,ty,bx,by,memo[3][3][16];

void f(char c,int &x,int &y){
	x=(c-'A')%3;
	y=(c-'A')/3;
}

int dfs(int x,int y,int batt){
	if(~memo[y][x][batt])	return memo[y][x][batt];
	if(batt==0)	return (x==tx && y==ty);

	int cnt=0;
	rep(i,4){
		int xx=x+dx[i],yy=y+dy[i];
		if(0<=xx && xx<3 && 0<=yy && yy<3 && !(xx==bx && yy==by));
		else	xx=x,yy=y;
		cnt+=dfs(xx,yy,batt-1);
	}
	return memo[y][x][batt]=cnt;
}

int main(){
	int n;
	for(char s,t,b;scanf("%d %c %c %c",&n,&s,&t,&b),n;){
		memset(memo,-1,sizeof(memo));
		int sx,sy;
		f(s,sx,sy);
		f(t,tx,ty);
		f(b,bx,by);
		printf("%.9f\n",dfs(sx,sy,n)/pow(4.0,n));
	}
	return 0;
}