#include <bits/stdc++.h>
using namespace std;
int n, m;
long long cache[3000][3001];
string s;
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m >> s;
  cache[0][0] = 1;
  for (long long i = (1); i <= (n - m); i++) {
    cache[i][0] = cache[i - 1][1];
    for (long long j = (1); j <= (i); j++) {
      cache[i][j] = cache[i - 1][j - 1] + cache[i - 1][j + 1];
      cache[i][j] %= int(1e9 + 7);
    }
  }
  int minB(INT_MAX), bal(0);
  for (long long i = (0); i <= ((long long)(m)-1); i++) {
    if (s[i] == '(')
      bal++;
    else
      bal--;
    minB = min(minB, bal);
  }
  long long res(0);
  for (long long i = (0); i <= (n - m); i++) {
    for (long long j = (0); j <= (i); j++) {
      if (j + minB >= 0) {
        if (j + bal >= 0 && j + bal <= n - m) {
          res += cache[i][j] * cache[n - m - i][j + bal] % int(1e9 + 7);
          res %= int(1e9 + 7);
        }
      }
    }
  }
  cout << res;
}
