#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<vector>
#include<cstdlib>
using namespace std;
int main()
{
map<string,int>mp1,mp2,mp3;
int w,l,n;
string ss;
cin>>w>>l;
while(w--)
{
cin>>ss>>n;
mp1[ss]= n;
mp2[ss]=1;
}
char ch,str[1000000];
// getchar();
while(l--)
{
mp3.clear();
int i=0;
while(ch=getchar())
{
if(ch>='A'&&ch<='Z')
{
ch+=32;
}
if(ch=='\n'||ch==' '||ch=='.')
{
str[i]='\0';
if(mp2[str]==1)
{
mp3[str]++;
}
i=0;
}
if(ch=='.') break;
else if((ch>='a'&&ch<='z')||(ch>='0'&&ch<='9'))
{
str[i++]=ch;
}
}
string sr;
map<string,int>::iterator pp=mp3.begin();
long long sum=0;
int x,y;
for (; pp!=mp3.end(); pp++)
{
sr=pp->first;
x=mp1[sr];
y=pp->second;
sum+=(x*y);
}
cout<<sum<<endl;
}
return 0;
}
#include<iostream>
#include<cstring>
#include<map>
#include<vector>
#include<cstdlib>
using namespace std;
int main()
{
map<string,int>mp1,mp2,mp3;
int w,l,n;
string ss;
cin>>w>>l;
while(w--)
{
cin>>ss>>n;
mp1[ss]= n;
mp2[ss]=1;
}
char ch,str[1000000];
// getchar();
while(l--)
{
mp3.clear();
int i=0;
while(ch=getchar())
{
if(ch>='A'&&ch<='Z')
{
ch+=32;
}
if(ch=='\n'||ch==' '||ch=='.')
{
str[i]='\0';
if(mp2[str]==1)
{
mp3[str]++;
}
i=0;
}
if(ch=='.') break;
else if((ch>='a'&&ch<='z')||(ch>='0'&&ch<='9'))
{
str[i++]=ch;
}
}
string sr;
map<string,int>::iterator pp=mp3.begin();
long long sum=0;
int x,y;
for (; pp!=mp3.end(); pp++)
{
sr=pp->first;
x=mp1[sr];
y=pp->second;
sum+=(x*y);
}
cout<<sum<<endl;
}
return 0;
}