#include <bits/stdc++.h>
using namespace std;
const int MN = 1005;
int n, m, x, y;
double A[MN][MN], F[MN];
int main() {
  scanf("%d%d%d%d", &n, &m, &x, &y);
  if (x == n) return 0 * puts("0.0000");
  if (m == 1) return 0 * printf("%d.0000", 2 * (n - x));
  for (register int t = n - 1; t >= x; t--) {
    A[1][1] = 2;
    A[1][2] = -1;
    A[1][m + 1] = 3 + F[1];
    for (register int i = 2; i < m; i++) {
      A[i][i - 1] = A[i][i + 1] = -1;
      A[i][i] = 3;
      A[i][m + 1] = 4 + F[i];
    }
    A[m][m] = 2;
    A[m][m - 1] = -1;
    A[m][m + 1] = 3 + F[m];
    for (register int i = 1; i < m; i++) {
      A[i][i + 1] /= A[i][i];
      A[i][m + 1] /= A[i][i];
      A[i][i] = 1;
      A[i + 1][i + 1] -= A[i + 1][i] * A[i][i + 1];
      A[i + 1][m + 1] -= A[i + 1][i] * A[i][m + 1];
      A[i + 1][i] = 0;
    }
    A[m][m + 1] /= A[m][m];
    A[m][m] = 1;
    for (register int i = m; i > 1; i--)
      A[i - 1][m + 1] -= A[i - 1][i] * A[i][m + 1], A[i - 1][i] = 0;
    for (register int i = 1; i <= m; i++)
      F[i] = A[i][m + 1], A[i][m + 1] = A[i][i] = 0;
  }
  printf("%lf\n", F[y]);
  return 0;
}
