You think this is something? You think this is bad? This? This chicanery?
- Chuck McGill, Better Call Saul
Albuquerque is a large city. It has crossings and one-directional highways between them. It's guaranteed that if all highways were undirected, it would be possible to get from any crossing to any other by these highways. Additionally, every crossing has a label: S
or F
, indicating start and finish correspondingly.
Saul and Kim are going to do another chicanery. They can perform the following operation any number of times:
- Choose any highway such that the following conditions hold:
- This highway is directed from crossing to crossing
- Crossing has label
S
- Crossing has label
F
- Change the direction of the highway and swap labels on and .
What is the total number of different configurations that Saul and Kim can achieve by applying this operation any number of times? As this number can be very large, output it modulo .
Two configurations are called different if some crossing has different labels in them, or if some highway has different orientation in them.
Input data
The first line of the input contains a single integer () - the number of crossings in Albuquerque.
The second line of the input contains a string of length , consisting of characters S
and F
. The -th character of this string denotes the initial label of crossing .
The -th of the next lines contains two integers (, ) - denoting a directed highway from crossing to crossing . It's guaranteed that if all highways were undirected, it would be possible to get from any crossing to any other by these highways.
Output data
Output a single integer - the total number of different configurations that Saul and Kim can achieve by applying this operation any number of times, modulo .
Example 1
stdin
1 2
stdout
3
Explanation
In the first sample, all highways are directed from crossings with F
on them to crossings with S
on them, so it's impossible to do any operations.
Example 2
stdin
5 -1
stdout
4
Explanation
In the second sample, for each it's possible to do an operation with nodes . Resulting three configurations, together with the initial one, are the only possible configurations.
Example 3
stdin
5 -1
stdout
4