MOD = 10 ** 9 + 7



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

K -= 1

# 0-indexed



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

dp[0][0] = 1

# dp[h][k]

# h段のあみだくじで横線kに到達する本数



for h in range(H):

    # h: 移動前の高さ

    for b in range(1 << (W - 1)):

        # 各段はW - 1箇所の横線配置位置をもつ



        if '11' in bin(b): continue

        # 横線同士がつながっているケースは不適



        goto = [i for i in range(W)]

        # goto[i]: 縦線iからの移動先



        for j in range(W - 1):

            # j: 横線の番号 かつ 横線の左側の縦線の番号

            if (b >> j) & 1 == 1:

                # 横線が存在する場合

                goto[j], goto[j + 1] = goto[j + 1], goto[j]

        # gotoで横線配置bによる移動を表現する



        for i in range(W):

            # i: 移動前の縦線

            dp[h + 1][goto[i]] += dp[h][i]

            dp[h + 1][goto[i]] %= MOD



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

def f(n):

    # 縦線n本で構成できる横線の組み合わせ

    if n <= 1: return 1

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





MOD = 10 ** 9 + 7



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

K -= 1

# 0-indexed



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

dp[0][0] = 1

# dp[h][k]

# h段のあみだくじで横線kに到達する本数



for h in range(H):

    # h: 移動前の高さ

    for i in range(W):

        # i: 移動前の縦線

        if i >= 1:

            dp[h + 1][i - 1] += dp[h][i] * f(i - 1) * f(W - 1 - i)

            dp[h + 1][i - 1] %= MOD

        dp[h + 1][i] += dp[h][i] * f(i) * f(W - 1 - i)

        dp[h + 1][i] %= MOD

        if i < W - 1:

            dp[h + 1][i + 1] += dp[h][i] * f(i) * f(W - 2 - i)

            dp[h + 1][i + 1] %= MOD



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

MOD = 10**9 + 7
H, W, K = list(map(int, input().split()))
K -= 1
# 0-indexed
dp = [[0 for _ in range(W)] for _ in range(H + 1)]
dp[0][0] = 1
# dp[h][k]
# h段のあみだくじで横線kに到達する本数
for h in range(H):
    # h: 移動前の高さ
    for b in range(1 << (W - 1)):
        # 各段はW - 1箇所の横線配置位置をもつ
        if "11" in bin(b):
            continue
        # 横線同士がつながっているケースは不適
        goto = [i for i in range(W)]
        # goto[i]: 縦線iからの移動先
        for j in range(W - 1):
            # j: 横線の番号 かつ 横線の左側の縦線の番号
            if (b >> j) & 1 == 1:
                # 横線が存在する場合
                goto[j], goto[j + 1] = goto[j + 1], goto[j]
        # gotoで横線配置bによる移動を表現する
        for i in range(W):
            # i: 移動前の縦線
            dp[h + 1][goto[i]] += dp[h][i]
            dp[h + 1][goto[i]] %= MOD
print((dp[H][K]))

def f(n):
    # 縦線n本で構成できる横線の組み合わせ
    if n <= 1:
        return 1
    return f(n - 1) + f(n - 2)


MOD = 10**9 + 7
H, W, K = list(map(int, input().split()))
K -= 1
# 0-indexed
dp = [[0 for _ in range(W)] for _ in range(H + 1)]
dp[0][0] = 1
# dp[h][k]
# h段のあみだくじで横線kに到達する本数
for h in range(H):
    # h: 移動前の高さ
    for i in range(W):
        # i: 移動前の縦線
        if i >= 1:
            dp[h + 1][i - 1] += dp[h][i] * f(i - 1) * f(W - 1 - i)
            dp[h + 1][i - 1] %= MOD
        dp[h + 1][i] += dp[h][i] * f(i) * f(W - 1 - i)
        dp[h + 1][i] %= MOD
        if i < W - 1:
            dp[h + 1][i + 1] += dp[h][i] * f(i) * f(W - 2 - i)
            dp[h + 1][i + 1] %= MOD
print((dp[H][K]))

+def f(n): +    # 縦線n本で構成できる横線の組み合わせ +    if n <= 1: +        return 1 +    return f(n - 1) + f(n - 2) + + -    for b in range(1 << (W - 1)): -        # 各段はW - 1箇所の横線配置位置をもつ -        if "11" in bin(b): -            continue -        # 横線同士がつながっているケースは不適 -        goto = [i for i in range(W)] -        # goto[i]: 縦線iからの移動先 -        for j in range(W - 1): -            # j: 横線の番号 かつ 横線の左側の縦線の番号 -            if (b >> j) & 1 == 1: -                # 横線が存在する場合 -                goto[j], goto[j + 1] = goto[j + 1], goto[j] -        # gotoで横線配置bによる移動を表現する -        for i in range(W): -            # i: 移動前の縦線 -            dp[h + 1][goto[i]] += dp[h][i] -            dp[h + 1][goto[i]] %= MOD +    for i in range(W): +        # i: 移動前の縦線 +        if i >= 1: +            dp[h + 1][i - 1] += dp[h][i] * f(i - 1) * f(W - 1 - i) +            dp[h + 1][i - 1] %= MOD +        dp[h + 1][i] += dp[h][i] * f(i) * f(W - 1 - i) +        dp[h + 1][i] %= MOD +        if i < W - 1: +            dp[h + 1][i + 1] += dp[h][i] * f(i) * f(W - 2 - i) +            dp[h + 1][i + 1] %= MOD