#include #include #include #include using namespace std; int main() { int k, n; cin >> k >> n; vector v(k); for(auto& x: v) cin >> x; vector type(k); vector> dp(8); int lhs = 0; vector> ord; while(n--) { int idx; string s; cin >> idx >> s; idx--; int amt = -1; if(s == "ppp") amt = 0; if(s == "pp") amt = 1; if(s == "p") amt = 2; if(s == "mp") amt = 3; if(s == "mf") amt = 4; if(s == "f") amt = 5; if(s == "ff") amt = 6; if(s == "fff") amt = 7; ord.push_back({idx, amt}); } for(int i = 0; i < ord.size(); i++) { if(i+1 == ord.size()) { for(int j = ord[i][0]; j < k; j++) dp[ord[i][1]].push_back(v[j]); } else { for(int j = ord[i][0]; j < ord[i+1][0]; j++) dp[ord[i][1]].push_back(v[j]); } } int64_t ret = 0; for(int i = 0; i < 8; i++) sort(dp[i].begin(), dp[i].end()); for(int i = 0; i < 8; i++) for(int j = i+1; j < 8; j++) { int a = 0; int b = 0; while(a < dp[i].size()) { while(b < dp[j].size() && dp[j][b] <= dp[i][a]) b++; ret += b; a++; } } cout << ret << "\n"; }