#include <stdio.h>
#include <math.h>

#define NMAX 100
#define EPSILON .000000001
#define TRUE 1
#define FALSE 0

int processe_pontos(double x, double y, int n, double r[]);
void imprima_vetor(double v[], int n);
double distancia(double x, double y, double u, double v);
int proc_insira(double d, double r[], int t);
int proximo(double a, double b);

int main()
{
  double x, y, r[NMAX];
  int n, diffs;

  scanf("%lf %lf", &x, &y);
  scanf("%d", &n);

  diffs = processe_pontos(x, y, n, r);
  imprima_vetor(r, diffs);

  return 0;
}

void imprima_vetor(double v[], int n)
{
  int i;
  for (i=0; i<n; i++)
    printf("%g ", v[i]);
  printf("\n");
}

double distancia(double x, double y, double u, double v)
{
  return sqrt((x-u)*(x-u)+(y-v)*(y-v));
}

int proximo(double a, double b)
{
  if ((a-b <= EPSILON) && (a-b >= -EPSILON))
    return TRUE;
  else
    return FALSE;

/*    Equivalente a   

      return (a-b <= EPSILON) && (a-b >= -EPSILON);

*/

}

int processe_pontos(double x, double y, int n, double r[])
{
  int n_raios=0;
  double u, v, d;

  while (n>0) {
    scanf("%lf %lf", &u, &v);
    n--;
    d = distancia(x,y,u,v);
    if (proc_insira(d, r, n_raios))
      n_raios++;
  }
  return n_raios;
}

int proc_insira(double d, double r[], int t)
{
  int i;

  for (i=0; i<t; i++)
    if (proximo(d, r[i]))
      break;

  if (i < t) 
    return FALSE;
  else {
    r[t] = d;
    return TRUE;
  }
}
