#include <iostream>
#include <vector>
#include <iomanip>
#include <stdio.h>
using namespace std;

double prob(int n,int pos,int t,int d)
{
	double map[9]={0};
	map[pos] = 1;
	for(int i=0; i<n; i++)
	{
		double nmap[9]={0};
		for (int j=0; j<9; j++)
		{
			if ((j-3<0)||(j-3==d)){
				nmap[j]+=map[j]/4.0;
			} else {
				nmap[j-3]+=map[j]/4.0;
			}
			if ((j%3 == 0)||(j-1==d)){
				nmap[j]+=map[j]/4.0;
			} else {
				nmap[j-1]+=map[j]/4.0;
			}
			if ((j%3 == 2)||(j+1==d)){
				nmap[j]+=map[j]/4.0;
			} else {
				nmap[j+1]+=map[j]/4.0;
			}
			if ((j+3>8)||(j+3==d)){
				nmap[j]+=map[j]/4.0;
			} else {
				nmap[j+3]+=map[j]/4.0;
			}
		}
		for (int j=0; j<9; j++)
		{
			map[j]=nmap[j];
		}
	}
	return map[t];
}

int main() {
	vector<double> r;
	while(true)
	{
		int n;
		cin >> n;
		if (n==0){break;}
		char a[2],b[2],c[2];
		int s=0,t=0,d=0;
		scanf("%s %s %s",a,b,c);
		s = a[0] - 'A';
		t = b[0] - 'A';
		d = c[0] - 'A';
		r.push_back(prob(n,s,t,d));
	}
	for(int i=0; i<r.size(); i++)
	{
		cout << setprecision(10) << r[i] << endl;
	}
	return 0;
}