#include<cstdio>
const int mod=1000000007;
int N,M,R[3010],sum[3010],f[3010][3010];
char S[3010];
int main(){
	scanf("%d%d%s",&N,&M,S);
	for(int i=0;i<N;i++)R[i]=i+1;
	for(int i=0;i<M;i++){
		int l,r;
		scanf("%d%d",&l,&r);
		if(r>R[l-1])R[l-1]=r;
	}
	for(int i=0;i<N;i++)if(R[i]>R[i+1])R[i+1]=R[i];
	for(int i=0;i<N;i++)sum[i+1]=sum[i]+S[i]-'0';
	f[0][0]=1;
	for(int i=0;i<N;i++)for(int j=0;j<=sum[N];j++)if(f[i][j]){
		if(sum[R[i]]-j<R[i]-i)(f[i+1][j]+=f[i][j])%=mod;
		if(sum[R[i]]-j>0)(f[i+1][j+1]+=f[i][j])%=mod;
	}
	printf("%d\n",f[N][sum[N]]);
}