#include <bits/stdc++.h>
using namespace std;
const long long p = 1e9 + 7;
int mk[705][705][3][3];
char s[705];
long long ck(int l, int r, int lc, int rc) {
  if (l > r) return !lc || !rc || lc != rc;
  if (mk[l][r][lc][rc]) return mk[l][r][lc][rc];
  for (int i = l, cnt = 0;; i++) {
    if (s[i] == ')')
      cnt++;
    else
      cnt--;
    if (!cnt) {
      long long m = ck(l + 1, i - 1, 0, 1) * ck(i + 1, r, 1, rc) % p +
                    ck(l + 1, i - 1, 0, 2) * ck(i + 1, r, 2, rc);
      if (lc != 1) m += ck(l + 1, i - 1, 1, 0) * ck(i + 1, r, 0, rc);
      if (lc != 2) m += ck(l + 1, i - 1, 2, 0) * ck(i + 1, r, 0, rc);
      return mk[l][r][lc][rc] = m % p;
    }
  }
}
int main() {
  scanf("%s", s + 1);
  printf("%lld", ck(1, strlen(s + 1), 0, 0));
}
