#include #include #include #include #include using namespace std; #define fi first #define sc second #define mkp make_pair #define pii pair typedef long long ll; const int N=4005,oo=1e9,mod=1e9+7; inline int read() { int x=0,flag=0;char ch=getchar(); while(ch<'0'||ch>'9') {flag|=(ch=='-');ch=getchar();} while('0'<=ch&&ch<='9') {x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return flag?-x:x; } inline int mx(int x,int y) {return x>y?x:y;} inline int mn(int x,int y) {return x0?x:-x;} int n,m,C[N][N],S[N][N]; inline void prep() { int L=mx(n,m); C[0][0]=S[0][0]=1; C[1][0]=C[1][1]=1;S[1][0]=S[1][1]=1; for(int i=2;i<=L;++i) { C[i][0]=C[i][i]=1; for(int j=1;j=n) ans=(ans+1)%mod; printf("%d\n",ans); } inline void solve_even() { int ans=0,L=n/2; for(int i=0;i<=L;++i) for(int j=0;j