#include<iostream>
using namespace std;
int k, r,m,n;
int loc[20][2];
int khu[100][3];
bool in[20][100];
int visit[20];
int ans;
int A[20];
void reset(){
for(int u =0; u < n; u++){
visit[u] =0;
}
}
void Try(int i, int start){
for(int j =start; j <= m-1; j++){
A[i] = j;
if(i==k-1){
int tong =0;
for(int h=0; h<k;h++){
for(int u =0; u < n; u++){
if(visit[u] == 0 && in[A[h]][u] == true){
tong += khu[u][2];
visit[u] =1;
}
}
}
if(ans< tong) ans = tong ;
reset();
}
else {
Try(i+1, j+1);
}
}
}
int binh(int x){
int result;
result = x*x;
return result;
}
int main(){
freopen("Text.txt", "r", stdin);
int test;
cin >> test;
for(int tc=1; tc <= test; tc++){
cin >> k >>r >> m; // m la so location tiem nang, k la so cua hang
for(int i=0; i<m;i++){
cin >> loc[i][0] >> loc[i][1];
}
cin >> n; // n la so khu dan cu
for(int i=0; i<n;i++){
cin >> khu[i][0] >> khu[i][1] >> khu[i][2]; // luu toa do cac khu dan cu va so dan trong do
}
// xem xem khu dan cu nao nam trong vung cua loc nao
for(int i=0; i< m; i++){
for(int j =0; j < n; j++){
if((binh(khu[j][0]-loc[i][0]) + binh(khu[j][1]-loc[i][1])) <= binh(r)){
in[i][j] = true;
}
else in[i][j] =false;
}
}
ans=0;
Try(0,0);
cout << "#" << tc << " " << ans << endl;
}
return 0;
}