N = int(input()) shift = N - bin(2 * N)[2:].count("1") #(2N)!の偶数項 z = 1000000007 memo = {i:1 for i in range(3, 2 * N + 1, 2)} r = 2 * N + 1 while r != 1: r = int(r / 2) for i in range(3, r + 1, 2): memo[i] += 1 odds = 1 for i in memo: odds = odds * i ** memo[i] ans = (odds << shift) % z print(ans)