# 解説を見た。 # 包除っぽく見えたが間違いだった。 N=int(input()) mod=10**9+7 FACT=[1] for i in range(1,2*10**5+1): FACT.append(FACT[-1]*i%mod) FACT_INV=[pow(FACT[-1],mod-2,mod)] for i in range(2*10**5,0,-1): FACT_INV.append(FACT_INV[-1]*i%mod) FACT_INV.reverse() def Combi(a,b): if 0<=b<=a: return FACT[a]*FACT_INV[b]%mod*FACT_INV[a-b]%mod else: return 0 # 夫婦同じグループに入る夫婦がx組でグループ数がyとなる組み合わせ from functools import lru_cache @lru_cache(maxsize=None) def F(x,y): if x==0 and y==0: return 1 if x