M = 1_000_000_007

H, W, K = gets.split.map(&:to_i)

dir = Array.new(W) { Hash.new(0) }
fin = 1 << (W - 1)
(0...fin)
    .map{|i| i.to_s(2)}
    .select{|s| s !~ /11/}
    .map {|s| ("%0#{W}d0" % s).split('').map(&:to_i)}
    .each do |a| 
      a.each_cons(2).with_index do |(left, right), i|
        if left == 1
          dir[i][i - 1] += 1
        elsif right == 1
          dir[i][i + 1] += 1
        else  
          dir[i][i] += 1
        end
      end
    end

x = Array.new(W, 0)
x[0] = 1
y = Array.new(W, 0)
H.times do
  dir.each.with_index do |h, i|
    h.each do |j, c|
      y[j] = (y[j] + x[i] * c) % M  
    end 
  end
  x, y = y, x
  y = Array.new(W, 0)
end

puts x[K - 1]