#include <bits/stdc++.h>
using namespace std;
const int64_t mod = (int64_t)1e9 + 7;
int64_t n, m;
char s[100000];
int64_t sum, mins;
int64_t dp[2017][2017][2];
int64_t calc(int64_t i, int64_t cur, bool has) {
  if (cur < 0 || i > n - m) return 0;
  if (i == n - m) {
    if (!cur && has) return 1;
    if (!has && cur + mins >= 0 && cur + sum <= n - m - i)
      return calc(i, cur + sum, true);
  }
  if (dp[i][cur][has] != -1) return dp[i][cur][has];
  int64_t res = (calc(i + 1, cur + 1, has) + calc(i + 1, cur - 1, has)) % mod;
  if (!has && cur + mins >= 0 && cur + sum <= n - m - i)
    res = (res + calc(i, cur + sum, true)) % mod;
  return dp[i][cur][has] = res;
}
int32_t main() {
  scanf("%I64d %I64d", &n, &m);
  scanf("%s", s);
  mins = 0;
  for (int64_t i = 0; i < m; i++)
    sum += (s[i] == '(' ? 1 : -1), mins = min(mins, sum);
  memset(dp, -1, sizeof(dp));
  printf("%I64d\n", calc(0, 0, 0));
}
