#include using namespace std; constexpr long long mod = 1e9+7; int main(){ cin.tie(0); ios::sync_with_stdio(false); int N, M; cin >> N >> M; string S; cin >> S; vector> Es(N, vector()); for (int i = 0; i < M; ++i){ int u, v; cin >> u >> v; --u; --v; if (S[u] == 'P'){ if (S[v] == 'D'){ Es[u].push_back(v); } }else if (S[u] == 'D'){ if (S[v] == 'P'){ Es[v].push_back(u); }else if (S[v] == 'C'){ Es[u].push_back(v); } }else if (S[u] == 'C'){ if (S[v] == 'D'){ Es[v].push_back(u); }else if (S[v] == 'A'){ Es[u].push_back(v); } }else if (S[u] == 'A'){ if (S[v] == 'C'){ Es[v].push_back(u); } } } long long ans = 0; for (int p = 0; p < N; ++p){ for (int d: Es[p]){ for (int c: Es[d]){ (ans += Es[c].size()) %= mod; } } } cout << ans << endl; return 0; }