#include <bits/stdc++.h>
using namespace std;
namespace sky_chen {
char buf[1 << 23], *p1 = buf, *p2 = buf, obuf[1 << 23], *O = obuf;
inline long long read() {
  long long ans = 0, f = 1;
  char a =
      p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
          ? EOF
          : *p1++;
  while (a > '9' || a < '0') {
    if (a == '-') f = -1;
    a = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
            ? EOF
            : *p1++;
  }
  while (a >= '0' && a <= '9')
    ans = ans * 10 + (a ^ 48),
    a = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
            ? EOF
            : *p1++;
  return ans * f;
}
inline char red() {
  long long ans = 0;
  char a = getchar();
  while (a > 'z' || a < 'a') a = getchar();
  return a;
}
inline void print(long long x) {
  if (x < 0) return (void)(*O++ = '-', print(-x));
  if (x > 9) print(x / 10);
  *O++ = x % 10 + '0';
}
inline void cadd(long long &x, long long y) { x = (x + y) % 10007; }
inline void cmin(long long &x, long long y) { x = min(x, y); }
inline void cmax(long long &x, long long y) { x = max(x, y); }
long long qpow(long long n, long long base = 10007 - 2) {
  long long ans = 1;
  while (base) {
    if (base & 1) ans = ans * n % 10007;
    n = n * n % 10007;
    base >>= 1;
  }
  return ans;
}
const int maxn = 1e3 + 5;
long long n, m, x, y;
double dp[maxn][maxn];
int yyds() {
  n = read();
  m = read();
  x = read();
  y = read();
  for (long long i = n - 1; i >= x; i--)
    for (long long cnt = 1; cnt <= 50; cnt++)
      if (m == 1)
        dp[i][1] = (dp[i][1] + dp[i + 1][1]) / 2.0 + 1;
      else {
        dp[i][1] = (dp[i][1] + dp[i][2] + dp[i + 1][1]) / 3.0 + 1;
        dp[i][m] = (dp[i][m] + dp[i][m - 1] + dp[i + 1][m]) / 3.0 + 1;
        for (long long j = 2; j <= m - 1; j++)
          dp[i][j] =
              (dp[i][j] + dp[i][j - 1] + dp[i][j + 1] + dp[i + 1][j]) / 4.0 + 1;
      }
  printf("%.114514lf", dp[x][y]);
  fwrite(obuf, 1, O - obuf, stdout);
  return 0;
}
}  // namespace sky_chen
int main() { return sky_chen::yyds(); }
