#include <bits/stdc++.h>
using namespace std;
struct Nodes {
  double x, y;
} p[1010];
struct Cir {
  double r;
  Nodes s;
} cir[1010];
int n, m, nm;
double sqr(double x) { return x * x; }
double dis(Nodes p1, Nodes p2) { return sqr(p1.x - p2.x) + sqr(p1.y - p2.y); }
int isin(int a, int b) {
  double len = dis(p[a], cir[b].s);
  if (len <= sqr(cir[b].r)) return 1;
  return 0;
}
int main() {
  int i, j, k;
  while (scanf("%d%d%d", &n, &m, &nm) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%lf%lf", &p[i].x, &p[i].y);
    }
    for (i = 1; i <= m; i++) {
      scanf("%lf%lf%lf", &cir[i].r, &cir[i].s.x, &cir[i].s.y);
    }
    while (nm--) {
      int a, b;
      scanf("%d%d", &a, &b);
      int cnt = 0;
      for (i = 1; i <= m; i++) {
        int tag = isin(a, i) + isin(b, i);
        if (tag == 1) cnt++;
      }
      printf("%d\n", cnt);
    }
  }
  return 0;
}
