#include <bits/stdc++.h>
int main(int agrc, char *argv[]) {
  double *dp = new double[1000];
  double *dq = new double[1000];
  double *sq = new double[1000];
  int N, M;
  scanf("%d %d", &N, &M);
  int line, y;
  scanf("%d %d", &line, &y);
  for (int i = 0; i < M; i++) sq[i] = 0;
  sq[y - 1] = 1;
  double exp = 0;
  for (int cline = line; cline < N; cline++) {
    double lexp = 0;
    double *tq = sq;
    sq = dp;
    dp = tq;
    for (int i = 0; i < M; i++) {
      sq[i] = 0;
    }
    for (int i = 0; i < 75; i++) {
      for (int m = 0; m < M; m++) {
        int bnd = 4;
        if (m == 0 || m == M - 1) bnd = 3;
        if (M == 1) bnd = 2;
        lexp += double(i + 1) * dp[m] / bnd;
        sq[m] += dp[m] / bnd;
        dq[m] = dp[m] / bnd;
        if (m > 0) dq[m] += dp[m - 1] / (m == 1 ? 3 : 4);
        if (m < M - 1) dq[m] += dp[m + 1] / (m == M - 2 ? 3 : 4);
      }
      tq = dp;
      dp = dq;
      dq = tq;
    }
    exp += lexp;
  }
  printf("%lf\n", exp);
  return 0;
}
