#include int n, m; char s[100001]; int us[100000], vs[100000]; long long f[100000]; int main() { scanf("%d %d %s", &n, &m, s); for (int i = 0; i < m; i++) { scanf("%d %d", us + i, vs + i); us[i]--; vs[i]--; if (s[us[i]] == 'P' && s[vs[i]] == 'D') f[vs[i]]++; if (s[vs[i]] == 'P' && s[us[i]] == 'D') f[us[i]]++; if (s[us[i]] == 'C' && s[vs[i]] == 'A') f[us[i]]++; if (s[vs[i]] == 'C' && s[us[i]] == 'A') f[vs[i]]++; } long long ans = 0; for (int i = 0; i < m; i++) { if (s[us[i]] == 'D' && s[vs[i]] == 'C') ans += f[us[i]] * f[vs[i]]; if (s[vs[i]] == 'D' && s[us[i]] == 'C') ans += f[vs[i]] * f[us[i]]; } printf("%lld\n", ans % 1000000007); }