#include <bits/stdc++.h>
using namespace std;
const int N = 1050;
const long double INF = 1e7;
const long double EPS = 1e-11;
struct point {
  long double x, y;
} P[N];
point operator+(point a, point b) { return (point){a.x + b.x, a.y + b.y}; }
point operator-(point a, point b) { return (point){a.x - b.x, a.y - b.y}; }
long double abs(point a) { return sqrt(a.x * a.x + a.y * a.y); }
int w, h, n;
int tot;
pair<long double, int> T[N * 10];
long double pi = acos(-1);
void put(long double l, long double r, int c) {
  if (l < -pi) l += pi * 2, r += pi * 2;
  if (r < pi) {
    T[++tot] = make_pair(l, c);
    T[++tot] = make_pair(r, -c);
  } else {
    T[++tot] = make_pair(-pi - EPS, c);
    T[++tot] = make_pair(r - pi * 2, -c);
    T[++tot] = make_pair(l, c);
  }
}
int check(int t, long double R) {
  tot = 0;
  T[++tot] = make_pair(-pi, 0);
  for (int i = 1; i <= n; ++i)
    if (abs(P[i] - P[t]) > EPS) {
      long double d = abs(P[i] - P[t]);
      if (d >= 2 * R) continue;
      long double v = acos((d / 2) / R);
      long double p = atan2((P[i] - P[t]).y, (P[i] - P[t]).x);
      long double l = p - v, r = p + v;
      put(l, r, 1);
    }
  if (P[t].x < R) put(pi - acos(P[t].x / R), pi + acos(P[t].x / R), 2);
  if (P[t].y < R)
    put(-pi / 2 - acos(P[t].y / R), -pi / 2 + acos(P[t].y / R), 2);
  if (w - P[t].x < R) put(-acos((w - P[t].x) / R), acos((w - P[t].x) / R), 2);
  if (h - P[t].y < R)
    put(pi / 2 - acos((h - P[t].y) / R), pi / 2 + acos((h - P[t].y) / R), 2);
  sort(T + 1, T + tot + 1);
  for (int i = 1, v = 0; i <= tot; ++i) {
    v += T[i].second;
    if (v <= 1 && (i == tot || T[i + 1].first - T[i].first > EPS)) return 1;
  }
  return 0;
}
int main() {
  ios::sync_with_stdio(0);
  cin >> w >> h >> n;
  for (int i = 1; i <= n; ++i) cin >> P[i].x >> P[i].y;
  random_shuffle(P + 1, P + n + 1);
  long double ans = 1e-5;
  for (int i = 1; i <= n; ++i)
    if (check(i, ans + EPS)) {
      long double l = ans, r = INF;
      for (int k = 1; k <= 70; ++k)
        if (check(i, (l + r) / 2))
          l = (l + r) / 2;
        else
          r = (l + r) / 2;
      ans = l;
    }
  printf("%.12Lf\n", ans);
}
