#include <bits/stdc++.h>
using namespace std;
bool cmp_pair_F_2(pair<int, int> x, pair<int, int> y) {
  return x.first > y.first;
}
bool cmp_pair_S_2(pair<int, int> x, pair<int, int> y) {
  return x.second > y.second;
}
bool cmp_pair_S_1(pair<int, int> x, pair<int, int> y) {
  return x.second < y.second;
}
bool cmp(int x, int y) { return x > y; }
const int N = 1e5 + 10, M = 2003, MOD = 1e9 + 7;
long long dp[M][M + 10];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m;
  cin >> n >> m;
  int d = n - m;
  string s;
  cin >> s;
  if (n == m)
    ;
  dp[0][0] = 1;
  for (int i = 1; i < M; i++)
    for (int j = 0; j <= M; j++)
      dp[i][j] = (dp[i - 1][j + 1] + ((j > 0) ? dp[i - 1][j - 1] : 0)) % MOD;
  int mi = 0;
  int b = 0;
  for (int i = 0; i < m; i++) {
    if (s[i] == '(')
      b++;
    else
      b--;
    (mi) = min((mi), (b));
  }
  int ans = 0;
  for (int i = 0; i <= d; i++)
    for (int j = abs(mi); j <= i; j++)
      if (d - i >= b + j)
        ans = (ans + (dp[i][j] * dp[d - i][b + j]) % MOD) % MOD;
  cout << ans;
  return 0;
}
