#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void checkmin(T& a, const T& b) {
  if (b < a) a = b;
}
template <class T>
inline void checkmax(T& a, const T& b) {
  if (b > a) a = b;
}
template <class T>
inline T sqr(const T& a) {
  return a * a;
}
int n, m, k;
int Kx[1000], Ky[1000];
int r[1000], Cx[1000], Cy[1000];
int B[1000][1000];
int C[1000][1000];
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0, _n = (n); i < _n; ++i) scanf("%d%d", &Kx[i], &Ky[i]);
  for (int i = 0, _n = (m); i < _n; ++i) scanf("%d%d%d", &r[i], &Cx[i], &Cy[i]);
  for (int i = 0, _n = (n); i < _n; ++i)
    for (int j = 0, _n = (m); j < _n; ++j) {
      B[i][j] = sqr((long long)Kx[i] - (long long)Cx[j]) +
                    sqr((long long)Ky[i] - (long long)Cy[j]) <
                sqr((long long)r[j]);
    }
  memset((C), (int)255, sizeof(C));
  ;
  for (int i = 0, _n = (k); i < _n; ++i) {
    int a, b;
    scanf("%d%d", &a, &b);
    if (a > b) swap(a, b);
    a--;
    b--;
    if (C[a][b] < 0) {
      C[a][b] = 0;
      for (int j = 0, _n = (m); j < _n; ++j) {
        C[a][b] += B[a][j] ^ B[b][j];
      }
    }
    printf("%d\n", C[a][b]);
  }
  return 0;
}
