#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
} p[1111];
struct circle {
  int x, y, r;
} c[1111];
int f[1111];
bool a[1111][1111];
int n, m, k, i, j, l, r;
bool contains(const circle &a, const point &b) {
  long long dx = a.x - b.x, dy = a.y - b.y, dr = a.r;
  return dx * dx + dy * dy < dr * dr;
}
int num(int l, int r) {
  int k = 0;
  for (int j = 0; j < m; j++)
    if (a[l][j] == 1 && a[r][j] == 1) k++;
  return k;
}
int main() {
  cin >> n >> m >> k;
  for (i = 0; i < n; i++) scanf("%d%d", &p[i].x, &p[i].y);
  for (i = 0; i < m; i++) scanf("%d%d%d", &c[i].r, &c[i].x, &c[i].y);
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++) {
      if (contains(c[j], p[i])) {
        a[i][j] = 1;
        f[i]++;
      }
    }
  for (i = 0; i < k; i++) {
    scanf("%d%d", &l, &r);
    l--;
    r--;
    printf("%d\n", f[l] + f[r] - 2 * num(l, r));
  }
  return 0;
}
