from bisect import bisect, bisect_left m = 10**9+7 n = int(input()) a = map(int, input().split()) s, t, c = [], [], [] for v in a: l = bisect_left(t, v) if l == len(t): s.append([]); t.append(v); c.append(0) o = c[l-1] + s[l-1][bisect(s[l-1], (-v, 0))][1] if l else 1 s[l].append((-v, -c[l])) t[l] = v c[l] += o c[l] %= m print(c[-1])