H,W,K = list(map(int,input().split()))

 

 

amida = [0 for i in range(8)]

amida[0]=1

amida[1]=2

amida[2]=3

amida[3]=5

amida[4]=8

amida[5]=13

amida[6]=21

amida[7]=34

 

def amida_num(k,l):

    return amida[max(k,0)]*amida[max(l,0)]

 

 

dp=[[0 for i in range(W)] for j in range(H+1)]

 

dp[0][0] = 1

 

if W!=1:

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

        for j in range(W):

            if j==0:

                dp[i][j]=dp[i-1][j+1]*amida_num(0,W-3) + dp[i-1][j]* amida_num(0,W-2)

            elif j==W-1:

                dp[i][j]=dp[i-1][j-1]*amida_num(0,W-3) + dp[i-1][j]* amida_num(0,W-2)

            else:

                dp[i][j]=dp[i-1][j-1]*amida_num(j-2,W-j-2) + dp[i-1][j]*amida_num(j-1,W-j-2) + dp[i-1][j+1]*amida_num(j-1,W-j-3)

    print((dp[H][K-1]%(10**9+7)))

else:

    print((1))
H,W,K=list(map(int,input().split()))



r = 10**9 + 7



dp=[[0 for i in range(W)] for j in range(H+1)]



dp[0][0]=1



num = [1,1,2,3,5,8,13,21]



if W!=1:

    for i in range(H):

        for j in range(W):

            if j==0:

                dp[i+1][j]=(num[W-1]*dp[i][j]+num[W-2]*dp[i][j+1])%r

            elif j==W-1:

                dp[i+1][j]=(num[W-1]*dp[i][j]+num[W-2]*dp[i][j-1])%r

            else:

                dp[i+1][j]=(num[j]*num[W-j-1]*dp[i][j]+num[j-1]*num[W-j-1]*dp[i][j-1]+num[j]*num[W-j-2]*dp[i][j+1])%r

    print((dp[H][K-1]))

else:

    print((1))

H, W, K = list(map(int, input().split()))
amida = [0 for i in range(8)]
amida[0] = 1
amida[1] = 2
amida[2] = 3
amida[3] = 5
amida[4] = 8
amida[5] = 13
amida[6] = 21
amida[7] = 34


def amida_num(k, l):
    return amida[max(k, 0)] * amida[max(l, 0)]


dp = [[0 for i in range(W)] for j in range(H + 1)]
dp[0][0] = 1
if W != 1:
    for i in range(1, H + 1):
        for j in range(W):
            if j == 0:
                dp[i][j] = dp[i - 1][j + 1] * amida_num(0, W - 3) + dp[i - 1][
                    j
                ] * amida_num(0, W - 2)
            elif j == W - 1:
                dp[i][j] = dp[i - 1][j - 1] * amida_num(0, W - 3) + dp[i - 1][
                    j
                ] * amida_num(0, W - 2)
            else:
                dp[i][j] = (
                    dp[i - 1][j - 1] * amida_num(j - 2, W - j - 2)
                    + dp[i - 1][j] * amida_num(j - 1, W - j - 2)
                    + dp[i - 1][j + 1] * amida_num(j - 1, W - j - 3)
                )
    print((dp[H][K - 1] % (10**9 + 7)))
else:
    print((1))

H, W, K = list(map(int, input().split()))
r = 10**9 + 7
dp = [[0 for i in range(W)] for j in range(H + 1)]
dp[0][0] = 1
num = [1, 1, 2, 3, 5, 8, 13, 21]
if W != 1:
    for i in range(H):
        for j in range(W):
            if j == 0:
                dp[i + 1][j] = (num[W - 1] * dp[i][j] + num[W - 2] * dp[i][j + 1]) % r
            elif j == W - 1:
                dp[i + 1][j] = (num[W - 1] * dp[i][j] + num[W - 2] * dp[i][j - 1]) % r
            else:
                dp[i + 1][j] = (
                    num[j] * num[W - j - 1] * dp[i][j]
                    + num[j - 1] * num[W - j - 1] * dp[i][j - 1]
                    + num[j] * num[W - j - 2] * dp[i][j + 1]
                ) % r
    print((dp[H][K - 1]))
else:
    print((1))

-amida = [0 for i in range(8)] -amida[0] = 1 -amida[1] = 2 -amida[2] = 3 -amida[3] = 5 -amida[4] = 8 -amida[5] = 13 -amida[6] = 21 -amida[7] = 34 - - -def amida_num(k, l): -    return amida[max(k, 0)] * amida[max(l, 0)] - - +r = 10**9 + 7 +num = [1, 1, 2, 3, 5, 8, 13, 21] -    for i in range(1, H + 1): +    for i in range(H): -                dp[i][j] = dp[i - 1][j + 1] * amida_num(0, W - 3) + dp[i - 1][ -                    j -                ] * amida_num(0, W - 2) +                dp[i + 1][j] = (num[W - 1] * dp[i][j] + num[W - 2] * dp[i][j + 1]) % r -                dp[i][j] = dp[i - 1][j - 1] * amida_num(0, W - 3) + dp[i - 1][ -                    j -                ] * amida_num(0, W - 2) +                dp[i + 1][j] = (num[W - 1] * dp[i][j] + num[W - 2] * dp[i][j - 1]) % r -                dp[i][j] = ( -                    dp[i - 1][j - 1] * amida_num(j - 2, W - j - 2) -                    + dp[i - 1][j] * amida_num(j - 1, W - j - 2) -                    + dp[i - 1][j + 1] * amida_num(j - 1, W - j - 3) -                ) -    print((dp[H][K - 1] % (10**9 + 7))) +                dp[i + 1][j] = ( +                    num[j] * num[W - j - 1] * dp[i][j] +                    + num[j - 1] * num[W - j - 1] * dp[i][j - 1] +                    + num[j] * num[W - j - 2] * dp[i][j + 1] +                ) % r +    print((dp[H][K - 1]))