#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100000;
const int MAX_K = 2000;
const int MOD = 1000000007;
char s[MAX_N + 4];
int dp[MAX_K + 1][MAX_K + 1];
inline void addmod(int &a, int b) { a = (a + b) % MOD; }
int main() {
  int n, m;
  scanf("%d%d%s", &n, &m, s);
  int k = n - m;
  if (n & 1) {
    puts("0");
    return 0;
  }
  int d = 0, mind = 0;
  for (int i = 0; s[i]; i++) {
    if (s[i] == '(')
      d++;
    else
      d--;
    if (mind > d) mind = d;
  }
  dp[0][0] = 1;
  for (int i = 0; i < k; i++)
    for (int j = 0; j <= i; j++)
      if (dp[i][j] > 0) {
        addmod(dp[i + 1][j + 1], dp[i][j]);
        if (j > 0) addmod(dp[i + 1][j - 1], dp[i][j]);
      }
  int hp = -mind, hq = -mind + d;
  int sum = 0;
  for (int p = hp, q = k - hp; q >= hq; p++, q--)
    for (int lp = hp; lp <= p; lp++) {
      int lq = lp + d;
      if (lq >= hq && lq <= q)
        addmod(sum, (long long)dp[p][lp] * dp[q][lq] % MOD);
    }
  printf("%d\n", sum);
  return 0;
}
