N = gets.to_i values = [0, 1] MOD = 10 ** 9 + 7 ov = 1 ev = 0 2.upto(N) do |n| if n.even? v = n * ov % MOD ev += v values << v else v = n * ev % MOD ov += v values << v end end puts values[N]