#include using namespace std; int main() { int N, M; cin >> N >> M; string S; cin >> S; vector> adj(N); for (int i = 0; i < M; i++) { int u, v; cin >> u >> v; u--; v--; adj[u].push_back(v); adj[v].push_back(u); } long long DP[N] = {}; for (int i = 0; i < N; i++) { if (S[i] == 'P') { DP[i] = 1; } } for (int i = 0; i < N; i++) { if (S[i] == 'D') { for (const auto& x : adj[i]) { if (S[x] == 'P') { DP[i] += DP[x]; } } } } for (int i = 0; i < N; i++) { if (S[i] == 'C') { for (const auto& x : adj[i]) { if (S[x] == 'D') { DP[i] += DP[x]; } } } } long long ans = 0; for (int i = 0; i < N; i++) { if (S[i] == 'A') { for (const auto& x : adj[i]) { if (S[x] == 'C') { ans += DP[x]; } } } } cout << ans % 1000000007 << endl; }