#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pii pair<int,int>
#define int long long 
const int N=100,mod=1e9+7;  
int t,n,k;
string s;
char x[10]={'(',')','[',']','{','}'};
int pos[260];
string dp[N+2][N/2];
string add(string x,string y)
{
  if (x.size()<y.size()) 
  {
    reverse(x.begin(),x.end());
    while (x.size()<y.size()) x+="0";
    reverse(x.begin(),x.end());
  }
  if (x.size()>y.size()) 
  {
    reverse(y.begin(),y.end());
    while (x.size()>y.size()) y+="0";
    reverse(y.begin(),y.end());
  }
  string c="";
  int nho=0;
  for (int i=x.size()-1;i>=0;i--)
  {
    int d=x[i]+y[i]+nho-96;
    nho=d/10;d%=10;
    c+=char(d+48);
  }
  if (nho>0) c+=char(nho+48);
  reverse(c.begin(),c.end());
  return c;
}
string cal(int i,int j)
{
  if (dp[i][j]!="-1") return dp[i][j];
  if (i==n) 
  {
    string st="";
    st+=char((j==0)+'0');
    return st;
  }
  string &res=dp[i][j];
  res="0";
  if (j<k) 
  for (int p=1;p<=3;p++) res=add(res,cal(i+1,j+1));
  if (j>0) res=add(res,cal(i+1,j-1));
  return res;
}
void Sol2()
{
  for (int i=0;i<=n;i++)
  for (int j=0;j<=k;j++) dp[i][j]="-1";
  vector<char> g;
  string res="1";
  int d=0;
  for (int i=0;i<s.size();i++)
  {
    if (d<k)
    {
      for (int j=0;j<6;j+=2)
      if (x[j]<s[i]) res=add(res,cal(i+1,d+1));
    }
    if (d>0)
    if (x[pos[g.back()]+1]<s[i])
    res=add(res,cal(i+1,d-1));
    if (pos[s[i]]%2==0) g.push_back(s[i]),d++;
    else g.pop_back(),d--;
  }
  cout<<res<<"\n";
}
signed main() 
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);cout.tie(0);
  if (fopen("BTN.inp","r"))
  {
    freopen("BTN.inp","r",stdin);
    freopen("BTN.out","w",stdout);
  }
  pos['(']=0;pos[')']=1;
  pos['[']=2;pos[']']=3;
  pos['{']=4;pos['}']=5;
  cin>>t>>n>>k;
  cin>>s;
  Sol2();
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGludCBsb25nIGxvbmcgCmNvbnN0IGludCBOPTEwMCxtb2Q9MWU5Kzc7ICAKaW50IHQsbixrOwpzdHJpbmcgczsKY2hhciB4WzEwXT17JygnLCcpJywnWycsJ10nLCd7JywnfSd9OwppbnQgcG9zWzI2MF07CnN0cmluZyBkcFtOKzJdW04vMl07CnN0cmluZyBhZGQoc3RyaW5nIHgsc3RyaW5nIHkpCnsKICBpZiAoeC5zaXplKCk8eS5zaXplKCkpIAogIHsKICAgIHJldmVyc2UoeC5iZWdpbigpLHguZW5kKCkpOwogICAgd2hpbGUgKHguc2l6ZSgpPHkuc2l6ZSgpKSB4Kz0iMCI7CiAgICByZXZlcnNlKHguYmVnaW4oKSx4LmVuZCgpKTsKICB9CiAgaWYgKHguc2l6ZSgpPnkuc2l6ZSgpKSAKICB7CiAgICByZXZlcnNlKHkuYmVnaW4oKSx5LmVuZCgpKTsKICAgIHdoaWxlICh4LnNpemUoKT55LnNpemUoKSkgeSs9IjAiOwogICAgcmV2ZXJzZSh5LmJlZ2luKCkseS5lbmQoKSk7CiAgfQogIHN0cmluZyBjPSIiOwogIGludCBuaG89MDsKICBmb3IgKGludCBpPXguc2l6ZSgpLTE7aT49MDtpLS0pCiAgewogICAgaW50IGQ9eFtpXSt5W2ldK25oby05NjsKICAgIG5obz1kLzEwO2QlPTEwOwogICAgYys9Y2hhcihkKzQ4KTsKICB9CiAgaWYgKG5obz4wKSBjKz1jaGFyKG5obys0OCk7CiAgcmV2ZXJzZShjLmJlZ2luKCksYy5lbmQoKSk7CiAgcmV0dXJuIGM7Cn0Kc3RyaW5nIGNhbChpbnQgaSxpbnQgaikKewogIGlmIChkcFtpXVtqXSE9Ii0xIikgcmV0dXJuIGRwW2ldW2pdOwogIGlmIChpPT1uKSAKICB7CiAgICBzdHJpbmcgc3Q9IiI7CiAgICBzdCs9Y2hhcigoaj09MCkrJzAnKTsKICAgIHJldHVybiBzdDsKICB9CiAgc3RyaW5nICZyZXM9ZHBbaV1bal07CiAgcmVzPSIwIjsKICBpZiAoajxrKSAKICBmb3IgKGludCBwPTE7cDw9MztwKyspIHJlcz1hZGQocmVzLGNhbChpKzEsaisxKSk7CiAgaWYgKGo+MCkgcmVzPWFkZChyZXMsY2FsKGkrMSxqLTEpKTsKICByZXR1cm4gcmVzOwp9CnZvaWQgU29sMigpCnsKICBmb3IgKGludCBpPTA7aTw9bjtpKyspCiAgZm9yIChpbnQgaj0wO2o8PWs7aisrKSBkcFtpXVtqXT0iLTEiOwogIHZlY3RvcjxjaGFyPiBnOwogIHN0cmluZyByZXM9IjEiOwogIGludCBkPTA7CiAgZm9yIChpbnQgaT0wO2k8cy5zaXplKCk7aSsrKQogIHsKICAgIGlmIChkPGspCiAgICB7CiAgICAgIGZvciAoaW50IGo9MDtqPDY7ais9MikKICAgICAgaWYgKHhbal08c1tpXSkgcmVzPWFkZChyZXMsY2FsKGkrMSxkKzEpKTsKICAgIH0KICAgIGlmIChkPjApCiAgICBpZiAoeFtwb3NbZy5iYWNrKCldKzFdPHNbaV0pCiAgICByZXM9YWRkKHJlcyxjYWwoaSsxLGQtMSkpOwogICAgaWYgKHBvc1tzW2ldXSUyPT0wKSBnLnB1c2hfYmFjayhzW2ldKSxkKys7CiAgICBlbHNlIGcucG9wX2JhY2soKSxkLS07CiAgfQogIGNvdXQ8PHJlczw8IlxuIjsKfQpzaWduZWQgbWFpbigpIAp7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICBjaW4udGllKDApO2NvdXQudGllKDApOwogIGlmIChmb3BlbigiQlROLmlucCIsInIiKSkKICB7CiAgICBmcmVvcGVuKCJCVE4uaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbigiQlROLm91dCIsInciLHN0ZG91dCk7CiAgfQogIHBvc1snKCddPTA7cG9zWycpJ109MTsKICBwb3NbJ1snXT0yO3Bvc1snXSddPTM7CiAgcG9zWyd7J109NDtwb3NbJ30nXT01OwogIGNpbj4+dD4+bj4+azsKICBjaW4+PnM7CiAgU29sMigpOwp9Cg==