#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007LL;
const int N = 2222;
long long add(long long a, long long b) { return (a + b) % MOD; }
long long mul(long long a, long long b) { return (a * b) % MOD; }
int n, m;
string str;
long long dp[N][N];
int main() {
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (int i = 1; i < N; i++) {
    for (int j = 0; j <= i; j++) {
      if (i) dp[i][j] = add(dp[i][j], dp[i - 1][j]);
      if (j) dp[i][j] = add(dp[i][j], dp[i][j - 1]);
    }
  }
  cin >> n >> m >> str;
  int L = 0, R = 0;
  int sum = 0;
  int rec = 0;
  for (int i = 0; i < m; i++) {
    if (str[i] == '(') {
      L++;
      sum++;
    } else {
      R++;
      sum--;
    }
    rec = min(rec, sum);
  }
  L = n / 2 - L;
  R = n / 2 - R;
  long long ans = 0;
  if (n % 2 == 0 && L >= 0 && R >= 0) {
    for (int i = -rec; i <= L; i++) {
      for (int j = 0; j <= i && i + rec - j >= 0 && j <= R; j++) {
        long long tmp = mul(dp[i][j], dp[R - j][L - i]);
        ans = add(ans, tmp);
      }
    }
  }
  cout << ans << endl;
  return 0;
}
