#include <bits/stdc++.h>
using namespace std;
int n, m, d, t, k;
int f[2100][2100];
char s[100010];
void Init() {
  scanf("%d%d%s", &n, &m, s);
  for (int i = 0; i < m; ++i) {
    if (s[i] == '(')
      ++k;
    else
      --k;
    d = min(d, k);
  }
}
void DP() {
  int i, j;
  t = n - m;
  f[0][0] = 1;
  for (i = 1; i <= t; ++i)
    for (j = 0; j <= i; ++j) {
      f[i][j] = (f[i][j] + f[i - 1][j + 1]) % 1000000007;
      if (j > 0) f[i][j] = (f[i][j] + f[i - 1][j - 1]) % 1000000007;
    }
}
void Work() {
  int i, j, ans = 0;
  for (i = 0; i <= t; ++i)
    for (j = -d; j <= i; ++j)
      if (j + k <= t - i)
        ans = (ans + 1LL * f[i][j] * f[t - i][j + k] % 1000000007) % 1000000007;
  printf("%d\n", ans);
}
int main() {
  Init();
  DP();
  Work();
  return 0;
}
