#include <bits/stdc++.h>
using namespace std;
int n, m, ans;
map<string, int> mp;
string t;
string s;
bool check(char e) {
if (e == ',' || e == '.' || e == '!' || e == '?' || e == ' ') {
return true;
}
return false;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
string s;
int a;
cin >> s >> a;
mp[s] = a;
}
getline(cin, s);
while(getline(cin, s)) {
for (int i = 0; i < s.size(); i++) {
char c = s[i];
if (check(c)) {
ans += (ans + mp[t]) % m;
t = "";
}
else {
t += c;
if (i == s.size() - 1) {
ans += (ans + mp[t]) % m;
t = "";
}
}
}
}
cout << ans % m;
return 0;
}
为什么错了