#include <bits/stdc++.h>
using namespace std;
int mod = 1e9 + 7;
template <typename T>
void mod_add(T &a, T b) {
  a += b;
  if (a >= mod) a -= mod;
}
template <typename T>
void mod_sub(T &a, T b) {
  a -= b;
  if (a < 0) a += mod;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int t = 1, n, m, i, j, k, u, to, w;
  while (t--) {
    int a, b;
    cin >> n >> a >> b >> k;
    vector<long long> dp[2];
    for (i = 0; i < 2; i++) {
      dp[i].assign(n + 2, 0);
    }
    dp[0][a] = 1;
    for (i = 0; i < k; i++) {
      int cur = i & 1, nxt = cur ^ 1;
      dp[nxt].assign(n + 2, 0);
      for (j = 1; j <= n; j++) {
        if (dp[cur][j]) {
          int d = abs(j - b);
          long long add = dp[cur][j];
          mod_add(dp[nxt][max(j - d + 1, 1)], add);
          mod_sub(dp[nxt][min(j + d - 1, n) + 1], add);
          mod_sub(dp[nxt][j], add);
          mod_add(dp[nxt][j + 1], add);
        }
      }
      for (j = 1; j <= n; j++) {
        mod_add(dp[nxt][j], dp[nxt][j - 1]);
      }
    }
    long long ans = 0;
    for (i = 1; i <= n; i++) {
      if (i != b) {
        mod_add(ans, dp[k & 1][i]);
      }
    }
    cout << ans;
  }
}
