动态规划+空间压缩
def go(n,m,p,k):
rec=[0]*(n+1)
rec[p]=1
for i in range(k):
last = rec[1]
for j in range(n):
temp=rec[j]
if j==1:
rec[j]=rec[2]
elif j==n:
rec[n]=rec[n-1]
else :
rec[j]=last+rec[j+1]
last = temp
return rec[m]
n,m,k,p=map(int,input().split())
print(go(n,m,p,k)%(pow(10,9)+7))