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)算法为什么不能通过全部?