#include <bits/stdc++.h>
using namespace std;
long long dp[2220][2220];
long long mo = 1e9 + 7;
int main() {
  long long n, m;
  dp[1][1] = 1;
  dp[0][0] = 1;
  for (long long a = 2; a <= 2000; a++) {
    for (long long b = 0; b <= a; b++) {
      if (b == 0) {
        dp[a][b] = dp[a - 1][b + 1] % mo;
        continue;
      }
      dp[a][b] = (dp[a - 1][b - 1] + dp[a - 1][b + 1]) % mo;
    }
  }
  cin >> n >> m;
  string q;
  cin >> q;
  long long jsd = 0;
  long long xx = 0;
  for (long long a = 0; a < q.size(); a++) {
    if (q[a] == '(')
      jsd++;
    else
      jsd--;
    xx = min(jsd, xx);
  }
  if (jsd == q.size() && jsd >= n / 2) {
    cout << 0 << endl;
    return 0;
  }
  long long js = 0;
  for (long long a = 0; a <= n - m; a++) {
    for (long long b = 0; b <= a; b++) {
      if (xx + b >= 0) {
        js = (js + dp[a][b] * dp[n - m - a][jsd + b]) % mo;
      }
    }
  }
  cout << js;
}
