#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
} p[1008];
struct C {
  int x, y;
  int r;
  bool operator<(const C &b) const { return r > b.r; }
} c[1008];
int h[1008];
int f[1008];
int in[1008];
int ans[1008][1008];
bool judge(int i, int j) {
  long long D1 = (long long)(c[i].x - c[j].x) * (c[i].x - c[j].x) +
                 (long long)(c[i].y - c[j].y) * (c[i].y - c[j].y);
  long long D2 = (long long)(c[i].r - c[j].r) * (c[i].r - c[j].r);
  return D1 < D2;
}
bool in_side(int i, int j) {
  long long D1 = (long long)(p[i].x - c[j].x) * (p[i].x - c[j].x) +
                 (long long)(p[i].y - c[j].y) * (p[i].y - c[j].y);
  long long D2 = (long long)c[j].r * c[j].r;
  return D1 < D2;
}
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) {
    cin >> p[i].x >> p[i].y;
  }
  for (int i = 1; i <= m; i++) {
    cin >> c[i].r >> c[i].x >> c[i].y;
  }
  sort(c + 1, c + m + 1);
  h[0] = 0;
  for (int i = 1; i <= m; i++) {
    if (i == 1) {
      f[i] = 0;
      h[i] = 1;
      continue;
    }
    bool ff = true;
    for (int j = i - 1; j >= 1; j--) {
      if (judge(i, j)) {
        f[i] = j;
        h[i] = h[j] + 1;
        ff = false;
        break;
      }
    }
    if (ff) {
      f[i] = 0;
      h[i] = 1;
    }
  }
  for (int i = 1; i <= n; i++) {
    bool ff = true;
    for (int j = m; j >= 1; j--) {
      if (in_side(i, j)) {
        in[i] = j;
        ff = false;
        break;
      }
    }
    if (ff) {
      in[i] = 0;
    }
  }
  int a, b;
  int ans;
  for (int i = 1; i <= k; i++) {
    cin >> a >> b;
    ans = 0;
    int nx = in[a];
    int ny = in[b];
    if (nx == ny)
      ans = 0;
    else {
      if (nx == 0) {
        ans = h[ny];
      } else if (ny == 0) {
        ans = h[nx];
      } else {
        int cnt = 0;
        while (1) {
          if (h[nx] > h[ny]) {
            cnt++;
            nx = f[nx];
            if (nx == ny) break;
          } else if (h[nx] < h[ny]) {
            cnt++;
            ny = f[ny];
            if (ny == nx) break;
          } else {
            if (nx == ny)
              break;
            else {
              cnt += 2;
              nx = f[nx];
              ny = f[ny];
            }
          }
        }
        ans = cnt;
      }
    }
    cout << ans << endl;
  }
}
