#include using namespace std; int dp[1500][1500],a[1500],fac[1500],inv[1500]; bool sor[1500][1500]; int mod=1000000007,n; typedef long long ll; long long pow(int a, int b, int MOD) { long long x=1,y=a; while(b > 0) { if(b%2 == 1) { x=(x*y); if(x>MOD) x%=MOD; } y = (y*y); if(y>MOD) y%=MOD; b /= 2; } return x; } int rec(int i,int j){ if(dp[i][j]!=-1){ //cout<=mod) ret-=mod; } // cout<=a[j-1]) sor[i][j]=true; else break; j++; } } for(i=0;i<=n;i++){ dp[0][i]=1; if(sor[1][i]) dp[i][i]=1; } int ans=0; for(i=1;i<=n;i++){ ans+=rec(n,i); // cout<=mod) ans-=mod; } printf("%d",ans); }