# util functions

# debug
$debugFlag = ( ARGV[0] != nil )
p "==== DEBUG MODE ====" if $debugFlag

def pd(str)
  p str if $debugFlag
end

def printd(str)
  print str if $debugFlag
end

# input
inputs = []
lc = 0
while l = $stdin.gets do
  if false
    inputs << l.chomp.split(" ").map(&:to_s)
  else
    inputs << l.chomp.split(" ").map(&:to_i)
  end
  lc += 1
end

hh = inputs[0][0]
ww = inputs[0][1]
kk = inputs[0][2]

# input check
if $debugFlag
  p "--- INPUT (begin) ---"
  inputs.each do |l_i|
    p l_i
  end
  p "--- INPUT (end) ---"
  print "\n"
end

# body
if $debugFlag
end

$memo = {}
def pat(n)
  if n <= 0
    return 1
  elsif n == 1
    return 2
  elsif n == 2
    return 3
  else
    return $memo[n] if $memo[n] != nil
    $memo[n] = pat(n-1) + pat(n-2)
    return $memo[n]
  end
end

$memorec = {}
def rec(n, k, w)
  if n == 0
    if k == 1
      return 1
    else
      return 0
    end
  end
  if k > w or k <= 0
    return 0
  end

  #pd "pat(#{k-3})*pat(#{w-k-1})*rec(#{n-1}, #{k-1}, #{w}) + pat(#{k-2})*pat(#{w-k-1})*rec(#{n-1}, #{k}, #{w}) + pat(#{k-2})*pat(#{w-k-2})*rec(#{n-1}, #{k+1}, #{w})"
  return $memorec["#{n},#{k}"] if $memorec["#{n},#{k}"] != nil

  $memorec["#{n},#{k}"] = pat(k-3)*pat(w-k-1)*rec(n-1, k-1, w) + pat(k-2)*pat(w-k-1)*rec(n-1, k, w) + pat(k-2)*pat(w-k-2)*rec(n-1, k+1, w)
  return $memorec["#{n},#{k}"]
end

puts rec(hh, kk, ww) % 1000000007
