require 'matrix'

def makeStepPattern( w, prevStep )
  if w == 1
    if prevStep == 0
      [[0],[1]]
    else
      [[0]]
    end
  elsif w == 0
  	[[0]]
  else
    offPat = makeStepPattern( w - 1, 0 )
    offPat.each {|pat| pat<< 0 }
    if prevStep == 1
      offPat
    else
	    onPat = makeStepPattern( w - 1, 1 )
	    onPat.each {|pat| pat<< 1 }
      offPat + onPat
		end
	end
end

(h,w,k) = STDIN.gets.split(/ +/).map(&:to_i)

stepPattern =  makeStepPattern( w - 1, 0 )

startGoalMatrix = []

w.times { startGoalMatrix<< Array.new( w, 0 ) }


( 0..w-1 ).each do |i|
	stepPattern.each do |pattern|
	  if i == 0
	    
	    if pattern[i] == 0
	      startGoalMatrix[ i ][ i ] += 1
	    else
	      startGoalMatrix[ i ][ i + 1] += 1
	  	end
	  	
	  elsif i == w - 1
	    
	    if pattern[i-1] == 0
	      startGoalMatrix[ i ][ i ] += 1
	    else
	      startGoalMatrix[ i ][ i - 1] += 1
	  	end
	  
	  else
	  
	    if pattern[i-1] == 0 && pattern[i] == 0
	      startGoalMatrix[ i ][ i ] += 1
	    elsif pattern[i-1] == 1
	      startGoalMatrix[ i ][ i - 1] += 1
	    elsif pattern[i] == 1
	      startGoalMatrix[ i ][ i + 1] += 1
	  	end
	  
	  end
  end 
end


sgm = Matrix.rows( startGoalMatrix, false )

v = Array.new( w, 0 )
v[0] = 1

goalVector = Vector.elements( v, false )


h.times do 
  goalVector = sgm * goalVector
end

puts goalVector[ k - 1 ] % 1000000007
