#include <bits/stdc++.h>
using namespace std;
int main() {
  const unsigned long long MOD = 1e9 + 7;
  int n, m;
  cin >> n >> m;
  string s;
  cin >> s;
  int bal = 0, Mbal = 0, mbal = 0;
  for (auto e : s) {
    if (e == '(')
      bal++;
    else
      bal--;
    mbal = min(mbal, bal);
  }
  int bbal = 0;
  reverse(s.begin(), s.end());
  for (auto e : s) {
    if (e == ')')
      bbal++;
    else
      bbal--;
    Mbal = min(Mbal, bbal);
  }
  vector<vector<int>> d(n - m + 1, vector<int>(n - m + 3));
  d[0][0] = 1;
  for (int i = 1; i <= n - m; i++) {
    for (int b = 0; b <= i; b++) {
      if (b > 0) d[i][b] += d[i - 1][b - 1];
      d[i][b] += d[i - 1][b + 1];
      d[i][b] %= MOD;
    }
  }
  int res = 0;
  for (int l = 0; l <= n - m; l++) {
    for (int b = 0; b <= l; b++) {
      int b2 = 0 - bal - b;
      if (-b2 > n - m) continue;
      if (b + mbal >= 0 && -b2 + Mbal >= 0) {
        res += 1ull * d[l][b] * d.at(n - m - l).at(-b2) % MOD;
        res %= MOD;
      }
    }
  }
  cout << res;
}
