#include <bits/stdc++.h>
using namespace std;
int n;
long long dp[710][710][3][3];
char s[710];
const int mod = 1000000007;
int mp[710];
void init() {
  memset(mp, 0, sizeof(mp));
  memset(dp, 0, sizeof(dp));
  stack<int> q;
  for (int i = 1; i <= n; i++) {
    if (s[i] == '(') q.push(i);
    if (s[i] == ')') {
      mp[q.top()] = i;
      mp[i] = q.top();
      q.pop();
    }
  }
  for (int i = 1; i <= n; i++) {
    dp[i][i + 1][0][1] = dp[i][i + 1][0][2] = dp[i][i + 1][1][0] =
        dp[i][i + 1][2][0] = 1;
    if (mp[i] != i + 1)
      dp[i][i + 1][0][0] = dp[i][i + 1][1][2] = dp[i][i + 1][2][1] = 1;
  }
}
int main() {
  while (~scanf("%s", s + 1)) {
    n = strlen(s + 1);
    init();
    for (int l = 2; l <= n; l++) {
      for (int i = 1; i + l - 1 <= n; i++) {
        int j = i + l - 1;
        if (mp[i] == j) {
          for (int p = 0; p < 3; p++)
            for (int q = 0; q < 3; q++) {
              if (q != 1)
                dp[i][j][0][1] =
                    (dp[i][j][0][1] + dp[i + 1][j - 1][p][q]) % mod;
              if (p != 1)
                dp[i][j][1][0] =
                    (dp[i][j][1][0] + dp[i + 1][j - 1][p][q]) % mod;
              if (q != 2)
                dp[i][j][0][2] =
                    (dp[i][j][0][2] + dp[i + 1][j - 1][p][q]) % mod;
              if (p != 2)
                dp[i][j][2][0] =
                    (dp[i][j][2][0] + dp[i + 1][j - 1][p][q]) % mod;
            }
        } else {
          int k = mp[i];
          for (int p = 0; p < 3; p++)
            for (int q = 0; q < 3; q++)
              for (int o = 0; o < 3; o++)
                for (int g = 0; g < 3; g++)
                  if (!((o == 1 && g == 1) || (o == 2 && g == 2)))
                    dp[i][j][p][q] =
                        (dp[i][j][p][q] +
                         (dp[i][k][p][o] * dp[k + 1][j][g][q]) % mod) %
                        mod;
        }
      }
    }
    long long ans = 0;
    for (int i = 0; i < 3; i++)
      for (int j = 0; j < 3; j++) ans = (ans + dp[1][n][i][j]) % mod;
    printf("%lld\n", ans);
  }
  return 0;
}
