adjacent = {"A" => ["A", "B", "D", "A"], "B" => ["B", "C", "E", "A"], "C" => ["C", "C", "F", "B"],
            "D" => ["A", "E", "G", "D"], "E" => ["B", "F", "H", "D"], "F" => ["C", "F", "I", "E"],
            "G" => ["D", "H", "G", "G"], "H" => ["E", "I", "H", "G"], "I" => ["F", "I", "I", "H"]}
while true
    n = gets.to_i
    break if n == 0
    s, t, b = gets.chomp.split
    arr = Array.new(n + 1){Hash.new(0)}
    arr[n][s] = 1
    n.downto(1){|i|
        arr[i].to_a.each{|k, v|
            adjacent[k].each{|x|
                case x
                when b then arr[i - 1][k] += v
                else arr[i - 1][x] += v
                end
            }
        }
    }
    puts arr[0][t] / arr[0].values.inject(:+).to_f
end
