#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int n, m, k;
bool b[N][N];
struct Nod {
  long long x, y;
} p[N];
struct cir {
  long long x, y;
  double r;
} c[N];
template <typename T>
inline void read(T &x) {
  x = 0;
  T op = 1;
  char c = getchar();
  for (; c < '0' || c > '9'; c = getchar())
    if (c == '-') op = -1;
  for (; c <= '9' && c >= '0'; c = getchar()) x = (x << 3) + (x << 1) + c - '0';
  x *= op;
}
int main() {
  read(n), read(m), read(k);
  for (int i = 1; i <= n; ++i) read(p[i].x), read(p[i].y);
  for (int i = 1; i <= m; ++i)
    scanf("%lf", &c[i].r), c[i].r *= c[i].r, read(c[i].x), read(c[i].y);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j)
      if (((double)(p[i].x - c[j].x) * (p[i].x - c[j].x) +
           (p[i].y - c[j].y) * (p[i].y - c[j].y)) > c[j].r)
        b[i][j] = 1;
  while (k--) {
    int x, y, ans = 0;
    read(x), read(y);
    for (int i = 1; i <= m; ++i) {
      if (b[x][i] == b[y][i])
        continue;
      else
        ++ans;
    }
    printf("%d\n", ans);
  }
}
