#include int main() { int n; scanf("%d", &n); int i; int a[100005]; for (i = 0; i < n; i++) scanf("%d", &a[i]); long long int p = 1000000007; long long int cnt[102]; for (i = 0; i < 102; i++) cnt[i] = 0; for (i = 0; i < n; i++) cnt[a[i]]++; long long int dp[3][102]; for (i = 0; i < 102; i++) dp[0][i] = dp[1][i] = dp[2][i] = 0; dp[0][0] = dp[1][0] = dp[2][0] = 0; for (i = 1; i < 102; i++) { dp[2][i] = (cnt[i] * dp[1][i - 1] % p + dp[2][i - 1]) % p; dp[1][i] = (cnt[i] * dp[0][i - 1] % p + dp[1][i - 1]) % p; dp[0][i] = (cnt[i] + dp[0][i - 1]) % p; } printf("%lld\n", dp[2][101]); return 0; }