#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/stack:16000000")
#pragma warning(disable : 4996)
const int inf = 1e9 + 1000;
const double eps = 1e-9;
const int MAXN = 1 << 10;
vector<int> adj[MAXN];
int d[MAXN];
void mark_d(int u, int depth = 0) {
  if (d[u] != -1) return;
  d[u] = depth;
  for (int i = (0); i < ((int)adj[u].size()); ++i) mark_d(adj[u][i], depth + 1);
}
int memo_lca[MAXN][MAXN];
int round_parent[MAXN];
long long n, m, k;
int lca(int u, int v) {
  if (u > v) swap(u, v);
  int& ret = memo_lca[u][v];
  if (ret != -1) return ret;
  if (u == v || v == m) return ret = v;
  int p1 = lca(round_parent[u], v);
  int p2 = lca(u, round_parent[v]);
  if (d[p1] > d[p2])
    ret = p1;
  else
    ret = p2;
  return ret;
}
int main() {
  long long opx[MAXN], opy[MAXN];
  long long ox[MAXN], oy[MAXN], r[MAXN];
  memset((memo_lca), (-1), sizeof(memo_lca));
  cin >> n >> m >> k;
  for (int i = (0); i < (n); ++i) scanf("%lld %lld", opx + i, opy + i);
  for (int i = (0); i < (m); ++i)
    scanf("%lld %lld %lld", r + i, ox + i, oy + i);
  r[m] = inf;
  ox[m] = oy[m] = 0;
  int op_inside[MAXN];
  for (int i = (0); i < (MAXN); ++i) op_inside[i] = m;
  for (int i = (0); i < (n); ++i)
    for (int j = (0); j < (m); ++j)
      if (((opx[i] - ox[j]) * (opx[i] - ox[j])) +
                  ((opy[i] - oy[j]) * (opy[i] - oy[j])) <=
              ((r[j]) * (r[j])) &&
          r[j] < r[op_inside[i]])
        op_inside[i] = j;
  for (int i = (0); i < (MAXN); ++i) round_parent[i] = m;
  for (int i = (0); i < (m); ++i)
    for (int j = (0); j < (m + 1); ++j)
      if (j != i)
        if (r[j] > r[i] &&
            ((ox[i] - ox[j]) * (ox[i] - ox[j])) +
                    ((oy[i] - oy[j]) * (oy[i] - oy[j])) <=
                ((r[j]) * (r[j])) &&
            r[j] < r[round_parent[i]])
          round_parent[i] = j;
  for (int i = (0); i < (m); ++i) adj[round_parent[i]].push_back(i);
  memset((d), (-1), sizeof(d));
  mark_d(m);
  for (int i = (0); i < (k); ++i) {
    int u, v;
    scanf("%d %d", &u, &v);
    --u, --v;
    u = op_inside[u], v = op_inside[v];
    int p = lca(u, v);
    printf("%d\n", d[u] + d[v] - 2 * d[p]);
  }
  return 0;
}
