#include <bits/stdc++.h>
const int maxm = 100000;
const int maxd = 2000;
const int mod = 1000000007;
int n, m;
char s[maxm + 3];
long long d[maxd + 3][maxd + 3], ans;
void init() {
  scanf("%d%d%*c%s", &n, &m, s + 1);
  d[0][0] = 1;
  for (int i = 1; i <= n - m; i++)
    for (int j = 0; j <= i; j++) {
      if (j > 0) (d[i][j] = d[i][j] + d[i - 1][j - 1]) % mod;
      d[i][j] = (d[i][j] + d[i - 1][j + 1]) % mod;
    }
}
void solve() {
  if (n % 2) {
    printf("0\n");
    return;
  }
  int del = 0, mindel = 0;
  for (int i = 1; i <= m; i++) {
    if (s[i] == '(')
      del++;
    else
      del--;
    if (del < mindel) mindel = del;
  }
  for (int i = 0; i <= n - m; i++)
    for (int j = 0; j <= i; j++) {
      if (j + mindel < 0 || j + del > n - m - i) continue;
      ans = (ans + d[i][j] * d[n - m - i][j + del] % mod) % mod;
    }
  printf("%I64d\n", ans);
}
int main() {
  init();
  solve();
  return 0;
}
