#include <bits/stdc++.h>
using namespace std;
long long n, a, b, k;
long long dp[5003];
long long sum[5003];
long long add(long long a, long long b) {
  long long res = a + b;
  if (res >= 1000000007) res -= 1000000007;
  return res;
}
long long get(long long l, long long r) {
  long long res = sum[r] - sum[l - 1];
  if (res < 0) res += 1000000007;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cin >> n >> a >> b >> k;
  dp[a] = 1;
  for (long long i = 1; i <= n; i++) sum[i] = add(sum[i - 1], dp[i]);
  for (long long i = 1; i <= k; i++) {
    for (long long j = 1; j <= n; j++)
      if (j != b) {
        if (j < b) {
          dp[j] = get(1, j - 1);
          if (b - j > 1) {
            long long mid = (b + j) >> 1;
            if (!((b + j) & 1)) mid--;
            dp[j] = add(dp[j], get(j + 1, mid));
          }
        } else {
          dp[j] = get(j + 1, n);
          if (j - b > 1) {
            long long mid = ((b + j) >> 1) + 1;
            dp[j] = add(dp[j], get(mid, j - 1));
          }
        }
      }
    for (int j = 1; j <= n; j++) sum[j] = add(sum[j - 1], dp[j]);
  }
  cout << sum[n] << '\n';
}
