#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007, maxn = 1000000;
int n;
int v[512];
long long int dp[512][512];
long long int funcao(int a, int b);
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &v[i]);
  }
  printf("%lld\n", funcao(1, n - 1));
}
long long int funcao(int a, int b) {
  if (a > b)
    return 1ll;
  else if (a == b)
    return 1ll;
  else if (dp[a][b])
    return dp[a][b];
  long long int ans = funcao(a + 1, b);
  for (int c = a + 1; c <= b; c++)
    if (v[c] > v[a]) {
      ans += funcao(a + 1, c - 1) * funcao(c, b);
      ans %= mod;
    }
  return dp[a][b] = ans;
}
