#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define Samurai ios_base::sync_with_stdio(false), cout.tie(NULL), cin.tie(NULL);
#define pr_g priority_queue<pair<ll,int>, vector<pair<ll,int>>,greater<pair<ll,int>>>
int dx [] = {0, 0, 1, -1, 1, 1, -1, -1};
int dy [] = {-1, 1, 0, 0, -1, 1, 1, -1};
char dir [] = {'>', '<', '^', 'v'};
int Lx[] = {2, 2, -2, -2, 1, 1, -1, -1};
int Ly[] = {1, -1, 1, -1, 2, -2, 2, -2};
const double PI = acos(-1.0);
#define el '\n'
const ll mod = 1e9 + 7, N = 2e5 + 5, OO = 0x3f3f3f3f;
ll n, a[N], dp[N];
ll rec (int i) {
ll &ret = dp[i];
if (~ret)
return ret;
ret = 1;
for (int j = i + 1; j < n; j++)
if (a[i] < a[j]) {
ret += (rec(j)) % mod;
ret %= mod;
}
return ret;
}
void solve() {
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
memset(dp, -1, sizeof dp);
ll sum = 0;
for (int i = 0; i < n; i++) {
sum += rec(i) % mod;
sum %= mod;
}
cout << sum;
}
int main() { Samurai
int _t = 1; //cin >> _t;
for (int i = 1; i <= _t; i++){
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgU2FtdXJhaSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY291dC50aWUoTlVMTCksIGNpbi50aWUoTlVMTCk7CiNkZWZpbmUgcHJfZyBwcmlvcml0eV9xdWV1ZTxwYWlyPGxsLGludD4sIHZlY3RvcjxwYWlyPGxsLGludD4+LGdyZWF0ZXI8cGFpcjxsbCxpbnQ+Pj4KaW50IGR4IFtdID0gezAsIDAsIDEsIC0xLCAxLCAxLCAtMSwgLTF9OwppbnQgZHkgW10gPSB7LTEsIDEsIDAsIDAsIC0xLCAxLCAxLCAtMX07CmNoYXIgZGlyIFtdID0geyc+JywgJzwnLCAnXicsICd2J307CmludCBMeFtdID0gezIsIDIsIC0yLCAtMiwgMSwgMSwgLTEsIC0xfTsKaW50IEx5W10gPSB7MSwgLTEsIDEsIC0xLCAyLCAtMiwgMiwgLTJ9Owpjb25zdCBkb3VibGUgUEkgPSBhY29zKC0xLjApOwojZGVmaW5lIGVsICdcbicKY29uc3QgbGwgbW9kID0gMWU5ICsgNywgTiA9IDJlNSArIDUsIE9PID0gMHgzZjNmM2YzZjsKbGwgbiwgYVtOXSwgZHBbTl07CmxsIHJlYyAoaW50IGkpIHsKICAgIGxsICZyZXQgPSBkcFtpXTsKICAgIGlmICh+cmV0KQogICAgICAgIHJldHVybiByZXQ7CiAgICByZXQgPSAxOwogICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKQogICAgICAgIGlmIChhW2ldIDwgYVtqXSkgewogICAgICAgICAgICByZXQgKz0gKHJlYyhqKSkgJSBtb2Q7CiAgICAgICAgICAgIHJldCAlPSBtb2Q7CiAgICAgICAgfQogICAgcmV0dXJuIHJldDsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgY2luID4+IGFbaV07CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgbGwgc3VtID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgc3VtICs9IHJlYyhpKSAlIG1vZDsKICAgICAgICBzdW0gJT0gbW9kOwogICAgfQogICAgY291dCA8PCBzdW07Cgp9CgppbnQgbWFpbigpIHsgU2FtdXJhaQogICAgaW50IF90ID0gMTsgLy9jaW4gPj4gX3Q7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBfdDsgaSsrKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K