MOD = 10 ** 9 + 7

# 读取输入

N, M, K, P = map(int, input().split())

dp = [0]*(N+1)

dp[M] = 1

for _ in range(K):

    leftup = dp[1]

    for i in range(1, N+1):

        tmp = dp[i]

        if i==1: dp[i] = dp[i+1]

        elif i==N: dp[i] = leftup

        else: dp[i] = (dp[i+1]+leftup) % MOD

        leftup = tmp

# 计算并输出结果

print(dp[P])

pythonO(NK)算法为什么不能通过全部?