#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));   }   