#define _USE_MATH_DEFINES #include using namespace std; signed main() { ios::sync_with_stdio(false); cin.tie(0); const int mod = 1e9 + 7; int n, m; cin >> n >> m; string s; cin >> s; vector> e[3]; vector dp(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--; v--; if (s[u] < s[v]) swap(u, v); if (s[u] == 'P' && s[v] == 'D') { e[0].emplace_back(u, v); dp[u] = 1; } if (s[u] == 'D' && s[v] == 'C') { e[1].emplace_back(u, v); } if (s[u] == 'C' && s[v] == 'A') { e[2].emplace_back(u, v); } } for (int i = 0; i < 3; i++) { for (auto j : e[i]) { dp[j.second] += dp[j.first]; dp[j.second] %= mod; } } int ans = 0; for (int i = 0; i < n; i++) { if (s[i] == 'A') { ans += dp[i]; ans %= mod; } } cout << ans << endl; return 0; }