#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
char map[3][3]={'A','B','C','D','E','F','G','H','I'};
double dp[16][3][3];
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
int main(){
	int n;
	char s,t,d;
	while(true){
	cin>>n;
	if(n==0)break;
	cin>>s>>t>>d;
	for(int i=0;i<=n;i++)for(int f=0;f<3;f++)for(int g=0;g<3;g++)dp[i][f][g]=0.0;
	for(int i=0;i<3;i++)for(int j=0;j<3;j++)if(map[i][j]==s)dp[0][i][j]=1.0;
	for(int i=0;i<n;i++){
		for(int f=0;f<3;f++){
			for(int g=0;g<3;g++){
				for(int j=0;j<4;j++){
					bool move=false;
					if(f+dy[j]>=0&&f+dy[j]<3&&g+dx[j]>=0&&g+dx[j]<3){if(map[f+dy[j]][g+dx[j]]!=d)move=true;}
					if(move)dp[i+1][f+dy[j]][g+dx[j]]+=dp[i][f][g]/4.0;
					else dp[i+1][f][g]+=dp[i][f][g]/4.0;
				}
			}
		}
	}
	for(int i=0;i<3;i++)for(int j=0;j<3;j++)if(map[i][j]==t)cout<<fixed<<setprecision(10)<<dp[n][i][j]<<endl;
	}
	return 0;
}