#include <bits/stdc++.h>
using namespace std;
long long kx[1010], ky[1010], cx[1010], cy[1010], r[1010];
long int d[1010], pa[1010], num[1010], sl[1010], deg[1010];
long int c[1010][1010], f[1010][1010];
long int m, n, k, cnt;
int inside(long long x, long long y, long int c) {
  return ((x - cx[c]) * (x - cx[c]) + (y - cy[c]) * (y - cy[c]) < r[c] * r[c]);
};
void duyet(int u) {
  num[u] = ++cnt;
  sl[u] = 1;
  for (int i = 1; i <= c[u][0]; i++)
    if (!num[c[u][i]]) {
      deg[c[u][i]] = deg[u] + 1;
      duyet(c[u][i]);
      sl[u] += sl[c[u][i]];
    }
}
long int solve(int u, int v) {
  if (f[u][v] != -1) return f[u][v];
  if (u == v) {
    f[u][v] = 0;
    return 0;
  }
  if (num[u] < num[v] && num[v] < num[u] + sl[u]) {
    f[u][v] = deg[v] - deg[u];
    return (f[u][v]);
  }
  if (num[v] < num[u] && num[u] < num[v] + sl[v]) {
    f[u][v] = deg[u] - deg[v];
    return (f[u][v]);
  }
  f[u][v] = 2 + solve(pa[u], pa[v]);
  return f[u][v];
};
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; i++) scanf("%I64d%I64d", &kx[i], &ky[i]);
  for (int i = 1; i <= m; i++) scanf("%I64d%I64d%I64d", &r[i], &cx[i], &cy[i]);
  r[0] = 2000000000;
  for (int i = 1; i <= n; i++) d[i] = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      if (inside(kx[i], ky[i], j) && r[j] < r[d[i]]) d[i] = j;
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= m; j++)
      if (inside(cx[i], cy[i], j) && r[j] > r[i] && r[j] < r[pa[i]]) pa[i] = j;
  for (int i = 1; i <= m; i++) {
    c[pa[i]][0]++;
    c[pa[i]][c[pa[i]][0]] = i;
  }
  duyet(0);
  for (int i = 0; i <= m; i++)
    for (int j = 0; j <= m; j++) f[i][j] = -1;
  int a, b;
  for (long int i = 1; i <= k; i++) {
    scanf("%d%d", &a, &b);
    printf("%d\n", solve(d[a], d[b]));
  }
}
