#include <bits/stdc++.h>
using namespace std;
const int N = 1005, M = N - 1, MAX_LOG = 20;
int n, m, k, up[N][MAX_LOG], timein[N], timeout[N], Time, h[N], where[N];
vector<int> child[N];
struct circle {
  int x, y, r, ind;
};
circle c[N];
struct point {
  int x, y, ind;
};
point p[N];
bool cmp(circle a, circle b) {
  if (a.r != b.r) return a.r < b.r;
  return a.ind < b.ind;
}
bool val(int i, int j) {
  long long x = 1LL * (c[i].x - c[j].x) * (c[i].x - c[j].x);
  long long y = 1LL * (c[i].y - c[j].y) * (c[i].y - c[j].y);
  long long r = 1LL * (c[i].r - c[j].r) * (c[i].r - c[j].r);
  return (x + y < r);
}
int find_circle(int ind) {
  for (int i = 0; i < m; i++)
    if (c[i].r > c[ind].r && val(ind, i)) return i;
  return M;
}
bool dis(int i, int j) {
  long long x = 1LL * (c[i].x - p[j].x) * (c[i].x - p[j].x);
  long long y = 1LL * (c[i].y - p[j].y) * (c[i].y - p[j].y);
  long long r = 1LL * c[i].r * c[i].r;
  return (x + y < r);
}
int find(int ind) {
  for (int i = 0; i < m; i++)
    if (dis(i, ind)) return i;
  return M;
}
void dfs(int u, int par = M) {
  up[u][0] = par;
  timein[u] = Time++;
  for (int i = 1; i < MAX_LOG; i++) up[u][i] = up[up[u][i - 1]][i - 1];
  for (auto v : child[u]) {
    h[v] = h[u] + 1;
    dfs(v, u);
  }
  timeout[u] = Time++;
}
bool is_ancestor(int u, int v) {
  return (timein[v] <= timein[u] && timeout[u] <= timeout[v]);
}
int lca(int u, int v) {
  if (is_ancestor(u, v)) return v;
  if (is_ancestor(v, u)) return u;
  for (int i = MAX_LOG - 1; 0 <= i; i--)
    if (!is_ancestor(v, up[u][i])) u = up[u][i];
  return up[u][0];
}
int main() {
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) {
    cin >> p[i].x >> p[i].y;
    p[i].ind = i;
  }
  for (int i = 0; i < m; i++) {
    cin >> c[i].r >> c[i].x >> c[i].y;
    c[i].ind = i;
  }
  sort(c, c + m, cmp);
  for (int i = 0; i < m; i++) {
    int t = find_circle(i);
    child[t].push_back(i);
  }
  for (int i = 0; i < n; i++) {
    int t = find(i);
    where[i] = t;
  }
  dfs(M);
  while (k--) {
    int a, b;
    cin >> a >> b;
    a--, b--;
    a = where[a], b = where[b];
    int h1 = h[a], h2 = h[b], h3 = h[lca(a, b)];
    cout << h1 + h2 - 2 * h3 << "\n";
  }
}
