#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long> > v;
vector<pair<long long, long long> > c;
vector<long long> r;
int res[1001][1001];
bool isin(pair<long long, long long> a, pair<long long, long long> b,
          long long rr) {
  return (a.first - b.first) * (a.first - b.first) +
             (a.second - b.second) * (a.second - b.second) <=
         (rr) * (rr);
}
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  for (int _n((n)-1), i(0); i <= _n; i++) {
    pair<long long, long long> w;
    cin >> w.first >> w.second;
    v.push_back(w);
  }
  for (int _n((m)-1), i(0); i <= _n; i++) {
    pair<long long, long long> w;
    long long rr;
    cin >> rr >> w.first >> w.second;
    c.push_back(w);
    r.push_back(rr);
  }
  vector<bitset<1000> > lst(n);
  vector<int> cnt(n);
  for (int _n((n)-1), i(0); i <= _n; i++)
    for (int _n((m)-1), j(0); j <= _n; j++)
      if (isin(v[i], c[j], r[j])) lst[i][j] = 1, cnt[i]++;
  for (int _n((n)-1), i(0); i <= _n; i++) res[i][i] = 0;
  for (int _n((n)-1), i(0); i <= _n; i++)
    for (int j = i + 1; j < n; j++)
      res[i][j] = (cnt[i] + cnt[j]) - 2 * (lst[i] & lst[j]).count(),
      res[j][i] = res[i][j];
  for (int _n((k)-1), i(0); i <= _n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    a--, b--;
    printf("%d\n", res[a][b]);
  }
  return 0;
}
