#include <bits/stdc++.h>
using namespace std;
const int mod = (1e9) + 7;
int dp[505][505];
int num[505];
long long dfs(int l, int r) {
  if (dp[l][r] > 0) return dp[l][r];
  if (l == r) return 1;
  for (int i = l + 1; i <= r; i++)
    if (i == r || num[l + 1] < num[i + 1])
      dp[l][r] = (dp[l][r] + dfs(l + 1, i) * dfs(i, r)) % mod;
  return dp[l][r];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> num[i];
  }
  cout << dfs(0, n) << endl;
  return 0;
}
