#include <bits/stdc++.h>
using namespace std;
const long double pi = acos(-1), eps = 1e-12;
const int MAXN = 2005, inf = ~0u >> 1, MOD = 1e9 + 7;
int dp1[MAXN][MAXN], ans, l, r, n, m;
char s[100005];
int main() {
  scanf("%d%d%s", &n, &m, s);
  l = r = 0;
  if (n & 1) {
    puts("0");
    return 0;
  }
  int t = 0;
  for (int i = 0; i < m; ++i)
    if (s[i] == ')') {
      t++;
      l = max(l, t);
    } else
      t--;
  t = 0;
  for (int i = m - 1; i >= 0; --i)
    if (s[i] == '(') {
      t++;
      r = max(r, t);
    } else
      t--;
  dp1[0][0] = 1;
  for (int i = 0; i <= 2000; ++i)
    for (int j = 0; j <= 2000; ++j)
      if (dp1[i][j]) {
        if (j) {
          int &t1 = dp1[i + 1][j - 1];
          t1 = (t1 + dp1[i][j]) % MOD;
        }
        int &t2 = dp1[i + 1][j + 1];
        t2 = (t2 + dp1[i][j]) % MOD;
      }
  for (int i = 0; i <= n - m; ++i)
    for (int j = max(l, -t); j + t <= n - m - i && j <= i; ++j) {
      ans = (ans + dp1[i][j] * 1ll * dp1[n - m - i][t + j] % MOD) % MOD;
    }
  cout << ans << endl;
  return 0;
}
