#arc108d. [arc108_d]AB

[arc108_d]AB

問題文

整数 NN44 つの文字 $c_{\\mathrm{AA}},c_{\\mathrm{AB}},c_{\\mathrm{BA}},c_{\\mathrm{BB}}$ が与えられます。 ここで、与えられる 44 つの文字はいずれも AB であることが保証されます。

すぬけ君は文字列 ss を持っています。 ss ははじめ AB です。

ss の長さを s|s| と書くことにします。 すぬけ君は以下の 44 種類の操作を任意の順序で 00 回以上行うことができます。

  1. 1leqi<s,si1 \\leq i < |s|, s_{i} = A, si+1s_{i+1} = A なる ii を選んで、ssii 文字目と i+1i+1 文字目の間に cmathrmAAc_{\\mathrm{AA}} を挿入する。
  2. 1leqi<s,si1 \\leq i < |s|,s_{i} = A, si+1s_{i+1} = B なる ii を選んで、ssii 文字目と i+1i+1 文字目の間に cmathrmABc_{\\mathrm{AB}} を挿入する。
  3. 1leqi<s,si1 \\leq i < |s|,s_{i} = B, si+1s_{i+1} = A なる ii を選んで、ssii 文字目と i+1i+1 文字目の間に cmathrmBAc_{\\mathrm{BA}} を挿入する。
  4. 1leqi<s,si1 \\leq i < |s|,s_{i} = B, si+1s_{i+1} = B なる ii を選んで、ssii 文字目と i+1i+1 文字目の間に cmathrmBBc_{\\mathrm{BB}} を挿入する。

ss の長さが NN になるまで操作を行ったあとの ss としてありうる文字列の個数を 109+710^9+7 で割ったあまりを求めてください。

制約

  • 2leqNleq10002 \\leq N \\leq 1000
  • $c_{\\mathrm{AA}},c_{\\mathrm{AB}},c_{\\mathrm{BA}},c_{\\mathrm{BB}}$ は AB

入力

入力は以下の形式で標準入力から与えられる。

NN cmathrmAAc_{\\mathrm{AA}} cmathrmABc_{\\mathrm{AB}} cmathrmBAc_{\\mathrm{BA}} cmathrmBBc_{\\mathrm{BB}}

出力

ss の長さが NN になるまで操作を行ったあとの ss としてありうる文字列の個数を 109+710^9+7 で割ったあまりを出力せよ。


入力例 1

4
A
B
B
A

出力例 1

2
  • ss としてありうる文字列は ABABABBB22 通りです。

入力例 2

1000
B
B
B
B

出力例 2

1
  • ss としてありうる文字列は 11 通りです。