#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(int)(n);i++)
using namespace std;
using ll = long long ;
using P = pair<int,int> ;
using pll = pair<long long,long long>;
constexpr int INF = 1e9;
constexpr long long LINF = 1e17;
constexpr int MOD = 1000000007;
constexpr double PI = 3.14159265358979323846;
int n;
int x[105];
int y[105];


bool ok(double r){
    vector<vector<int>> dist(n+2);
    int s = n;
    int t = n + 1;
    rep(i,n)rep(j,i){
        if( (x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]) < 4*r*r ){
            dist[i].push_back(j);
            dist[j].push_back(i);
        }
    }
    rep(i,n){
        if(abs(y[i] - 100) < 2*r){ dist[s].push_back(i); dist[i].push_back(s);}
        if(abs(y[i] + 100) < 2*r){ dist[t].push_back(i); dist[i].push_back(t);}
    }
    vector<int> seen(n+2,-1);
    queue<int> q;
    q.push(s);
    while(!q.empty()){
        int now = q.front();
        q.pop();
        if(seen[now] >= 0) continue;
        seen[now] = 1;
        for(int j:dist[now]){
            if(seen[j] >= 0) continue;
            q.push(j);
        }
    }
    //rep(i,n+2) cout << seen[i] << " ";
    //cout << endl; 
    if(seen[t] == -1) return true;
    else return false;
}

int main(){
    cin >> n;
    rep(i,n) cin >> x[i] >> y[i];

    double l = 0,r = 100;
    rep(i,100){
        double m = (l + r)/2;
        if(ok(m)) l = m;
        else r = m;
    }

    cout << setprecision(20) << l << endl;
    return 0;
}
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<float.h>
#include<tuple>
#include<string.h>
#include<iomanip>
#include<stack>
#include<queue>
#include<map>
#include<deque>

using namespace std;
#define ll long long
#define rep(i,n) for(ll i=0;i<n;i++)
#define REP(i,n) for(ll i=1;i<=n;i++)
#define ALLOF(c) (c).begin(), (c).end()
#define Pa pair<ll,ll>
const ll mod=1000000007;
const ll INF=10e12;
const ll inf=-1;
ll ABS(ll a){return max(a,-a);}


int main(void){
    ll H,W,X,Y;
    cin>>H>>W>>X>>Y;
    vector<string> S(H);
    rep(i,H) cin>>S.at(i);
    X--;
    Y--;
    ll ans=1;
    REP(i,H-X-1){
        if(S.at(X+i).at(Y)=='.') ans++;
        else break;
    }
    REP(i,X){
        if(S.at(X-i).at(Y)=='.') ans++;
        else break;
    }
    REP(i,W-Y-1){
        if(S.at(X).at(Y+i)=='.') ans++;
        else break;
    }
    REP(i,Y){
        if(S.at(X).at(Y-i)=='.') ans++;
        else break;
    }
    cout<<ans<<endl;
    return 0;
}