#include using namespace std; const long long MAXN = 1205; long long n; long long arr [MAXN]; long long farthest [MAXN]; long long dp [MAXN][MAXN]; long long fact [MAXN]; long long inv_fact [MAXN]; long long choose [MAXN][MAXN]; const long long MOD = 1e9 + 7; long long powm (long long a, long long b){ if(b==0)return 1; long long ke = powm(a,b/2); ke=(ke*ke)%MOD; if (b&1)ke=(ke*a)%MOD; return ke; } int main(){ fact[0]=1; for (long long i=1;i> n; for (long long i=0; i> arr[i]; for (long long i=n-1; i>=1; i--){ farthest[i] = farthest[i+1]; if (arr[i]>arr[i+1]) farthest[i]=i; } dp[n+1][0]=1; long long tot=0; for (long long i=n; i>=1; i--){ for (long long j=1; j<=n; j++){ if (farthest[i]-i+1