#include <bits/stdc++.h>
using namespace std;
int N, M;
double e[1010];
double A[1010][1010];
double b[1010];
int main() {
  while (2 == scanf("%d%d", &N, &M)) {
    int I, J;
    scanf("%d%d", &I, &J);
    if (M == 1) {
      double e = 0.0;
      for (int i = 0; i < (int)(N - I); i++) e = 2 + e;
      printf("%.10f\n", e);
      continue;
    }
    for (int r = N - 1; r >= I; --r) {
      for (int j = 0; j < (int)(M); j++) {
        if (j == 0) {
          A[j][j] = 1. - 1. / 3.;
          A[j][j + 1] = -1. / 3.;
          b[j] = 1. + e[j] / 3.;
        } else if (j == M - 1) {
          A[j][j - 1] = -1. / 3.;
          A[j][j] = 1. - 1. / 3.;
          b[j] = 1. + e[j] / 3.;
        } else {
          A[j][j - 1] = -1. / 4.;
          A[j][j] = 1. - 1. / 4.;
          A[j][j + 1] = -1. / 4.;
          b[j] = 1. + e[j] / 4.;
        }
      }
      for (int i = 0; i < (int)(M - 1); i++) {
        double s = A[i + 1][i] / A[i][i];
        A[i + 1][i] -= A[i][i] * s;
        A[i + 1][i + 1] -= A[i][i + 1] * s;
        b[i + 1] -= b[i] * s;
      }
      e[M - 1] = b[M - 1] / A[M - 1][M - 1];
      for (int i = M - 2; i >= 0; --i) {
        e[i] = (b[i] - A[i][i + 1] * e[i + 1]) / A[i][i];
      }
    }
    printf("%.10f\n", e[J - 1]);
  }
  return 0;
}
