#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
using namespace std;
#define N 1020
int n, m, x, y;
double dp[N][N];
void ele(double x[], double a[], double b[], double c[], double r[]) {
static double y[N], z[N];
y[1] = c[1] / b[1], z[1] = r[1] / b[1];
for(int i = 2; i <= m; ++i) {
y[i] = c[i] / (b[i] - y[i-1] * a[i]);
z[i] = (r[i] - z[i-1] * a[i]) / (b[i] - y[i-1] * a[i]);
}
x[m] = z[m];
for(int i = m - 1; i >= 1; --i) x[i] = z[i] - y[i] * x[i + 1];
}
void calc(double x[], double y[]) {
static double a[N], b[N], c[N], r[N];
b[1] = 2.0 / 3; c[1] = -1.0 / 3; r[1] = 1 + y[1] / 3;
for(int i = 2; i < m; ++i) {
a[i] = -1.0 / 4;
b[i] = 3.0 / 4;
c[i] = -1.0 / 4;
r[i] = 1 + y[i] / 4;
}
a[m] = -1.0 / 3; b[m] = 2.0 / 3; r[m] = 1 + y[m] / 3;
ele(x, a, b, c, r);
}
int main() {
scanf("%d%d%d%d", &n, &m, &x, &y);
n = n - x + 1;
if(m == 1) {
printf("%d\n", 2 * n - 2);
return 0;
}
for(int i = n - 1; i >= 1; --i) {
calc(dp[i], dp[i + 1]);
}
printf("%.12lf\n", dp[1][y]);
return 0;
}