local ior = io.read local n, m = ior("*n", "*n", "*l") local s = {} local d_to_p = {} local c_to_a = {} local dc = {} local str = ior() for i = 1, n do s[i] = str:sub(i, i) d_to_p[i] = 0 c_to_a[i] = 0 end for i = 1, m do local a, b = ior("*n", "*n") if(s[a] == "D" and s[b] == "P") then d_to_p[a] = d_to_p[a] + 1 elseif(s[b] == "D" and s[a] == "P") then d_to_p[b] = d_to_p[b] + 1 elseif(s[a] == "C" and s[b] == "A") then c_to_a[a] = c_to_a[a] + 1 elseif(s[b] == "C" and s[a] == "A") then c_to_a[b] = c_to_a[b] + 1 elseif(s[a] == "D" and s[b] == "C") then local tmp = {} tmp.d, tmp.c = a, b table.insert(dc, tmp) elseif(s[b] == "D" and s[a] == "C") then local tmp = {} tmp.d, tmp.c = b, a table.insert(dc, tmp) end end local sum = 0 for k, v in pairs(dc) do local d, c = v.d, v.c sum = (sum + d_to_p[d] * c_to_a[c]) % 1000000007 end print(sum)