#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
int N;
int M;
int X;
int Y;
double dp[1009][1009];
double A[1009][1009];
double res;
void In() { scanf("%d%d%d%d", &N, &M, &X, &Y); }
void Gauss() {
  double t;
  for (int i = 1; i <= M; i++) {
    t = A[i][i];
    A[i][i] /= t;
    A[i][i + 1] /= t;
    if (i < M) {
      A[i][M + 1] /= t;
    }
    t = A[i + 1][i];
    A[i + 1][i] -= t * A[i][i];
    A[i + 1][i + 1] -= t * A[i][i + 1];
    A[i + 1][M + 1] -= t * A[i][M + 1];
  }
  for (int i = M; i; i--) {
    A[i - 1][M + 1] -= A[i - 1][i] * A[i][M + 1];
    A[i - 1][i] -= A[i - 1][i] * A[i][i];
  }
}
void Solve() {
  if (M == 1) {
    res = 2 * (N - X);
    return;
  }
  for (int i = N - 1; i >= X; i--) {
    A[1][1] = A[M][M] = 2.0 / 3;
    A[1][2] = A[M][M - 1] = -1.0 / 3;
    A[1][M + 1] = dp[i + 1][1] / 3 + 1;
    A[M][M + 1] = dp[i + 1][M] / 3 + 1;
    for (int m = 2; m < M; m++) {
      A[m][m - 1] = A[m][m + 1] = -1.0 / 4;
      A[m][m] = 3.0 / 4;
      A[m][M + 1] = dp[i + 1][m] / 4 + 1;
    }
    Gauss();
    for (int m = 1; m <= M; m++) {
      dp[i][m] = A[m][M + 1];
    }
  }
  res = dp[X][Y];
}
void Out() { printf("%.4lf\n", res); }
int main() {
  In();
  Solve();
  Out();
  return 0;
}
