#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 20;
const int M = 2100;
const long long mod = 1e9 + 7;
char s[N];
int n, m;
long long dp[M][M];
void init(int k) {
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (int i = 1; i <= k; i++) {
    dp[i][0] = dp[i - 1][1];
    for (int j = 1; j <= i; j++) {
      dp[i][j] = (dp[i - 1][j + 1] + dp[i - 1][j - 1]) % mod;
    }
  }
}
int main() {
  cin >> n >> m;
  scanf("%s", s);
  int pre = 0, Min = N;
  init(2000);
  for (int i = 0; i < m; i++) {
    if (s[i] == '(')
      pre++;
    else
      pre--;
    Min = min(Min, pre);
  }
  long long ans = 0;
  int len = n - m;
  for (int i = 0; i <= len; i++) {
    for (int j = 0; j <= i; j++) {
      if (j + Min < 0 || len - i < j + pre) continue;
      ans = (ans + dp[i][j] * dp[len - i][j + pre]) % mod;
    }
  }
  cout << ans << endl;
  return 0;
}
