h,w,kk = list(map(int,input().split()))

dp = [[[] for j in range(w)] for i in range(h+1)]

# dp[i][j]

# 高さiにおいて点jに行き得る通り数

for i in range(h+1):

        for j in range(w):

                dp[i][j] = 0

dp[0][0]=1

mod = 1000000007



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

        for j in range(1<<(w-1)):

                yoko = [False for loo in range(w)]

                for k in range((w-1)):

                        yoko[k] = True if ((j>>k)&1) else False

                

                ok = True

                for l in range(w-2):

                        if(yoko[l]==True and yoko[l+1]==True):

                                ok = False

                if(not ok):

                        continue

                

                for l in range(w):

                        if(l==0):

                                if(yoko[l]):

                                        dp[i][l] += dp[i-1][l+1]

                                else:

                                        dp[i][l] += dp[i-1][l]

                                dp[i][l]%=mod

                                continue

                        if(l==w-1):

                                if(yoko[l-1]):

                                        dp[i][l] += dp[i-1][l-1]

                                else:

                                        dp[i][l] += dp[i-1][l]

                                dp[i][l]%=mod                                

                                continue



                        if(yoko[l-1] or yoko[l]):

                                if(yoko[l-1]):

                                        dp[i][l]+= dp[i-1][l-1]

                                else:

                                        dp[i][l]+= dp[i-1][l+1]

                        else:

                                dp[i][l] += dp[i-1][l]

                        dp[i][l]%=mod

                        

print((dp[h][kk-1]))
mod = 10**9+7

h,w,k = list(map(int,input().split()))

dp =[[0]*w for _ in range(h+1)]

dp[0][0]=1

fibo=[1]*10

for i in range(2,10):

        fibo[i] = fibo[i-2]+fibo[i-1]

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

        for j in range(w):

                dp[i][j] = dp[i-1][j]*fibo[j]*fibo[w-j-1]%mod

                if(j>0):

                        dp[i][j] += dp[i-1][j-1]*fibo[j-1]*fibo[w-j-1]%mod

                        dp[i][j] %= mod

                if(j<w-1):

                        dp[i][j] += dp[i-1][j+1]*fibo[j]*fibo[w-j-2]%mod

                        dp[i][j]%=mod

print((dp[h][k-1]))
h, w, kk = list(map(int, input().split()))
dp = [[[] for j in range(w)] for i in range(h + 1)]
# dp[i][j]
# 高さiにおいて点jに行き得る通り数
for i in range(h + 1):
    for j in range(w):
        dp[i][j] = 0
dp[0][0] = 1
mod = 1000000007
for i in range(1, h + 1):
    for j in range(1 << (w - 1)):
        yoko = [False for loo in range(w)]
        for k in range((w - 1)):
            yoko[k] = True if ((j >> k) & 1) else False
        ok = True
        for l in range(w - 2):
            if yoko[l] == True and yoko[l + 1] == True:
                ok = False
        if not ok:
            continue
        for l in range(w):
            if l == 0:
                if yoko[l]:
                    dp[i][l] += dp[i - 1][l + 1]
                else:
                    dp[i][l] += dp[i - 1][l]
                dp[i][l] %= mod
                continue
            if l == w - 1:
                if yoko[l - 1]:
                    dp[i][l] += dp[i - 1][l - 1]
                else:
                    dp[i][l] += dp[i - 1][l]
                dp[i][l] %= mod
                continue
            if yoko[l - 1] or yoko[l]:
                if yoko[l - 1]:
                    dp[i][l] += dp[i - 1][l - 1]
                else:
                    dp[i][l] += dp[i - 1][l + 1]
            else:
                dp[i][l] += dp[i - 1][l]
            dp[i][l] %= mod
print((dp[h][kk - 1]))

mod = 10**9 + 7
h, w, k = list(map(int, input().split()))
dp = [[0] * w for _ in range(h + 1)]
dp[0][0] = 1
fibo = [1] * 10
for i in range(2, 10):
    fibo[i] = fibo[i - 2] + fibo[i - 1]
for i in range(1, h + 1):
    for j in range(w):
        dp[i][j] = dp[i - 1][j] * fibo[j] * fibo[w - j - 1] % mod
        if j > 0:
            dp[i][j] += dp[i - 1][j - 1] * fibo[j - 1] * fibo[w - j - 1] % mod
            dp[i][j] %= mod
        if j < w - 1:
            dp[i][j] += dp[i - 1][j + 1] * fibo[j] * fibo[w - j - 2] % mod
            dp[i][j] %= mod
print((dp[h][k - 1]))

-h, w, kk = list(map(int, input().split())) -dp = [[[] for j in range(w)] for i in range(h + 1)] -# dp[i][j] -# 高さiにおいて点jに行き得る通り数 -for i in range(h + 1): +mod = 10**9 + 7 +h, w, k = list(map(int, input().split())) +dp = [[0] * w for _ in range(h + 1)] +dp[0][0] = 1 +fibo = [1] * 10 +for i in range(2, 10): +    fibo[i] = fibo[i - 2] + fibo[i - 1] +for i in range(1, h + 1): -        dp[i][j] = 0 -dp[0][0] = 1 -mod = 1000000007 -for i in range(1, h + 1): -    for j in range(1 << (w - 1)): -        yoko = [False for loo in range(w)] -        for k in range((w - 1)): -            yoko[k] = True if ((j >> k) & 1) else False -        ok = True -        for l in range(w - 2): -            if yoko[l] == True and yoko[l + 1] == True: -                ok = False -        if not ok: -            continue -        for l in range(w): -            if l == 0: -                if yoko[l]: -                    dp[i][l] += dp[i - 1][l + 1] -                else: -                    dp[i][l] += dp[i - 1][l] -                dp[i][l] %= mod -                continue -            if l == w - 1: -                if yoko[l - 1]: -                    dp[i][l] += dp[i - 1][l - 1] -                else: -                    dp[i][l] += dp[i - 1][l] -                dp[i][l] %= mod -                continue -            if yoko[l - 1] or yoko[l]: -                if yoko[l - 1]: -                    dp[i][l] += dp[i - 1][l - 1] -                else: -                    dp[i][l] += dp[i - 1][l + 1] -            else: -                dp[i][l] += dp[i - 1][l] -            dp[i][l] %= mod -print((dp[h][kk - 1])) +        dp[i][j] = dp[i - 1][j] * fibo[j] * fibo[w - j - 1] % mod +        if j > 0: +            dp[i][j] += dp[i - 1][j - 1] * fibo[j - 1] * fibo[w - j - 1] % mod +            dp[i][j] %= mod +        if j < w - 1: +            dp[i][j] += dp[i - 1][j + 1] * fibo[j] * fibo[w - j - 2] % mod +            dp[i][j] %= mod +print((dp[h][k - 1]))