#include <bits/stdc++.h>
using namespace std;
int n, m;
long long int t[2002][2002][2];
int nabre, nfecha;
int nec;
long long int solve(int abre, int fecha, int ja) {
  if (abre + nabre + fecha + nfecha > n) return 0;
  if (abre + nabre + fecha + nfecha == n && abre + nabre == fecha + nfecha &&
      ja) {
    return 1;
  }
  if (abre + nabre + fecha + nfecha == n && ja) return 0;
  if (!ja && abre < fecha) return 0;
  if (ja && abre + nabre < fecha + nfecha) return 0;
  long long int &ret = t[abre][fecha][ja];
  if (ret == 1)
    ;
  if (ret != -1) return ret;
  ret = 0;
  if (abre - fecha >= nec && !ja) ret += solve(abre, fecha, 1) % 1000000007;
  ret %= 1000000007;
  ret += solve(abre + 1, fecha, ja) % 1000000007;
  ret %= 1000000007;
  ret += solve(abre, fecha + 1, ja) % 1000000007;
  ret %= 1000000007;
  return ret;
}
int main() {
  cin >> n >> m;
  string s;
  cin >> s;
  memset(t, -1, sizeof(t));
  nabre = 0;
  nfecha = 0;
  nec = 0;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '(')
      nabre++;
    else
      nfecha++;
    nec = max(nec, nfecha - nabre);
  }
  cout << solve(0, 0, 0) % 1000000007;
}
