#include #include #include #include using namespace std; const int N = 1005; const int MOD = 1000000007; int n; int P[ N ]; int dp[ 2 ][ N ]; void load( ) { scanf( "%d", &n ); for( int i = 1; i <= n; i++ ) scanf( "%d", P + i ); } void update( int &ret ) { if( ret >= MOD ) ret -= MOD; } void solve( ) { for( int i = 1; i <= n; i++ ) { dp[ 0 ][ i ] = dp[ 1 ][ i ] = 1; for( int j = i - 1; j >= 1; j-- ) { if( P[ i ] == P[ j ] ) continue; if( P[ i ] > P[ j ] ) { dp[ 0 ][ i ] += dp[ 1 ][ j ]; update( dp[ 0 ][ i ] ); } else { dp[ 1 ][ i ] += dp[ 0 ][ j ]; update( dp[ 1 ][ i ] ); } } } int sol = 1; //prazan podniz for( int i = 1; i <= n; i++ ) { sol += dp[ 0 ][ i ]; update( sol ); sol += dp[ 1 ][ i ]; update( sol ); } sol -= n; if( sol < 0 ) sol += MOD; printf( "%d\n", sol ); } int main( void ) { load( ); solve( ); return 0; }