mod = 10**9 + 7 def count_gold_placements(s): n = len(s) dp = [[[0 for _ in range(n)] for _ in range(n)] for _ in range(n+1)] for i in range(n): if s[i] == 'o': for j in range(i+1): for k in range(i, n): if j <= i <= k: dp[i+1][i][k] = (dp[i+1][i][k] + dp[i][j][k]) % mod elif s[i] == '<': for j in range(i+1): for k in range(i, n): if j <= i-1: dp[i+1][i][k] = (dp[i+1][i][k] + dp[i][j][k]) % mod elif s[i] == '>': for j in range(i+1): for k in range(i, n): if k >= i+1: dp[i+1][j][i] = (dp[i+1][j][i] + dp[i][j][k]) % mod else: # s[i] == '=' for j in range(i+1): for k in range(i, n): if j <= i-1 and k >= i+1: dp[i+1][j][k] = (dp[i+1][j][k] + dp[i][j][k]) % mod ans = 0 for j in range(n): for k in range(j, n): ans = (ans + dp[n][j][k]) % mod return ans T = int(input()) for t in range(1, T+1): s = input().strip() ans = count_gold_placements(s) print("Case #{}: {}".format(t, ans))