#include <bits/stdc++.h>
using namespace std;
int dp[2005][2005];
char s[100005];
int main() {
  dp[0][0] = 1;
  for (int i = (1); i < (2005); i++) {
    for (int j = (0); j < (2005); j++) {
      if (j) dp[i][j] += dp[i - 1][j - 1];
      if (j + 1 < 2005) dp[i][j] += dp[i - 1][j + 1];
      if (dp[i][j] >= 1000000007) dp[i][j] -= 1000000007;
    }
  }
  int n, m;
  scanf("%d%d %s", &n, &m, s);
  int c = 0, o = 0;
  for (int i = (0); i < (m); i++) {
    if (s[i] == '(')
      o++;
    else
      o--;
    if (o < 0) {
      o++;
      c++;
    }
  }
  int ans = 0;
  for (int l = (0); l < (2005); l++) {
    for (int r = (0); r < (2005); r++) {
      if (r >= c) {
        int l2 = n - m - l;
        int r2 = r - c + o;
        if (0 <= l2 && l2 < 2005 && 0 <= r2 && r2 < 2005)
          ans += dp[l][r] * 1ll * dp[l2][r2] % 1000000007;
        if (ans >= 1000000007) ans %= 1000000007;
      }
    }
  }
  printf("%d\n", ans);
}
