#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<queue>
#include<cstdio>
#include<climits>
#include<cmath>
#include<cstring>
#include<string>

#define f first
#define s second
#define mp make_pair

#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++)
#define ALL(c) (c).begin(), (c).end()

using namespace std;

typedef unsigned int uint;
typedef long long ll;

int main(){
  int n;
  const int dx[4] = { 1,-1, 0, 0};
  const int dy[4] = { 0, 0, 1,-1};

  while(scanf("%d ",&n),n){
    char s,t,b;
    double d[3][3] = {{0.0}};
    scanf(" %c %c %c ",&s,&t,&b);
    s -= 'A'; t -= 'A'; b -= 'A';
    d[s/3][s%3] = 1.0;

    REP(i,n){
      double dn[3][3] = {{0.0}};
      REP(y,3) REP(x,3){
	REP(i,4){
	  int xx = x + dx[i];
	  int yy = y + dy[i];
	  if(xx >= 0 && xx <3 && yy >= 0 && yy <3 && (xx != b%3 || yy != b/3))
	     dn[yy][xx] += d[y][x]/4;
	     else
	       dn[y][x] += d[y][x]/4;
	}
      }
      memcpy(d,dn,sizeof(d));
      //REP(y,3){REP(x,3)printf("%.2f ",d[y][x]);puts("");}puts("");
    }
    printf("%.8f\n",d[t/3][t%3]);
  }
  return 0;
}