#include <bits/stdc++.h>
long long int dp[2009][2009];
char str[200009];
int main() {
  int n, m, bal = 0, minbal = 0;
  scanf("%d %d %s", &n, &m, str);
  for (int i = 0; i < m; i++) {
    if (str[i] == '(')
      bal++;
    else
      bal--;
    if (bal < minbal) minbal = bal;
  }
  memset(&dp, 0, sizeof dp);
  dp[0][0] = 1;
  for (int i = 0; i <= n - m; i++) {
    for (int j = 0; j <= i; j++) {
      dp[i + 1][j + 1] += dp[i][j];
      dp[i + 1][j + 1] %= 1000000007;
      if (j > 0) {
        dp[i + 1][j - 1] += dp[i][j];
        dp[i + 1][j - 1] %= 1000000007;
      }
    }
  }
  long long int ans = 0;
  for (int c = 0; c <= n - m; c++) {
    for (int b = -minbal; b <= n - m; b++) {
      if (b + bal >= 2009) continue;
      ans += (dp[c][b] * dp[n - m - c][b + bal]) % 1000000007;
      ans %= 1000000007;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
