#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int weight[1002],cost[1002],number_of_items,capacity;
int dp[1002][1002];
int knapsack(int i,int w)
{
if(i>=number_of_items)
return 0;
if(dp[i][w]!=-1)
return dp[i][w];
int profit1=0,profit2=0;
if(w+weight[i]<=capacity)
profit1=cost[i]+knapsack(i+1,w+weight[i]);
profit2=knapsack(i+1,w);
dp[i][w]=max(profit1,profit2);
return dp[i][w];
}
int main()
{
int testcase,number_of_person,sum;
cin>>testcase;
while(testcase--)
{
sum=0;
cin>>number_of_items;
for(int i=0; i<number_of_items; i++)
{
cin>>cost[i]>>weight[i];
}
cin>>number_of_person;
for(int i=0; i<number_of_person; i++)
{
cin>>capacity;
memset(dp,-1,sizeof(dp));
sum+=knapsack(0,0);
}
cout<<sum<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgd2VpZ2h0WzEwMDJdLGNvc3RbMTAwMl0sbnVtYmVyX29mX2l0ZW1zLGNhcGFjaXR5OwppbnQgZHBbMTAwMl1bMTAwMl07CgppbnQga25hcHNhY2soaW50IGksaW50IHcpCnsKICAgIGlmKGk+PW51bWJlcl9vZl9pdGVtcykKICAgICAgICByZXR1cm4gMDsKICAgIGlmKGRwW2ldW3ddIT0tMSkKICAgICAgICByZXR1cm4gZHBbaV1bd107CiAgICBpbnQgcHJvZml0MT0wLHByb2ZpdDI9MDsKICAgIGlmKHcrd2VpZ2h0W2ldPD1jYXBhY2l0eSkKICAgICAgICBwcm9maXQxPWNvc3RbaV0ra25hcHNhY2soaSsxLHcrd2VpZ2h0W2ldKTsKICAgIHByb2ZpdDI9a25hcHNhY2soaSsxLHcpOwogICAgZHBbaV1bd109bWF4KHByb2ZpdDEscHJvZml0Mik7CiAgICByZXR1cm4gZHBbaV1bd107Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgdGVzdGNhc2UsbnVtYmVyX29mX3BlcnNvbixzdW07CiAgICBjaW4+PnRlc3RjYXNlOwogICAgd2hpbGUodGVzdGNhc2UtLSkKICAgIHsKICAgICAgICBzdW09MDsKICAgICAgICBjaW4+Pm51bWJlcl9vZl9pdGVtczsKICAgICAgICBmb3IoaW50IGk9MDsgaTxudW1iZXJfb2ZfaXRlbXM7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+Y29zdFtpXT4+d2VpZ2h0W2ldOwogICAgICAgIH0KICAgICAgICBjaW4+Pm51bWJlcl9vZl9wZXJzb247CiAgICAgICAgZm9yKGludCBpPTA7IGk8bnVtYmVyX29mX3BlcnNvbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5jYXBhY2l0eTsKICAgICAgICAgICAgbWVtc2V0KGRwLC0xLHNpemVvZihkcCkpOwogICAgICAgICAgICBzdW0rPWtuYXBzYWNrKDAsMCk7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PHN1bTw8ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==