Bovine Genetics#10371

Bovine Genetics

2 seconds
256 megabytes
Easy

After sequencing the genomes of his cows, Farmer John has moved onto genomic editing! As we know, a genome can be represented by a string consisting of As, Cs, Gs and Ts. The maximum length of a genome under consideration by Farmer John is 10^5.

Farmer John starts with a single genome and edits it by performing the following steps:

For example, if FJ started with the genome AGGCTTT then he would perform the following steps:

Unfortunately, after editing the genome, Farmer John's computer crashed and he lost the sequence of the genome he originally started with. Furthermore, some parts of the edited genome have been damaged, meaning that they have been replaced by question marks.

Given the sequence of the edited genome, help FJ determine the number of possibilities for the original genome, modulo 10^9 + 7.

Input

A non-empty string where each character is one of A, G, C, T or ?.

Output

The number of possible original genomes modulo 10^9 + 7.

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading

Note

Example 1

The question mark can be any of A, G, C or T.

Example 2

There are two possible original genomes aside from AGGCTTT, which was described above.

AGGATTT -> AG | GAT | T | T -> GA | TAG | T | T -> GATAGTT

TAGGTTT -> TAG | GT | T | T -> GAT | TG | T | T -> GATTGTT