#pragma comment(linker, "/STACK:102400000,102400000") #include using namespace std; #define vi vector #define pii pair #define pb push_back #define mp make_pair #define all(x) x.begin(),x.end() #define SZ(x) (int)(x.size()) #define rep(i,a,b) for(int i=a;i=a;i--) #define inf 1000000007 #define mod 1000000007 #define x first #define y second #define pi acos(-1.0) #define DBG(x) cerr<<(#x)<<"="<inline void Max(T &a,U b){if(ainline void Min(T &a,U b){if(a>b)a=b;} //FILE* outFile; inline void add(int &a,int b){a+=b;while(a>=mod)a-=mod;} int pow(int a,int b){ int ans=1; while(b){ if(b&1)ans=ans*(ll)a%mod; a=(ll)a*a%mod;b>>=1; } return ans; } int a[1205],dp[1205][1205],r[1205],f[1205],inv[1205]; int A(int a,int b){ return 1LL*f[a]*inv[a-b]%mod; } int main(){ //freopen("A.txt","r",stdin); //freopen("A.out","w",stdout); //cout<j)break; add(dp[k+1][l],1LL*dp[i][j]*A(j,l)%mod); } } } int ans=0; rep(i,1,n+1)add(ans,dp[n][i]);//cerr<