#include<stdio.h>
#include<algorithm>
using namespace std;
long long dp[1000][1000];
int mod=1000000007;
char str[2];
int val[1000];
int main(){
	int a;
	scanf("%d",&a);
	int n=0;
	for(int i=0;i<a;i++){
		scanf("%s",str);
		if(str[0]=='U')val[n++]=1;
		if(str[0]=='D')val[n++]=2;
	}
	dp[0][0]=1;
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++){
			if(val[i]==2){
				dp[i+1][j]=(dp[i+1][j]+dp[i][j]*j)%mod;
				if(j)dp[i+1][j-1]=(dp[i+1][j-1]+dp[i][j]*j*j)%mod;
			}else{
				dp[i+1][j+1]=(dp[i+1][j+1]+dp[i][j])%mod;
				if(j)dp[i+1][j]=(dp[i+1][j]+dp[i][j]*j)%mod;
			}
		}
	}
	printf("%lld\n",dp[n][0]);
}