#include <bits/stdc++.h>
using namespace std;
const int maxn = 1110;
struct Point {
  int x, y;
} point[maxn];
struct Cir {
  int r;
  Point a;
} cir[maxn];
int n, m, k;
vector<int> tree[maxn];
int fat[maxn];
int lev[maxn];
int bel[maxn];
bool cmp(const Cir a, const Cir b) { return a.r > b.r; }
inline double dis(Point a, Point b) {
  double d =
      (double)(a.x - b.x) * (a.x - b.x) + (double)(a.y - b.y) * (a.y - b.y);
  return sqrt(d);
}
bool isin(Cir a, Cir b) {
  double s1 = dis(a.a, b.a);
  double s2 = a.r - b.r;
  return s1 < s2;
}
void Btree() {
  memset(lev, 0, sizeof(lev));
  memset(fat, -1, sizeof(fat));
  for (int i = 0; i <= m; i++) {
    tree[i].clear();
  }
  for (int i = 1; i <= m; i++) {
    int hf = 0;
    for (int j = i - 1; j >= 1; j--) {
      if (isin(cir[j], cir[i])) {
        hf = 1;
        fat[i] = j;
        tree[j].push_back(i);
        lev[i] = lev[j] + 1;
        break;
      }
    }
    if (hf == 0) {
      fat[i] = 0;
      lev[i] = 1;
      tree[0].push_back(i);
    }
  }
}
int isf;
void dfs(int cid, int pid) {
  for (int i = 0; i < tree[cid].size(); i++) {
    int z = tree[cid][i];
    if (z == fat[cid]) continue;
    if (dis(cir[z].a, point[pid]) < (double)cir[z].r) {
      dfs(z, pid);
      return;
    }
  }
  bel[pid] = cid;
}
void BEL() {
  memset(bel, -1, sizeof(bel));
  for (int i = 1; i <= n; i++) {
    dfs(0, i);
  }
}
int LCA(int a, int b) {
  int ss = a;
  int ee = b;
  while (ss != ee) {
    if (lev[ss] > lev[ee]) {
      ss = fat[ss];
    } else if (lev[ss] < lev[ee]) {
      ee = fat[ee];
    } else if (lev[ss] == lev[ee]) {
      ss = fat[ss];
      ee = fat[ee];
    }
  }
  return ss;
}
int main() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &point[i].x, &point[i].y);
  }
  for (int i = 1; i <= m; i++) {
    scanf("%d%d%d", &cir[i].r, &cir[i].a.x, &cir[i].a.y);
  }
  sort(cir + 1, cir + 1 + m, cmp);
  Btree();
  BEL();
  int a, b;
  for (int i = 1; i <= k; i++) {
    scanf("%d%d", &a, &b);
    a = bel[a];
    b = bel[b];
    int lca = LCA(a, b);
    printf("%d\n", lev[a] - lev[lca] + lev[b] - lev[lca]);
  }
  return 0;
}
