D - We Like AGC

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 400

問題文

整数 N が与えられます。次の条件を満たす長さ N の文字列の数を 10^9+7 で割った余りを求めてください。

  • A, C, G, T 以外の文字を含まない。
  • AGC を部分文字列として含まない。
  • 隣接する 2 文字の入れ替えを 1 回行うことで上記の条件に違反させることはできない。

注記

文字列 T の部分文字列とは、T の先頭と末尾から 0 文字以上を取り去って得られる文字列です。

例えば、ATCODER の部分文字列には TCO, AT, CODER, ATCODER, (空文字列) が含まれ、AC は含まれません。

制約

  • 3 \leq N \leq 100

入力

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

N

出力

条件を満たす文字列の数を 10^9+7 で割った余りを出力せよ。


入力例 1

3

出力例 1

61

A, C, G, T 以外の文字を含まない長さ 3 の文字列は 4^3 = 64 通り存在し、そのうち AGC, ACG, GAC のみが条件に違反するため、答えは 64 - 3 = 61 通りです。


入力例 2

4

出力例 2

230

入力例 3

100

出力例 3

388130742

文字列の数を 10^9+7 で割った余りを出力することをお忘れなく。

Score : 400 points

Problem Statement

You are given an integer N. Find the number of strings of length N that satisfy the following conditions, modulo 10^9+7:

  • The string does not contain characters other than A, C, G and T.
  • The string does not contain AGC as a substring.
  • The condition above cannot be violated by swapping two adjacent characters once.

Notes

A substring of a string T is a string obtained by removing zero or more characters from the beginning and the end of T.

For example, the substrings of ATCODER include TCO, AT, CODER, ATCODER and (the empty string), but not AC.

Constraints

  • 3 \leq N \leq 100

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of strings of length N that satisfy the following conditions, modulo 10^9+7.


Sample Input 1

3

Sample Output 1

61

There are 4^3 = 64 strings of length 3 that do not contain characters other than A, C, G and T. Among them, only AGC, ACG and GAC violate the condition, so the answer is 64 - 3 = 61.


Sample Input 2

4

Sample Output 2

230

Sample Input 3

100

Sample Output 3

388130742

Be sure to print the number of strings modulo 10^9+7.