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



mod = 10**9+7

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

dp[0][0] = 1



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

    for j in range(w):

        left, center, right = 0, 0, 0



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

            invalid = False

            for l in range(1, w-1):

                if k >> l & 1 and k >> (l-1) & 1:

                    invalid = True



            if invalid:

                continue



            no_line = True



            if j > 0:

                if k >> (j-1) & 1:

                    left += 1

                    no_line = False



            if j < w-1:

                if k >> j & 1:

                    right += 1

                    no_line = False



            if no_line:

                center += 1



        if j > 0:

            dp[i][j] += dp[i-1][j-1] * left



        if j < w-1:

            dp[i][j] += dp[i-1][j+1] * right



        dp[i][j] += dp[i-1][j] * center

        dp[i][j] %= mod



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

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

mod = 10**9 + 7



dp = [[0] * W for _ in range(H + 1)]

dp[0][0] = 1





def fib(n):

    if n <= 1:

        return 1

    return fib(n-1) + fib(n-2)





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

    for j in range(W):

        left = j

        right = W - j - 1



        dp[i][j] = dp[i-1][j] * fib(left) * fib(right)



        if j > 0:

            dp[i][j] += dp[i-1][j-1] * fib(left-1) * fib(right)



        if j < W-1:

            dp[i][j] += dp[i-1][j+1] * fib(left) * fib(right - 1)



        dp[i][j] %= mod



print((dp[-1][K-1]))
h, w, K = list(map(int, input().split()))
mod = 10**9 + 7
dp = [[0] * w for _ in range(h + 1)]
dp[0][0] = 1
for i in range(1, h + 1):
    for j in range(w):
        left, center, right = 0, 0, 0
        for k in range(2 ** (w - 1)):
            invalid = False
            for l in range(1, w - 1):
                if k >> l & 1 and k >> (l - 1) & 1:
                    invalid = True
            if invalid:
                continue
            no_line = True
            if j > 0:
                if k >> (j - 1) & 1:
                    left += 1
                    no_line = False
            if j < w - 1:
                if k >> j & 1:
                    right += 1
                    no_line = False
            if no_line:
                center += 1
        if j > 0:
            dp[i][j] += dp[i - 1][j - 1] * left
        if j < w - 1:
            dp[i][j] += dp[i - 1][j + 1] * right
        dp[i][j] += dp[i - 1][j] * center
        dp[i][j] %= mod
print((dp[h][K - 1]))

H, W, K = list(map(int, input().split()))
mod = 10**9 + 7
dp = [[0] * W for _ in range(H + 1)]
dp[0][0] = 1


def fib(n):
    if n <= 1:
        return 1
    return fib(n - 1) + fib(n - 2)


for i in range(1, H + 1):
    for j in range(W):
        left = j
        right = W - j - 1
        dp[i][j] = dp[i - 1][j] * fib(left) * fib(right)
        if j > 0:
            dp[i][j] += dp[i - 1][j - 1] * fib(left - 1) * fib(right)
        if j < W - 1:
            dp[i][j] += dp[i - 1][j + 1] * fib(left) * fib(right - 1)
        dp[i][j] %= mod
print((dp[-1][K - 1]))

-h, w, K = list(map(int, input().split())) +H, W, K = list(map(int, input().split())) -dp = [[0] * w for _ in range(h + 1)] +dp = [[0] * W for _ in range(H + 1)] -for i in range(1, h + 1): -    for j in range(w): -        left, center, right = 0, 0, 0 -        for k in range(2 ** (w - 1)): -            invalid = False -            for l in range(1, w - 1): -                if k >> l & 1 and k >> (l - 1) & 1: -                    invalid = True -            if invalid: -                continue -            no_line = True -            if j > 0: -                if k >> (j - 1) & 1: -                    left += 1 -                    no_line = False -            if j < w - 1: -                if k >> j & 1: -                    right += 1 -                    no_line = False -            if no_line: -                center += 1 + + +def fib(n): +    if n <= 1: +        return 1 +    return fib(n - 1) + fib(n - 2) + + +for i in range(1, H + 1): +    for j in range(W): +        left = j +        right = W - j - 1 +        dp[i][j] = dp[i - 1][j] * fib(left) * fib(right) -            dp[i][j] += dp[i - 1][j - 1] * left -        if j < w - 1: -            dp[i][j] += dp[i - 1][j + 1] * right -        dp[i][j] += dp[i - 1][j] * center +            dp[i][j] += dp[i - 1][j - 1] * fib(left - 1) * fib(right) +        if j < W - 1: +            dp[i][j] += dp[i - 1][j + 1] * fib(left) * fib(right - 1) -print((dp[h][K - 1])) +print((dp[-1][K - 1]))