#include <bits/stdc++.h>
using namespace std;
int m, n;
string s;
const int m_ = 2010;
long long int mm = (long long int)(1e9 + 7);
long long int dp[m_][m_];
int main() {
  cin >> n >> m;
  cin >> s;
  for (int i = 0; i <= 2000; i++) {
    for (int j = 0; j <= 2000; j++) {
      dp[i][j] = 0;
    }
  }
  dp[0][0] = 1;
  for (int i = 1; i <= n - m; i++) {
    for (int j = 0; j <= i; j++) {
      if (j - 1 >= 0) {
        dp[i][j] = dp[i - 1][j - 1];
      }
      if (j + 1 <= i) {
        dp[i][j] += dp[i - 1][j + 1];
      }
      dp[i][j] %= mm;
    }
  }
  int b = 0;
  int mb = 0;
  for (int i = 0; i < m; i++) {
    if (s[i] == '(') {
      b++;
    } else {
      b--;
    }
    mb = min(mb, b);
  }
  long long int ans = 0;
  for (int i = 0; i <= n - m; i++) {
    for (int j = 0; j <= i; j++) {
      if (j + mb >= 0) {
        if (j + b <= (n - m - i) && j + b >= 0) {
          ans = (ans + (dp[i][j] * dp[n - m - i][j + b]) % mm) % mm;
        }
      }
    }
  }
  cout << (ans % mm) << endl;
  return 0;
}
