#include <bits/stdc++.h>
using namespace std;
int p = 1000000007;
int a[2001][2001];
char h[100001];
void m(int e, int r, int t) {
  if (r < 0) return;
  a[e][r] += t;
  if (a[e][r] >= p) a[e][r] -= p;
}
int main() {
  int q, q1, w, e, r, t;
  int ans = 0;
  cin >> q >> w;
  scanf("%s", h);
  q1 = q - w;
  for (e = 0; e <= q1; e++)
    for (r = 0; r <= q1; r++) a[e][r] = 0;
  a[0][0] = 1;
  for (e = 0; e < q1; e++)
    for (r = 0; r < q1; r++) {
      m(e + 1, r + 1, a[e][r]);
      m(e + 1, r - 1, a[e][r]);
    }
  int c1 = 0, c2 = 0;
  for (e = 0; e < w; e++) {
    if (h[e] == '(')
      c2++;
    else
      c2--;
    c1 = min(c1, c2);
  }
  for (e = 0; e <= q1; e++) {
    if (c1 + e < 0) continue;
    for (r = 0; r <= q1; r++) {
      if (e + c2 > q1) continue;
      ans = (ans + ((long long)a[r][e]) * a[q1 - r][e + c2]) % p;
    }
  }
  cout << ans;
  return 0;
}
