#include using namespace std; int M = 1000000007 ; int tab[2003]; int n ; long long dp[2000][2000]; long long C[2000][2000]; long long fact[2000][2000]; int solve(int p , int nbr){ // cout << p << ' ' << nbr <tab[p]) for(int i = 2 ; i <=nbr ; i++){ // cout <> n ; for(int i = 0 ; i> tab[i]; } tab[n]=-1; for(int i = 1 ; i<=n ; i++){ fact[i][i] = i; C[i][0] = 1 ; C[i][i] = 1 ; for(int j = 1 ; j0 ;j--){ fact[i][j] = 1ll*fact[i][j+1]*j %M; } } memset(dp , -1 , sizeof dp); cout <