#include <iostream>
#include <cstdio>
#include <vector>
#include <complex>
using namespace std;
static const double EPS = 1e-9;
static const double PI = acos(-1);
static const double WEAK_EPS = 1e-7;
typedef complex<double> P;
struct L : public vector<P> {L(const P &a, const P &b) {push_back(a); push_back(b);} };
struct C {P p; double r;C(const P &p, double r) : p(p), r(r) { } C(){} };
vector<P> C_cp(C a,C b){
vector<P> ret;
double L = abs(a.p-b.p);
if( L-a.r-b.r > EPS || (abs(a.p-b.p)<EPS && fabs(a.r-b.r)<EPS) ||
abs(a.p-b.p) < abs(a.r-b.r)
)return ret;
double theta = atan2(b.p.imag()-a.p.imag(),b.p.real()-a.p.real());
double c = (L*L+a.r*a.r-b.r*b.r)/(2*L*a.r);
ret.push_back(
P(a.p.real()+a.r*cos(theta+acos(c)),
a.p.imag()+a.r*sin(theta+acos(c)))
);
if(fabs(L-a.r-b.r) > EPS)
ret.push_back(
P(a.p.real()+a.r*cos(theta-acos(c)),
a.p.imag()+a.r*sin(theta-acos(c)))
);
return ret;
}
P getPedal(L l, P p){
double A;
if(abs(l[1].real()-l[0].real()) < EPS){
return P(l[1].real(),p.imag()); // important
}else{
A = (l[1].imag()-l[0].imag())/(l[1].real()-l[0].real());
}
double a = -A , b = 1 , c = A*l[0].real() - l[0].imag();
double t = (a*p.real() + b*p.imag() + c)/(a*a+b*b);
return p-t * P(a,b);
}
vector<P> crosspointCL(const L l, const C c){
vector<P> ret;
P p = getPedal(l,c.p);
if( abs(p-c.p) > c.r+EPS)return ret;
P e = P((l[1]-l[0])/abs(l[1]-l[0]));
double S = sqrt(c.r*c.r-abs(p-c.p)*abs(p-c.p));
ret.push_back(p+S*e);
ret.push_back(p-S*e);
return ret;
}
P memo[720];
bool check(const int &N,const int &W,const int &H,const vector<P> &p,const double &R){
P vertex[4] = {P(0,0),P(W,0),P(W,H),P(0,H)};
vector<P> chk;
for(int i = 0 ; i < 4 ; i++) chk.push_back(vertex[i]);
for(int i = 0 ; i < N ; i++){
for(int j = 0 ; j < 4 ; j++){
L l = L(vertex[j],vertex[(j+1)%4]);
vector<P> g = crosspointCL(l,C(p[i],R));
chk.insert(chk.end(),g.begin(),g.end());
}
}
for(int i = 0 ; i < N ; i++){
for(int j = i+1 ; j < N ; j++){
vector<P> g = C_cp(C(p[i],R),C(p[j],R));
chk.insert(chk.end(),g.begin(),g.end());
}
}
bool bad = 0;
for(int i = 0 ; i < chk.size() ; i++){
for(int j = 0 ; j < 720 ; j++){
P t = chk[i] + WEAK_EPS * memo[j];
if( 0 < t.real()+EPS && t.real()-EPS < W &&
0 < t.imag()+EPS && t.imag()-EPS < H
){ // 四角形の中の点か?
bool f = false;
for(int k = 0 ; k < N ; k++){
if(abs(t-p[k]) < R+EPS){
f = true;
}
}
bad |= !f;
}
}
}
return !bad;
}
double solver(int N,int W,int H,vector<P> p){
for(int i = 0 ; i < 720 ; i++){
memo[i] = P( cos( (PI / 360) * i ) , sin( (PI / 360) * i ) );
}
double l = 0 , r = 20000;
while(r-l > EPS){
double m = (l+r) / 2;
if( check(N,W,H,p,m) ) r = m;
else l = m;
}
return l;
}
int main(){
int N;
int W,H;
cin >> W >> H;
cin >> N;
while(N>20){};
vector<P> p;
for(int i = 0 ; i < N ; i++){
int x,y;
cin >> x >> y;
p.push_back(P(x,y));
}
if(cin >> N) return 0;
printf("%.6lf\n",solver(N,W,H,p));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y29tcGxleD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0YXRpYyBjb25zdCBkb3VibGUgRVBTID0gMWUtOTsKc3RhdGljIGNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpzdGF0aWMgY29uc3QgZG91YmxlIFdFQUtfRVBTID0gMWUtNzsKCnR5cGVkZWYgY29tcGxleDxkb3VibGU+IFA7CnN0cnVjdCBMIDogcHVibGljIHZlY3RvcjxQPiB7TChjb25zdCBQICZhLCBjb25zdCBQICZiKSB7cHVzaF9iYWNrKGEpOyBwdXNoX2JhY2soYik7fSB9OwpzdHJ1Y3QgQyB7UCBwOyBkb3VibGUgcjtDKGNvbnN0IFAgJnAsIGRvdWJsZSByKSA6IHAocCksIHIocikgeyB9IEMoKXt9IH07CgoKdmVjdG9yPFA+IENfY3AoQyBhLEMgYil7Cgl2ZWN0b3I8UD4gcmV0OwoJZG91YmxlIEwgPSBhYnMoYS5wLWIucCk7CiAKCWlmKAlMLWEuci1iLnIgPiBFUFMgfHwgKGFicyhhLnAtYi5wKTxFUFMgJiYgZmFicyhhLnItYi5yKTxFUFMpIHx8IAoJCWFicyhhLnAtYi5wKSA8IGFicyhhLnItYi5yKQoJKXJldHVybiByZXQ7CiAKCWRvdWJsZSB0aGV0YSA9IGF0YW4yKGIucC5pbWFnKCktYS5wLmltYWcoKSxiLnAucmVhbCgpLWEucC5yZWFsKCkpOwoJZG91YmxlIGMgPSAoTCpMK2EuciphLnItYi5yKmIucikvKDIqTCphLnIpOwoJcmV0LnB1c2hfYmFjaygKCQlQKGEucC5yZWFsKCkrYS5yKmNvcyh0aGV0YSthY29zKGMpKSwKCQkgIGEucC5pbWFnKCkrYS5yKnNpbih0aGV0YSthY29zKGMpKSkKCSk7CglpZihmYWJzKEwtYS5yLWIucikgPiBFUFMpCgkJcmV0LnB1c2hfYmFjaygKCQkJUChhLnAucmVhbCgpK2Eucipjb3ModGhldGEtYWNvcyhjKSksCgkJCSAgYS5wLmltYWcoKSthLnIqc2luKHRoZXRhLWFjb3MoYykpKQoJCSk7CglyZXR1cm4gcmV0Owp9CiAKIApQIGdldFBlZGFsKEwgbCwgUCBwKXsKCWRvdWJsZSBBOwoJaWYoYWJzKGxbMV0ucmVhbCgpLWxbMF0ucmVhbCgpKSA8IEVQUyl7CgkJcmV0dXJuIFAobFsxXS5yZWFsKCkscC5pbWFnKCkpOyAvLyBpbXBvcnRhbnQKCX1lbHNlewoJCUEgPSAobFsxXS5pbWFnKCktbFswXS5pbWFnKCkpLyhsWzFdLnJlYWwoKS1sWzBdLnJlYWwoKSk7Cgl9Cglkb3VibGUgYSA9IC1BICwgYiA9IDEgLCBjID0gQSpsWzBdLnJlYWwoKSAtIGxbMF0uaW1hZygpOwoJZG91YmxlIHQgPSAoYSpwLnJlYWwoKSArIGIqcC5pbWFnKCkgKyBjKS8oYSphK2IqYik7CglyZXR1cm4gcC10ICogUChhLGIpOwp9CiAKdmVjdG9yPFA+IGNyb3NzcG9pbnRDTChjb25zdCBMIGwsIGNvbnN0IEMgYyl7Cgl2ZWN0b3I8UD4gcmV0OwoJUCBwID0gZ2V0UGVkYWwobCxjLnApOwoJaWYoCWFicyhwLWMucCkgPiBjLnIrRVBTKXJldHVybiByZXQ7CglQIGUgPSBQKChsWzFdLWxbMF0pL2FicyhsWzFdLWxbMF0pKTsKCWRvdWJsZSBTID0gc3FydChjLnIqYy5yLWFicyhwLWMucCkqYWJzKHAtYy5wKSk7CglyZXQucHVzaF9iYWNrKHArUyplKTsKCXJldC5wdXNoX2JhY2socC1TKmUpOwoJcmV0dXJuIHJldDsKfQoKUCBtZW1vWzcyMF07CgoKCmJvb2wgY2hlY2soY29uc3QgaW50ICZOLGNvbnN0IGludCAmVyxjb25zdCBpbnQgJkgsY29uc3QgdmVjdG9yPFA+ICZwLGNvbnN0IGRvdWJsZSAmUil7CglQIHZlcnRleFs0XSA9IHtQKDAsMCksUChXLDApLFAoVyxIKSxQKDAsSCl9OwoJdmVjdG9yPFA+IGNoazsKCWZvcihpbnQgaSA9IDAgOyBpIDwgNCA7IGkrKykgY2hrLnB1c2hfYmFjayh2ZXJ0ZXhbaV0pOwoJZm9yKGludCBpID0gMCA7IGkgPCBOIDsgaSsrKXsKCQlmb3IoaW50IGogPSAwIDsgaiA8IDQgOyBqKyspewoJCQlMIGwgPSBMKHZlcnRleFtqXSx2ZXJ0ZXhbKGorMSklNF0pOwoJCQl2ZWN0b3I8UD4gZyA9IGNyb3NzcG9pbnRDTChsLEMocFtpXSxSKSk7CgkJCWNoay5pbnNlcnQoY2hrLmVuZCgpLGcuYmVnaW4oKSxnLmVuZCgpKTsKCQl9Cgl9Cglmb3IoaW50IGkgPSAwIDsgaSA8IE4gOyBpKyspewoJCWZvcihpbnQgaiA9IGkrMSA7IGogPCBOIDsgaisrKXsKCQkJdmVjdG9yPFA+IGcgPSBDX2NwKEMocFtpXSxSKSxDKHBbal0sUikpOwoJCQljaGsuaW5zZXJ0KGNoay5lbmQoKSxnLmJlZ2luKCksZy5lbmQoKSk7CgkJfQoJfQoJYm9vbCBiYWQgPSAwOwoJZm9yKGludCBpID0gMCA7IGkgPCBjaGsuc2l6ZSgpIDsgaSsrKXsKCQlmb3IoaW50IGogPSAwIDsgaiA8IDcyMCA7IGorKyl7CgkJCVAgdCA9IGNoa1tpXSArIFdFQUtfRVBTICogbWVtb1tqXTsKCQkJaWYoIDAgPCB0LnJlYWwoKStFUFMgJiYgdC5yZWFsKCktRVBTIDwgVyAmJgoJCQkJMCA8IHQuaW1hZygpK0VQUyAmJiB0LmltYWcoKS1FUFMgPCBICgkJCSl7IC8vIOWbm+inkuW9ouOBruS4reOBrueCueOBi++8nwoJCQkJYm9vbCBmID0gZmFsc2U7CgkJCQlmb3IoaW50IGsgPSAwIDsgayA8IE4gOyBrKyspewoJCQkJCWlmKGFicyh0LXBba10pIDwgUitFUFMpewoJCQkJCQlmID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCQliYWQgfD0gIWY7CgkJCX0KCQl9Cgl9CgkKCXJldHVybiAhYmFkOwp9Cgpkb3VibGUgc29sdmVyKGludCBOLGludCBXLGludCBILHZlY3RvcjxQPiBwKXsKCWZvcihpbnQgaSA9IDAgOyBpIDwgNzIwIDsgaSsrKXsKCQltZW1vW2ldID0gUCggY29zKCAoUEkgLyAzNjApICogaSApICwgc2luKCAoUEkgLyAzNjApICogaSApICk7Cgl9Cglkb3VibGUgbCA9IDAgLCByID0gMjAwMDA7Cgl3aGlsZShyLWwgPiBFUFMpewoJCWRvdWJsZSBtID0gKGwrcikgLyAyOwoJCWlmKCBjaGVjayhOLFcsSCxwLG0pICkgciA9IG07CgkJZWxzZSBsID0gbTsKCX0KCXJldHVybiBsOwp9CmludCBtYWluKCl7CglpbnQgTjsKCWludCBXLEg7CgljaW4gPj4gVyA+PiBIOwoJY2luID4+IE47Cgl3aGlsZShOPjIwKXt9OwoJdmVjdG9yPFA+IHA7CgkKCWZvcihpbnQgaSA9IDAgOyBpIDwgTiA7IGkrKyl7CgkJaW50IHgseTsKCQljaW4gPj4geCA+PiB5OwoJCXAucHVzaF9iYWNrKFAoeCx5KSk7Cgl9CglpZihjaW4gPj4gTikgcmV0dXJuIDA7CglwcmludGYoIiUuNmxmXG4iLHNvbHZlcihOLFcsSCxwKSk7Cn0=