#include<iostream>
#include<cstring>
using namespace std;
const int mod=1e9+7;
const int Max=1000;
string s;
long long ans,f[Max][Max],l,r,
n,k,t[Max][Max],g[Max][Max];
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>s[i];
}
l=1,r=n;
if(s[l]=='*'||s[r]=='*'){
cout<<ans;
return 0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(s[j]=='*'||s[j]=='?'){
t[i][j]++;
}else{
break;
}
}
}
for(l=1;l<=n-1;l++){
r=l+1;
if((s[l]=='?'||s[l]=='(')&&(s[r]==')'||s[r]=='?')){
f[l][r]=1;
}
}
for(int p=3;p<=n;p++){
for(int len=3;len<=n;len++){
for(l=1;l<=n-len+1;l++){
r=l+len-1;
if(r-l-1<=k){
f[l][r]+=t[l+1][r-1];
}
}
for(int i=1;i<=r;i++){
for(int j=1;j<=r;j++){
if(l<i&&i<j&&j<r&&j-i-1<=k){
if(j==i+1){
g[l][r]+=(f[l][i]+g[l][r])*f[j][r];
}else{
g[l][r]+=(f[l][i]+g[l][r])*f[j][r]*t[i+1][j-1];
}
}
}
}
for(int i=l;i<=r;i++){
for(int j=r;j>=l;j--){
if(l<i&&i<j&&j<r&&j-i-1<=k){
g[l][r]+=f[l+1][r-1]+g[l+1][r-1];
}
}
}
for(int i=l;i<=k;i++){
r=l+p+1;
f[l][r]+=(f[l+i+1][r-1]+g[l][l+p+1])*t[l+1][l+i];
}
for(int i=1;i<=k;i++){
f[l][r]+=(f[l+1][r-i-1]+g[l+1][r-i-1])*t[r-i][r-1];
}
}
}
for(int i=1;i<=n;i++){
ans+=(f[1][n]+g[1][n]);
}
cout<<ans;
return 0;
}