#include using namespace std; const int maxn=1210; int m[maxn]; int dp[maxn][maxn]; const int MOD=1e9+7; int fact[maxn]; int invfact[maxn]; int mul(int a,int b){ long long c=(long long)a*(long long)b; c%=MOD; return c; } int add(int a,int b){ long long c=(long long)a+(long long)b; c%=MOD; return c; } int fast_power(int a,int k){ int res=1; int temp=a; while(k){ if(k&1) res=mul(res,temp); temp=mul(temp,temp); k>>=1; } return res; } int inverse(int a){ return fast_power(a,MOD-2); } void init(int n){ fact[0]=invfact[0]=1; for(int i=1;i<=n;i++){ fact[i]=mul(fact[i-1],i); invfact[i]=inverse(fact[i]); } } int l[maxn]; int r[maxn]; int cnt; void prepare(int n){ int ind=1; while(ind<=n){ int left=ind; int right=ind+1; while(right<=n&&m[right]>m[right-1])right++; l[cnt]=left; r[left]=right-1; ind=right; cnt++; } } bool check(int start,int end){ int pos=upper_bound(l,l+cnt,start)-l-1; //cout<> n; init(n); cnt=0; for(int m_i = 0; m_i < n; m_i++){ cin >> m[m_i+1]; // m[m_i+1]=m_i+1; } prepare(n); if(n>=1101&&check(1,n)){ cout<