#include<bits/stdc++.h>
#define int long long
#define mod 1000000007
int n,k;
int dp[586][586][6];
std::string s;
signed main(){
std::cin>>n>>k;
std::cin>>s;
for(int i=1;i<=n;i++)
dp[i][i-1][0]=1;
for(int len=1;len<=n;len++)
for(int i=1;i+len-1<=n;i++){
int j=i+len-1;
if(len<=k)
dp[i][j][0]=((dp[i][j-1][0] and (s[j]=='*' or s[j]=='?'))?1:0);
if(len>=2)
for(int k=i;k<j;k++){
dp[i][j][1]=(dp[i][j][1]+(dp[i][k][2]+dp[i][k][1])*dp[k+1][j][5])%mod;
dp[i][j][2]=(dp[i][j][2]+dp[i][k][1]*dp[k+1][j][0])%mod;
dp[i][j][3]=(dp[i][j][3]+dp[i][k][4]*dp[k+1][j][0])%mod;
dp[i][j][4]=(dp[i][j][4]+(dp[i][k][4]+dp[i][k][3])*dp[k+1][j][5])%mod;
dp[i][j][5]=(((s[i]=='(' or s[i]=='?') and (s[j]==')' or s[j]=='?'))?1:0)*(dp[i+1][j-1][0]+dp[i+1][j-1][1]+dp[i+1][j-1][2]+dp[i+1][j-1][4])%mod;
}
dp[i][j][1]=(dp[i][j][1]+dp[i][j][5])%mod;
dp[i][j][3]=(dp[i][j][3]+dp[i][j][0])%mod;
}
std::cout<<dp[1][n][1];
return 0;
}