DBG = !true
R = 1000000007
h,w,k = gets.split.map{|x| x.to_i}
printf("h:%d w:%d k:%d\n", h, w, k) if DBG

if w == 1
  print 1
  exit
end

f = [1, 1, 2, 3, 5, 8, 13, 21]
p = []
p << Array.new(w,0)
p[0][0] = 1

for y in 1..(h)
  if DBG
    print "y:#{y-1} "
    print p[y-1]
    print "\n"
  end
  p << Array.new(w,0)
  p[y][0] = p[y-1][0]*f[w-1] + p[y-1][1]*f[w-2]
  for i in 1..(w-2)
    p[y][i] = (p[y-1][i-1]*f[i-1]*f[w-i-1] + p[y-1][i]*f[i]*f[w-i-1] +
               p[y-1][i+1]*f[i]*f[w-i-2]) % R
  end
  p[y][w-1] = (p[y-1][w-2]*f[w-2] + p[y-1][w-1]*f[w-1]) % R
end

if DBG
  print "y:#{h} "
  print p[h]
  print "\n"
end
print p[h][k-1]
