#!/usr/bin/env ruby

require 'set'

class Hash
  def push(key, value)
    self[key] = [] if self[key] == nil
    self[key].push(value)
  end
end

class Array
  def lower_bound(value)
    left = -1;
    right = self.length;
    while left + 1 < right
      mid = left + (right - left) / 2;
      if self[mid] >= value
        right = mid
      else
        left = mid
      end
    end
    right
  end

  def unique
    res = [self.first]
    each_cons(2) do |a, b|
      if a != b
        res.push(b)
      end
    end
    res
  end
end

def get_ints
  gets.chomp.split.map(&:to_i)
end

def get_ints_minus_one
  get_ints.map { |x| x - 1 }
end

def get_int
  gets.chomp.to_i
end

H, W, K = get_ints
MOD = 10 ** 9 + 7

if W == 1
  puts 1
else
  @W = W - 1
  @memo = {}

  @memo2 = {}

  def honsu_keisan(width, prev_exist)
    return @memo2[[width, prev_exist]] if @memo2[[width, prev_exist]]
    return 0 if width == 0
    if width == 1
      return prev_exist ? 1 : 2
    end

    result = if prev_exist
      honsu_keisan(width - 1, false)
    else
      honsu_keisan(width - 1, false) + honsu_keisan(width-1, true)
    end
    @memo2[[width, prev_exist]] = result
    result
  end

  def other_cases(start_w, end_w)
    res = []
    if start_w > 0
      res << honsu_keisan(start_w - 1, false)
    end
    if end_w < @W
      res << honsu_keisan(@W - (end_w + 1), false)
    end
    res = res.filter { |x| x != 0 }
    return 1 if res.empty?

    ans = 1
    res.each do |x|
      ans *= x
    end
    ans % MOD
  end

  def dfs(start_w, end_w, height)
    if @memo[[start_w, end_w, height]]
      return @memo[[start_w, end_w, height]]
    end

    if height == 0
      if start_w == end_w
        return 1
      else
        return 0
      end
    end

    res = [dfs(start_w, end_w, height - 1) * other_cases(start_w, start_w)]
    if start_w > 0
      res.push dfs(start_w - 1, end_w, height - 1) * other_cases(start_w - 1, start_w)
    end
    if start_w < @W
      res.push dfs(start_w + 1, end_w, height - 1) * other_cases(start_w, start_w + 1)
    end

    sum = res.sum % MOD
    sum.tap { |sum| @memo[[start_w, end_w, height]] = sum }
  end

  puts dfs(0, K-1, H)
end


