#include <bits/stdc++.h>
using namespace std;
const int Mod = 1000000007;
const int maxn = 705;
char s[maxn];
long long dp[maxn][maxn][3][3];
long long match[maxn], pr[maxn];
inline void getMatch(char cstr[], int len) {
  int cs = 0;
  for (int i = 0; i < len; i++) {
    if (cstr[i] == '(') {
      pr[cs] = i;
      cs++;
    } else {
      cs--;
      match[i] = pr[cs];
      match[pr[cs]] = i;
    }
  }
  return;
}
void dfsGet(int l, int r) {
  if (l + 1 == r) {
    dp[l][r][0][1] = 1;
    dp[l][r][1][0] = 1;
    dp[l][r][0][2] = 1;
    dp[l][r][2][0] = 1;
    return;
  } else if (match[l] == r) {
    dfsGet(l + 1, r - 1);
    for (int i = 0; i <= 2; i++) {
      for (int j = 0; j <= 2; j++) {
        if (i != 1) {
          dp[l][r][1][0] = (dp[l][r][1][0] + dp[l + 1][r - 1][i][j]) % Mod;
        }
        if (i != 2) {
          dp[l][r][2][0] = (dp[l][r][2][0] + dp[l + 1][r - 1][i][j]) % Mod;
        }
        if (j != 1) {
          dp[l][r][0][1] = (dp[l][r][0][1] + dp[l + 1][r - 1][i][j]) % Mod;
        }
        if (j != 2) {
          dp[l][r][0][2] = (dp[l][r][0][2] + dp[l + 1][r - 1][i][j]) % Mod;
        }
      }
    }
    return;
  } else {
    int ml = match[l];
    dfsGet(l, ml);
    dfsGet(ml + 1, r);
    for (int i = 0; i <= 2; i++) {
      for (int j = 0; j <= 2; j++) {
        for (int a = 0; a <= 2; a++) {
          for (int b = 0; b <= 2; b++) {
            if ((!(a == 1 && b == 1)) && (!(a == 2 && b == 2))) {
              dp[l][r][i][j] =
                  (dp[l][r][i][j] + dp[l][ml][i][a] * dp[ml + 1][r][b][j]) %
                  Mod;
            }
          }
        }
      }
    }
    return;
  }
}
inline void getAns(long long &ans, int len) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      ans = (ans + dp[0][len - 1][i][j]) % Mod;
    }
  }
  return;
}
int main() {
  while (~scanf("%s", s)) {
    memset(dp, 0, sizeof(dp));
    int len = strlen(s);
    getMatch(s, len);
    dfsGet(0, len - 1);
    long long ans = 0;
    getAns(ans, len);
    printf("%lld", ans);
  }
}
