#include <bits/stdc++.h>
using namespace std;
int n, m, a[1000009], now, Min = 0x7fffffff;
long long f[2009][2009];
char s[1000009];
long long ans = 0;
void init() {
  f[0][0] = 1;
  for (int i = 1; i <= n - m; i++) {
    f[i][0] = f[i - 1][1];
    for (int j = 1; j <= i; j++)
      f[i][j] = f[i - 1][j + 1] + f[i - 1][j - 1], f[i][j] %= 1000000007;
  }
}
int main() {
  cin >> n >> m;
  scanf("%s", s);
  init();
  for (int i = 0; i <= m - 1; i++)
    a[i] = s[i] == '(' ? 1 : -1, now += a[i], Min = min(Min, now);
  for (int i = 0; i <= n - m; i++)
    for (int j = 0; j <= i; j++)
      if (j >= -Min && j + now <= n - m && j + now >= 0)
        ans += f[i][j] * f[n - m - i][j + now] % 1000000007, ans %= 1000000007;
  cout << ans << endl;
  return 0;
}
