#include <bits/stdc++.h>
using namespace std;
long long dp[2005][2005] = {};
int main() {
  long long n, k, countx = 0, temp, bound = 0;
  string d;
  cin >> n >> k;
  cin >> d;
  for (long long i = 0; i < d.length(); i++) {
    if (d[i] == '(')
      countx++;
    else
      countx--;
    bound = min(bound, countx);
  }
  dp[0][0] = 1;
  for (long long i = 1; i <= n - k; i++) {
    for (long long j = 0; j <= n - k; j++) {
      dp[i][j] = dp[i - 1][j + 1];
      dp[i][j] %= 1000000007;
      if (j != 0) {
        dp[i][j] += dp[i - 1][j - 1];
        dp[i][j] %= 1000000007;
      }
    }
  }
  long long sum = 0;
  for (long long i = 0; i <= n - k; i++) {
    for (long long j = 0; j <= n - k; j++) {
      if (-1 * bound <= j && n - k - i >= 0 && j + countx <= n - k) {
        sum += dp[i][j] * dp[n - k - i][j + countx];
        sum %= 1000000007;
      }
    }
  }
  printf("%I64d\n", sum);
}
